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