[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