43 #ifndef CCXX_RTP_IQUEUE_H_
44 #define CCXX_RTP_IQUEUE_H_
71 setMembersCount(uint32 n)
75 increaseMembersCount()
79 decreaseMembersCount()
83 getMembersCount()
const
87 setSendersCount(uint32 n)
88 { activeSenders = n; }
91 increaseSendersCount()
95 decreaseSendersCount()
99 getSendersCount()
const
100 {
return activeSenders; }
115 uint32 activeSenders;
135 {
return source.getLink(); }
139 { source.setLink(link); }
143 { source.setParticipant(p); }
147 { source.setState(ns); }
151 { source.setSender(active); }
155 { source.setDataTransportPort(p); }
159 { source.setControlTransportPort(p); }
163 { source.setNetworkAddress(addr); }
184 const std::string& val)
185 { part->setSDESItem(item,val); }
189 { part->setPRIVPrefix(val); }
210 { app.addParticipant(part); }
214 RTPApplication::ParticipantLink* pl)
215 { app.removeParticipant(pl); }
238 tpport_t dtp, tpport_t ctp);
243 inline const InetAddress& getNetworkAddress( )
const
244 {
return networkAddress; }
246 inline tpport_t getDataTransportPort()
const
247 {
return dataTransportPort; }
249 inline tpport_t getControlTransportPort()
const
250 {
return controlTransportPort; }
276 void addConflict(
const InetAddress& na, tpport_t dtp, tpport_t ctp);
280 { firstConflict = lastConflict = NULL; }
306 inline size_t getDefaultMembersHashSize()
307 {
return defaultMembersHashSize; }
334 struct SyncSourceLink;
343 {
return getLink(source)->getMembership() ==
this; }
354 struct timeval& recv_ts,
363 srcPrev(sp), srcNext(sn),
364 receptionTime(recv_ts),
365 shiftedTimestamp(shifted_ts)
372 {
return sourceLink; }
375 { sourceLink = src; }
414 inline void setRecvTime(
const timeval &t)
415 { receptionTime = t; }
420 inline timeval getRecvTime()
const
421 {
return receptionTime; }
431 inline uint32 getTimestamp()
const
432 {
return shiftedTimestamp; }
434 inline void setTimestamp(uint32 ts)
435 { shiftedTimestamp = ts;}
446 struct timeval receptionTime;
481 membership(m), source(s), first(fp), last(lp),
482 prev(ps), next(ns), nextCollis(ncollis),
494 {
return membership; }
547 {
return nextCollis; }
552 inline ConflictingTransportAddress* getPrevConflict()
const
553 {
return prevConflict; }
558 void setPrevConflict(InetAddress& addr, tpport_t dataPort,
559 tpport_t controlPort);
561 unsigned char* getSenderInfo()
562 {
return senderInfo; }
564 void setSenderInfo(
unsigned char* si);
566 unsigned char* getReceiverInfo()
567 {
return receiverInfo; }
569 void setReceiverInfo(
unsigned char* ri);
571 inline timeval getLastPacketTime()
const
572 {
return lastPacketTime; }
574 inline timeval getLastRTCPPacketTime()
const
575 {
return lastRTCPPacketTime; }
577 inline timeval getLastRTCPSRTime()
const
578 {
return lastRTCPSRTime; }
584 inline uint32 getObservedPacketCount()
const
585 {
return obsPacketCount; }
587 inline void incObservedPacketCount()
588 { obsPacketCount++; }
594 inline uint32 getObservedOctetCount()
const
595 {
return obsOctetCount; }
597 inline void incObservedOctetCount(uint32 n)
598 { obsOctetCount += n; }
605 {
return maxSeqNum; }
612 setMaxSeqNum(uint16 max)
616 getExtendedMaxSeqNum()
const
617 {
return extendedMaxSeqNum; }
620 setExtendedMaxSeqNum(uint32 seq)
621 { extendedMaxSeqNum = seq; }
623 inline uint32 getCumulativePacketLost()
const
624 {
return cumulativePacketLost; }
626 inline void setCumulativePacketLost(uint32 pl)
627 { cumulativePacketLost = pl; }
629 inline uint8 getFractionLost()
const
630 {
return fractionLost; }
632 inline void setFractionLost(uint8 fl)
633 { fractionLost = fl; }
635 inline uint32 getLastPacketTransitTime()
636 {
return lastPacketTransitTime; }
638 inline void setLastPacketTransitTime(uint32 time)
639 { lastPacketTransitTime = time; }
641 inline float getJitter()
const
644 inline void setJitter(
float j)
647 inline uint32 getInitialDataTimestamp()
const
648 {
return initialDataTimestamp; }
650 inline void setInitialDataTimestamp(uint32 ts)
651 { initialDataTimestamp = ts; }
653 inline timeval getInitialDataTime()
const
654 {
return initialDataTime; }
656 inline void setInitialDataTime(timeval it)
657 { initialDataTime = it; }
687 inline uint32 getBadSeqNum()
const
688 {
return badSeqNum; }
690 inline void setBadSeqNum(uint32 seq)
693 uint8 getProbation()
const
694 {
return probation; }
696 inline void setProbation(uint8 p)
699 inline void decProbation()
703 {
return 0 == probation; }
705 inline uint16 getBaseSeqNum()
const
706 {
return baseSeqNum; }
708 inline void setBaseSeqNum(uint16 seqnum)
709 { baseSeqNum = seqnum; }
711 inline uint32 getSeqNumAccum()
const
712 {
return seqNumAccum; }
714 inline void incSeqNumAccum()
715 { seqNumAccum += SEQNUMMOD; }
720 inline void initSequence(uint16 seqnum)
721 { maxSeqNum = seqNumAccum = seqnum; }
800 isRegistered(uint32 ssrc);
811 getSourceBySSRC(uint32 ssrc,
bool& created);
824 BYESource(uint32 ssrc);
834 removeSource(uint32 ssrc);
871 uint32 sourceBucketsNum;
910 {
return *(link->getSource()); }
913 {
return link->getSource(); }
916 link = link->getNext();
928 {
return l.link == r.link; }
932 {
return l.link != r.link; }
954 getData(uint32 stamp,
const SyncSource* src = NULL);
964 isWaiting(
const SyncSource* src = NULL)
const;
973 getFirstTimestamp(
const SyncSource* src = NULL)
const;
998 setMinValidPacketSequence(uint8 packets)
999 { minValidPacketSequence = packets; }
1002 getDefaultMinValidPacketSequence()
const
1003 {
return defaultMinValidPacketSequence; }
1010 getMinValidPacketSequence()
const
1011 {
return minValidPacketSequence; }
1014 setMaxPacketMisorder(uint16 packets)
1015 { maxPacketMisorder = packets; }
1018 getDefaultMaxPacketMisorder()
const
1019 {
return defaultMaxPacketMisorder; }
1022 getMaxPacketMisorder()
const
1023 {
return maxPacketMisorder; }
1031 setMaxPacketDropout(uint16 packets)
1032 { maxPacketDropout = packets; }
1035 getDefaultMaxPacketDropout()
const
1036 {
return defaultMaxPacketDropout; }
1039 getMaxPacketDropout()
const
1040 {
return maxPacketDropout; }
1044 inline static size_t
1045 getDefaultMembersSize()
1046 {
return defaultMembersSize; }
1080 getInQueueCryptoContext(uint32 ssrc);
1103 bool checkSSRCInIncomingRTPPkt(SyncSourceLink& sourceLink,
1104 bool is_new, InetAddress& na,
1122 void setSourceExpirationPeriod(uint8 intervals)
1123 { sourceExpirationPeriod = intervals; }
1146 getWaiting(uint32 timestamp,
const SyncSource *src = NULL);
1164 recordReception(SyncSourceLink& srcLink,
const IncomingRTPPkt& pkt,
1165 const timeval recvtime);
1176 void purgeIncomingQueue();
1238 end2EndDelayed(IncomingRTPPktLink&)
1257 insertRecvPacket(IncomingRTPPktLink* packetLink);
1271 recvData(
unsigned char* buffer,
size_t length,
1272 InetHostAddress& host, tpport_t& port) = 0;
1275 getNextDataPacketSize()
const = 0;
1297 #endif //CCXX_RTP_IQUEUE_H_