[Live-devel] My MPEG4 Source does not make MPEG4ESVideoRTPSink set marker bits.

Cristiano Belloni belloni at imavis.com
Mon Feb 25 09:26:31 PST 2008


Hi, I'm streaming MPEG4 and use FFMPEG library to encode MPEG4 frames 
from my own live source.

I wrote my own FramedSource subclass and that does the trick.

The problem is, MPEG4ESVideoRTPSink does not set the marker bits at all. 
I took a look at the code in the MPEG4ESVideoRTPSink.cpp file and it 
goes like that:

00066   // Set the RTP 'M' (marker) bit iff this frame ends a VOP
00067   // (and there are no fragments remaining).
00068   // This relies on the source being a "MPEG4VideoStreamFramer".
00069   MPEG4VideoStreamFramer* framerSource = 
(MPEG4VideoStreamFramer*)fSource;
00070   if (framerSource != NULL && framerSource->pictureEndMarker()
00071       && numRemainingBytes == 0) {
00072     setMarkerBit();
00073     framerSource->pictureEndMarker() = False;
00074   }

This means I should instead subclass MPEG4VideoStreamFramer and set the 
pictureEndMarker everytime I have a complete frame? Is there no way to 
have my marker bits set just subclassing FramedSource, just like I did 
with H263 streaming?

Thanks and regards,

Cristiano.

-- 
Belloni Cristiano
Imavis Srl.
www.imavis.com <http://www.imavis.com>
belloni at imavis.com <mailto://belloni@imavis.com>


More information about the live-devel mailing list