[Bug 764939] basesink: deadlock caused by klass->wait_event() which leaves preroll mutex locked
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Tue Apr 12 12:59:05 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=764939
--- Comment #11 from A Ashley <bugzilla at ashley-family.net> ---
When GST_EVENT_EOS arrives, we want to let the hardware output drain, so that
EOS is not signalled before the output is empty.
In the class_init function of our element we override the wait_event virtual
method:
gstbasesink_class->wait_event = GST_DEBUG_FUNCPTR (gst_fun_sink_wait_event);
The gst_fun_sink_wait_event() function calls the base sink wait_event:
static GstFlowReturn
gst_fun_sink_wait_event(GstBaseSink *basesink, GstEvent *event)
{
GstFlowReturn ret;
GstFunSink* sink = GST_FUN_SINK( basesink );
switch( GST_EVENT_TYPE( event ) ) {
case GST_EVENT_EOS:
GST_DEBUG_OBJECT (sink, "End of stream");
gst_fun_sink_wait_until_empty (sink);
GST_DEBUG_OBJECT (sink, "End of stream - done");
break;
default:
break;
}
ret = GST_BASE_SINK_CLASS( gst_fun_sink_parent_class )->wait_event( basesink,
event );
return ret;
}
--
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