[Bug 744572] New: flowcombiner regressions
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sun Feb 15 11:51:15 PST 2015
https://bugzilla.gnome.org/show_bug.cgi?id=744572
Bug ID: 744572
Summary: flowcombiner regressions
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: major
Priority: Normal
Component: gstreamer (core)
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: mnauw at users.sourceforge.net
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
With the introduction of GstFlowCombiner as a helper and so used in lots of
demuxers, quite some of them had a last_flow removed in pad/stream struct data.
However, so it seems, without replacing all steps and the whole logic that was
involved on these stored GstFlowReturn. The following has been specifically
seen with avidemux, but other demuxers are potentially affected as well.
The problem is that segment seek is pretty broken as follows:
* segment seek occurs
* data loop advances streams
* if a stream reaches past the end-of-segment (minding keyframe), then this is
internally tracked by returning a GST_FLOW_EOS (but no data is pushed
downstream). So this EOS is passed to GstFlowCombiner but not stored in the
pad ABI last_flowret (which still registers OK). So the combined GstFlowReturn
determined by GstFlowCombiner never turns EOS (and loop eventually stops at end
way past segment or a downstream decoder has seen enough and returns EOS).
* so we finally made it past this segment somehow, then a next segment-seek
happens
* last_flow used to be reset at seek time, but the pad ABI last_flowret is
never reset. So some streams may still assume EOS is reached, and internal
book-keeping is confused (in this case, no data sent for such stream and things
go wrong).
--
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