[gstreamer-bugs] [Bug 385882] New: Push mode support for ffmpeg demuxers
GStreamer (bugzilla.gnome.org)
bugzilla-daemon at bugzilla.gnome.org
Thu Dec 14 07:52:23 PST 2006
Do not reply to this via email (we are currently unable to handle email
responses and they get discarded). You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=385882
GStreamer | gst-ffmpeg | Ver: HEAD CVS
Summary: Push mode support for ffmpeg demuxers
Product: GStreamer
Version: HEAD CVS
Platform: Other
OS/Version: Linux
Status: UNCONFIRMED
Severity: enhancement
Priority: Normal
Component: gst-ffmpeg
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: bilboed at bilboed.com
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME version: Unspecified
GNOME milestone: Unspecified
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.
--
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
More information about the Gstreamer-bugs
mailing list