After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 385882 - Push mode support for ffmpeg demuxers
Push mode support for ffmpeg demuxers
Status: RESOLVED DUPLICATE of bug 392534
Product: GStreamer
Classification: Platform
Component: gst-libav
git master
Other Linux
: Normal enhancement
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-12-14 15:50 UTC by Edward Hervey
Modified: 2007-01-04 11:17 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Edward Hervey 2006-12-14 15:50:58 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.
Comment 1 Edward Hervey 2007-01-04 10:42:03 UTC

*** This bug has been marked as a duplicate of 392534 ***