GNOME Bugzilla – Bug 385882
Push mode support for ffmpeg demuxers
Last modified: 2007-01-04 11:17:44 UTC
Currently the ffmpeg demuxers only work in pull-based mode. The problem is that the ffmpeg demuxers always request data (we can not push data to them). So this will require creating a new task to continue driving the demuxers, and incoming buffers will be coming from the upstream streaming thread. Most of this can be done in GstFFMpegProtocol. There is a flag on the protocol to inform gstreamer that our stream is not seekable (so that it request sequential buffers). We will need a GMutex and a GCond to synchronize those two threads and protect the buffer that will be passed along. Those incoming buffers will be put into a GstAdapter (with a limited size) and we can wake up the demuxer thread once we have the number of bytes that he requested in _read() Comments are welcome on the design idea. I don't have time currently to implement this but I will try a draft version if nobody has come up with one before.
*** This bug has been marked as a duplicate of 392534 ***