[Live-devel] .m4v / .mp3 Synchronization

Michael Russell mrussell at frontiernet.net
Thu Jul 9 18:32:30 PDT 2009


I wrote:

> I have two independent ByteStreamFileSource objects -  One feeds 
> MPEG-4 video elementary stream (.m4v) data to an MPEG4VideoStreamFramer.
>  One feeds MPEG-1, Layer 3 (.mp3) audio data to an 
> MPEG1or2AudioStreamFramer.
>
> Those framers then each feed a MPEG2TransportStreamFromESSource object.
> The resultant transport stream feeds a FileSink object that writes my 
> .ts file.

> My own additional debug output suggests that my 
> MPEG2TransportStreamFromESSource object just stops calling 
> getNextFrame() on the video input source (MPEG4VideoStreamFramer).  I 
> have no idea why this would be. It seems that the 
> MPEG2TransportStreamFromESSource is running into trouble when it has 
> to deal with my two framer objects feeding it at the same time.

Here's an update:

(See InputESSourceRecord::askForNewData() in 
MPEG2TransportStreamFromESSource.cpp)

I have confirmed that MPEG2TransportStreamFromESSource object stops
calling getNextFrame() on my video framer source because
fInputSource->isCurrentlyAwaitingData()  almost always returns True for
my MPEG4VideoStreamFramer object.  Since both my audio and video framer
objects work fine independently, I wonder if there is a bug
in MPEG2TransportStreamFromESSource that causes it to get its sources
confused (and hence, thinks that  the MPEG4VideoStreamFramer object is
awaiting data when it really isn't).  A very similar problem was
cited here:
<http://lists.live555.com/pipermail/live-devel/2008-June/008763.html> ,
but I  don't think that there was ever a resolution to it.











More information about the live-devel mailing list