[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