00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _AC3_AUDIO_RTP_SINK_HH
00022 #define _AC3_AUDIO_RTP_SINK_HH
00023
00024 #ifndef _AUDIO_RTP_SINK_HH
00025 #include "AudioRTPSink.hh"
00026 #endif
00027
00028 class AC3AudioRTPSink: public AudioRTPSink {
00029 public:
00030 static AC3AudioRTPSink* createNew(UsageEnvironment& env,
00031 Groupsock* RTPgs,
00032 u_int8_t rtpPayloadFormat,
00033 u_int32_t rtpTimestampFrequency);
00034
00035 protected:
00036 AC3AudioRTPSink(UsageEnvironment& env, Groupsock* RTPgs,
00037 u_int8_t rtpPayloadFormat,
00038 u_int32_t rtpTimestampFrequency);
00039
00040
00041 virtual ~AC3AudioRTPSink();
00042
00043 private:
00044 virtual
00045 Boolean frameCanAppearAfterPacketStart(unsigned char const* frameStart,
00046 unsigned numBytesInFrame) const;
00047 virtual void doSpecialFrameHandling(unsigned fragmentationOffset,
00048 unsigned char* frameStart,
00049 unsigned numBytesInFrame,
00050 struct timeval frameTimestamp,
00051 unsigned numRemainingBytes);
00052 virtual unsigned specialHeaderSize() const;
00053 };
00054
00055 #endif