43 #ifndef CCXX_RTP_CQUEUE_H_
44 #define CCXX_RTP_CQUEUE_H_
115 { leavingDelay = delay; }
133 { end2EndDelay = t; }
136 getDefaultEnd2EndDelay()
const
137 {
return defaultEnd2EndDelay; }
140 getEnd2EndDelay()
const
141 {
return end2EndDelay; }
157 setSendersControlFraction(
float fraction)
158 { sendControlBwFract = fraction; recvControlBwFract = 1 - fraction;}
171 { rtcpMinInterval = interval; }
177 getSendRTCPPacketCount()
const
178 {
return ctrlSendCount; }
210 getOutQueueCryptoContextCtrl(uint32 ssrc);
245 getInQueueCryptoContextCtrl(uint32 ssrc);
260 {
return queueApplication; }
263 setControlBandwidth(
float fraction)
264 { controlBwFract = fraction; }
267 getControlBandwidth()
const
268 {
return controlBwFract; }
275 controlTransmissionService();
282 controlReceptionService();
296 bool checkSSRCInRTCPPkt(SyncSourceLink& sourceLink,
bool is_new,
297 InetAddress& na, tpport_t tp);
300 endQueueRTCPManager();
313 onGotSR(
SyncSource& source, SendReport& SR, uint8 blocks);
326 onGotRR(
SyncSource& source, RecvReport& RR, uint8 blocks);
333 onGotSDES(
SyncSource& source, RTCPPacket& pkt);
345 onGotSDESChunk(
SyncSource& source, SDESChunk& chunk,
size_t len);
362 getRTCPCheckInterval()
363 {
return rtcpCheckInterval; }
370 getLastSendPacketCount()
const
371 {
return lastSendPacketCount; }
377 setPrevMembersNum(uint32 n)
378 { reconsInfo.rtcpPMembers = n; }
381 getPrevMembersCount()
const
382 {
return reconsInfo.rtcpPMembers; }
406 sendControlToDestinations(
unsigned char* buffer,
size_t len);
420 dispatchControlPacket();
434 takeInControlPacket();
450 computeRTCPInterval();
486 onGotRRSRExtension(
unsigned char*,
size_t)
499 onGotGoodbye(
const SyncSource&,
const std::string&)
515 getBYE(RTCPPacket &pkt,
size_t &pointer,
size_t len);
521 packReportBlocks(RRBlock* blocks, uint16& len, uint16& available);
532 packSDES(uint16& len);
546 updateAvgRTCPSize(
size_t len);
554 reverseReconsideration();
557 timerReconsideration();
582 const char*
const value,
size_t len);
602 inline virtual uint16
617 inline virtual uint16
618 transportHeaderSize()
630 sendControl(
const unsigned char*
const buffer,
size_t len) = 0;
633 recvControl(
unsigned char* buffer,
size_t len,
634 InetHostAddress& na, tpport_t& tp) = 0;
640 volatile bool controlServiceActive;
641 float controlBwFract, sendControlBwFract, recvControlBwFract;
643 uint32 ctrlSendCount;
647 uint16 lowerHeadersSize;
665 timeval rtcpLastCheck;
667 timeval rtcpCheckInterval;
669 timeval rtcpNextCheck;
673 uint32 lastSendPacketCount;
689 static const uint16 TIMEOUT_MULTIPLIER;
690 static const double RECONSIDERATION_COMPENSATION;
692 mutable Mutex outCryptoMutex;
693 std::list<CryptoContextCtrl *> outCryptoContexts;
696 mutable Mutex inCryptoMutex;
697 std::list<CryptoContextCtrl *> inCryptoContexts;
756 #endif //CCXX_RTP_CQUEUE_H_