[Bug 702697] adder: Seek while paused causes deadlock
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Jun 26 10:07:24 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=702697
GStreamer | gst-plugins-base | git
--- Comment #6 from Brendan Long <self at brendanlong.com> 2013-06-26 17:07:14 UTC ---
This function in gstadder.c is pretty suspicious. It's sending flush_stop
events for some reason?
static gboolean
forward_event_func (const GValue * val, GValue * ret, EventData * data)
{
GstPad *pad = g_value_get_object (val);
GstEvent *event = data->event;
GstPad *peer;
gst_event_ref (event);
GST_LOG_OBJECT (pad, "About to send event %s", GST_EVENT_TYPE_NAME (event));
peer = gst_pad_get_peer (pad);
/* collect pad might have been set flushing,
* so bypass core checking that and send directly to peer */
if (!peer || !gst_pad_send_event (peer, event)) {
if (!peer)
gst_event_unref (event);
GST_WARNING_OBJECT (pad, "Sending event %p (%s) failed.",
event, GST_EVENT_TYPE_NAME (event));
/* quick hack to unflush the pads, ideally we need a way to just unflush
* this single collect pad */
if (data->flush)
gst_pad_send_event (pad, gst_event_new_flush_stop (TRUE));
} else {
g_value_set_boolean (ret, TRUE);
GST_LOG_OBJECT (pad, "Sent event %p (%s).",
event, GST_EVENT_TYPE_NAME (event));
}
if (peer)
gst_object_unref (peer);
/* continue on other pads, even if one failed */
return TRUE;
}
--
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