[Bug 778830] v4l2dec: Fix race when going from PAUSED to READY
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Feb 22 08:50:04 UTC 2017
https://bugzilla.gnome.org/show_bug.cgi?id=778830
Nicolas Dufresne (stormer) <nicolas at ndufresne.ca> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #346389|none |needs-work
status| |
--- Comment #8 from Nicolas Dufresne (stormer) <nicolas at ndufresne.ca> ---
Review of attachment 346389:
--> (https://bugzilla.gnome.org/review?bug=778830&attachment=346389)
It would also be nice to make a version with an internal version of
pad_get_state(), so we could merge in 1.10.
::: sys/v4l2/gstv4l2videodec.c
@@ +478,3 @@
/* When flushing, decoding thread may never run */
+ if (gst_pad_get_task_state (GST_VIDEO_DECODER_SRC_PAD (self)) !=
+ GST_TASK_STOPPED) {
Is that really possible in the task implementation ? When I read
gst_task_func(), the state will always be stopped when this is called. That's
because we take a ref in start_task, and will only leave gst_task_func() when
the state is STOPPED.
What this is trying to do, is to catch the case were we flush before our task
function get called. Because we have no guaranty to be called once. In that
case, the output_flow won't be set properly.
Maybe with a small rework, we could manage to initially set the output_flow to
FLUSHING, and get away with that ?
--
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