00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _MPEG4_GENERIC_RTP_SOURCE_HH
00022 #define _MPEG4_GENERIC_RTP_SOURCE_HH
00023
00024 #ifndef _MULTI_FRAMED_RTP_SOURCE_HH
00025 #include "MultiFramedRTPSource.hh"
00026 #endif
00027
00028 class MPEG4GenericRTPSource: public MultiFramedRTPSource {
00029 public:
00030 static MPEG4GenericRTPSource*
00031 createNew(UsageEnvironment& env, Groupsock* RTPgs,
00032 unsigned char rtpPayloadFormat,
00033 unsigned rtpTimestampFrequency,
00034 char const* mediumName,
00035 char const* mode, unsigned sizeLength, unsigned indexLength,
00036 unsigned indexDeltaLength
00037
00038 );
00039
00040
00041
00042 protected:
00043 virtual ~MPEG4GenericRTPSource();
00044
00045 private:
00046 MPEG4GenericRTPSource(UsageEnvironment& env, Groupsock* RTPgs,
00047 unsigned char rtpPayloadFormat,
00048 unsigned rtpTimestampFrequency,
00049 char const* mediumName,
00050 char const* mode,
00051 unsigned sizeLength, unsigned indexLength,
00052 unsigned indexDeltaLength
00053 );
00054
00055
00056 private:
00057
00058 virtual Boolean processSpecialHeader(BufferedPacket* packet,
00059 unsigned& resultSpecialHeaderSize);
00060 virtual char const* MIMEtype() const;
00061
00062 private:
00063 char* fMIMEType;
00064
00065 char* fMode;
00066 unsigned fSizeLength, fIndexLength, fIndexDeltaLength;
00067 unsigned fNumAUHeaders;
00068 unsigned fNextAUHeader;
00069 struct AUHeader* fAUHeaders;
00070
00071 friend class MPEG4GenericBufferedPacket;
00072 };
00073
00074
00075
00076
00077
00078 unsigned samplingFrequencyFromAudioSpecificConfig(char const* configStr);
00079
00080 #endif