00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "MPEG4ESVideoRTPSource.hh"
00022
00024
00025
00026
00027 MPEG4ESVideoRTPSource*
00028 MPEG4ESVideoRTPSource::createNew(UsageEnvironment& env, Groupsock* RTPgs,
00029 unsigned char rtpPayloadFormat,
00030 unsigned rtpTimestampFrequency) {
00031 return new MPEG4ESVideoRTPSource(env, RTPgs, rtpPayloadFormat,
00032 rtpTimestampFrequency);
00033 }
00034
00035 MPEG4ESVideoRTPSource
00036 ::MPEG4ESVideoRTPSource(UsageEnvironment& env, Groupsock* RTPgs,
00037 unsigned char rtpPayloadFormat,
00038 unsigned rtpTimestampFrequency)
00039 : MultiFramedRTPSource(env, RTPgs,
00040 rtpPayloadFormat, rtpTimestampFrequency) {
00041 }
00042
00043 MPEG4ESVideoRTPSource::~MPEG4ESVideoRTPSource() {
00044 }
00045
00046 Boolean MPEG4ESVideoRTPSource
00047 ::processSpecialHeader(BufferedPacket* packet,
00048 unsigned& resultSpecialHeaderSize) {
00049
00050
00051 fCurrentPacketBeginsFrame
00052 = packet->dataSize() >= 4 && (packet->data())[0] == 0
00053 && (packet->data())[1] == 0 && (packet->data())[2] == 1;
00054
00055
00056 fCurrentPacketCompletesFrame = packet->rtpMarkerBit();
00057
00058
00059 resultSpecialHeaderSize = 0;
00060 return True;
00061 }
00062
00063 char const* MPEG4ESVideoRTPSource::MIMEtype() const {
00064 return "video/MP4V-ES";
00065 }