[Bug 730989] omxdec: Get stuck while doing ctrl+c during preroll
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Fri May 30 07:00:24 PDT 2014
https://bugzilla.gnome.org/show_bug.cgi?id=730989
GStreamer | gst-omx | 1.3.1
--- Comment #4 from Nicolas Dufresne <nicolas.dufresne at collabora.co.uk> 2014-05-30 14:00:20 UTC ---
Just a note, I've had to fix the same pattern in v4l2videodec (didn't check
OMX). The loop thread is a pad task, hence it's holding on the stream lock. We
cannot rely on GstVideoDecoder::stop() as it's called after trying to
deactivate the pad. When we try to deactivate the pad, the loop is still
holding on the stream lock, so deactivate will block on that:
gstpad.c:957
GST_PAD_STREAM_LOCK (pad); <-- ** Here **
GST_DEBUG_OBJECT (pad, "stopped streaming");
GST_OBJECT_LOCK (pad);
remove_events (pad);
GST_OBJECT_UNLOCK (pad);
GST_PAD_STREAM_UNLOCK (pad);
So what I did, is to override the state change virtual, and before chaining to
the base class, I do what's needed to make by loop exit. The base class could
be improved, but this fixed it.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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