00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _QUICKTIME_GENERIC_RTP_SOURCE_HH
00023 #define _QUICKTIME_GENERIC_RTP_SOURCE_HH
00024
00025 #ifndef _MULTI_FRAMED_RTP_SOURCE_HH
00026 #include "MultiFramedRTPSource.hh"
00027 #endif
00028
00029 class QuickTimeGenericRTPSource: public MultiFramedRTPSource {
00030 public:
00031 static QuickTimeGenericRTPSource*
00032 createNew(UsageEnvironment& env, Groupsock* RTPgs,
00033 unsigned char rtpPayloadFormat, unsigned rtpTimestampFrequency,
00034 char const* mimeTypeString);
00035
00036
00037
00038
00039 struct QTState {
00040 char PCK;
00041 unsigned timescale;
00042 char* sdAtom;
00043 unsigned sdAtomSize;
00044 unsigned short width, height;
00045
00046 } qtState;
00047
00048 protected:
00049 virtual ~QuickTimeGenericRTPSource();
00050
00051 private:
00052 QuickTimeGenericRTPSource(UsageEnvironment& env, Groupsock* RTPgs,
00053 unsigned char rtpPayloadFormat,
00054 unsigned rtpTimestampFrequency,
00055 char const* mimeTypeString);
00056
00057
00058 private:
00059
00060 virtual Boolean processSpecialHeader(BufferedPacket* packet,
00061 unsigned& resultSpecialHeaderSize);
00062 virtual char const* MIMEtype() const;
00063
00064 private:
00065 char const* fMIMEtypeString;
00066 };
00067
00068 #endif