44 #ifndef CCXX_RTP_IQUEUE_H_
45 #define CCXX_RTP_IQUEUE_H_
89 { activeSenders = n; }
101 {
return activeSenders; }
116 uint32 activeSenders;
136 {
return source.getLink(); }
140 { source.setLink(link); }
144 { source.setParticipant(p); }
148 { source.setState(ns); }
152 { source.setSender(active); }
156 { source.setDataTransportPort(p); }
160 { source.setControlTransportPort(p); }
164 { source.setNetworkAddress(addr); }
185 const std::string& val)
186 { part->setSDESItem(item,val); }
190 { part->setPRIVPrefix(val); }
211 { app.addParticipant(part); }
215 RTPApplication::ParticipantLink* pl)
216 { app.removeParticipant(pl); }
239 tpport_t dtp, tpport_t ctp);
245 {
return networkAddress; }
248 {
return dataTransportPort; }
251 {
return controlTransportPort; }
277 void addConflict(
const InetAddress& na, tpport_t dtp, tpport_t ctp);
281 { firstConflict = lastConflict = NULL; }
308 {
return defaultMembersHashSize; }
335 struct SyncSourceLink;
344 {
return getLink(source)->getMembership() ==
this; }
355 struct timeval& recv_ts,
364 srcPrev(sp), srcNext(sn),
365 receptionTime(recv_ts),
366 shiftedTimestamp(shifted_ts)
373 {
return sourceLink; }
376 { sourceLink = src; }
416 { receptionTime = t; }
422 {
return receptionTime; }
433 {
return shiftedTimestamp; }
436 { shiftedTimestamp = ts;}
447 struct timeval receptionTime;
482 membership(m), source(s), first(fp), last(lp),
483 prev(ps), next(ns), nextCollis(ncollis),
495 {
return membership; }
548 {
return nextCollis; }
554 {
return prevConflict; }
559 void setPrevConflict(InetAddress& addr, tpport_t dataPort,
560 tpport_t controlPort);
563 {
return senderInfo; }
565 void setSenderInfo(
unsigned char* si);
568 {
return receiverInfo; }
570 void setReceiverInfo(
unsigned char* ri);
573 {
return lastPacketTime; }
576 {
return lastRTCPPacketTime; }
579 {
return lastRTCPSRTime; }
586 {
return obsPacketCount; }
589 { obsPacketCount++; }
596 {
return obsOctetCount; }
599 { obsOctetCount += n; }
606 {
return maxSeqNum; }
618 {
return extendedMaxSeqNum; }
622 { extendedMaxSeqNum = seq; }
625 {
return cumulativePacketLost; }
628 { cumulativePacketLost = pl; }
631 {
return fractionLost; }
634 { fractionLost = fl; }
637 {
return lastPacketTransitTime; }
640 { lastPacketTransitTime = time; }
649 {
return initialDataTimestamp; }
652 { initialDataTimestamp = ts; }
655 {
return initialDataTime; }
658 { initialDataTime = it; }
689 {
return badSeqNum; }
695 {
return probation; }
704 {
return 0 == probation; }
707 {
return baseSeqNum; }
710 {
return seqNumAccum; }
713 { seqNumAccum += SEQNUMMOD; }
719 { maxSeqNum = seqNumAccum = seqnum; }
798 isRegistered(uint32 ssrc);
809 getSourceBySSRC(uint32 ssrc,
bool& created);
822 BYESource(uint32 ssrc);
832 removeSource(uint32 ssrc);
869 uint32 sourceBucketsNum;
908 {
return *(link->getSource()); }
911 {
return link->getSource(); }
914 link = link->getNext();
926 {
return l.link == r.link; }
930 {
return l.link != r.link; }
952 getData(uint32 stamp,
const SyncSource* src = NULL);
962 isWaiting(
const SyncSource* src = NULL)
const;
971 getFirstTimestamp(
const SyncSource* src = NULL)
const;
997 { minValidPacketSequence = packets; }
1001 {
return defaultMinValidPacketSequence; }
1009 {
return minValidPacketSequence; }
1013 { maxPacketMisorder = packets; }
1017 {
return defaultMaxPacketMisorder; }
1021 {
return maxPacketMisorder; }
1030 { maxPacketDropout = packets; }
1034 {
return defaultMaxPacketDropout; }
1038 {
return maxPacketDropout; }
1042 inline static size_t
1044 {
return defaultMembersSize; }
1078 getInQueueCryptoContext(uint32 ssrc);
1101 bool checkSSRCInIncomingRTPPkt(SyncSourceLink& sourceLink,
1102 bool is_new, InetAddress& na,
1121 { sourceExpirationPeriod = intervals; }
1144 getWaiting(uint32 timestamp,
const SyncSource *src = NULL);
1162 recordReception(SyncSourceLink& srcLink,
const IncomingRTPPkt& pkt,
1163 const timeval recvtime);
1174 void purgeIncomingQueue();
1255 insertRecvPacket(IncomingRTPPktLink* packetLink);
1269 recvData(
unsigned char* buffer,
size_t length,
1270 InetHostAddress& host, tpport_t& port) = 0;
1273 getNextDataPacketSize()
const = 0;
1295 #endif //CCXX_RTP_IQUEUE_H_