CslRtpSession.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00028
00029 #ifndef CSL_CSLRTPSESSION_H
00030 #define CSL_CSLRTPSESSION_H
00031
00032 #include "CSL_Core.h"
00033 #include "Interleaver.h"
00034 #include "RingBuffer.h"
00035 #include "CslRtpIncludes.h"
00036 #include <iostream>
00037
00038 namespace csl {
00039
00041 enum RtpBufferState {
00042 kNormal = 0,
00043 kBuffering,
00044 kOverflow,
00045 kUnderrun,
00046 kInactive,
00047
00048 kNumStates
00049 };
00050
00051 class CslRtpSession : public RTPSession
00052 {
00053 public:
00054 CslRtpSession(unsigned numChans, unsigned bufferFrames);
00055 ~CslRtpSession();
00056 RingBuffer mRtpBuffer;
00057 Buffer mTmpBuffer;
00058 protected:
00059 void OnRTPPacket(RTPPacket * pack, const RTPTime &receivetime, const RTPAddress *senderaddress);
00060 void OnRTCPCompoundPacket(RTCPCompoundPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress);
00061
00062 void OnSSRCCollision(RTPSourceData *srcdat,const RTPAddress *senderaddress,bool isrtp);
00063 void OnCNAMECollision(RTPSourceData *srcdat,const RTPAddress *senderaddress,
00064 const u_int8_t *cname,size_t cnamelength);
00065 void OnNewSource(RTPSourceData *srcdat);
00066 void OnRemoveSource(RTPSourceData *srcdat);
00067 void OnTimeout(RTPSourceData *srcdat);
00068 void OnBYETimeout(RTPSourceData *srcdat);
00069 void OnAPPPacket(RTCPAPPPacket *apppacket,const RTPTime &receivetime,
00070 const RTPAddress *senderaddress);
00071 void OnUnknownPacketType(RTCPPacket *rtcppack,const RTPTime &receivetime,
00072 const RTPAddress *senderaddress);
00073 void OnUnknownPacketFormat(RTCPPacket *rtcppack,const RTPTime &receivetime,
00074 const RTPAddress *senderaddress);
00075 void OnNoteTimeout(RTPSourceData *srcdat);
00076 void OnBYEPacket(RTPSourceData *srcdat);
00077
00078 };
00079
00080 };
00081
00082 #endif