[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