[Bug 758257] New: adaptivedemux: don't expose pads until caps are known

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Nov 17 20:44:49 PST 2015


https://bugzilla.gnome.org/show_bug.cgi?id=758257

            Bug ID: 758257
           Summary: adaptivedemux: don't expose pads until caps are known
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: thaytan at noraisin.net
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

In implementing decodebin3, it's causing me pain that when it switches
bitrates, adaptivedemux immediately adds new pads and removes old ones, but the
caps on the new pads aren't known until some time later when HTTP data arrives.
That increases the window in which the demuxer is not connected to anything,
when in fact if we know the caps, we could immediately splice the output onto
an existing demuxer, parser or decoder.

My plan is:

1) Block all new streams. Keep a counter of number of pending streams.
   Store block-id on the Stream structure
2) When all new streams pre-roll (blocked => pending--, when pending == 0),
unblock and expose them
3) Send EOS and remove old pads after new pads are exposed.                     
4) When handling a seek, unblock any blocked streams so the seek can be
processed.

Anyone see any problems?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list