GNOME Bugzilla – Bug 745366
concat: Forward FLUSH_START / FLUSH_STOP events
Last modified: 2015-06-10 09:52:06 UTC
Created attachment 298204 [details] [review] Patch for flush events in concat Currently, the concat element is not forwarding the FLUSH_START/FLUSH_STOP events in its sink event handler. This causes problems when seeking in PAUSED state (the pipeline deadlocks). By forwarding events, seeking while paused becomes possible again.
Comment on attachment 298204 [details] [review] Patch for flush events in concat I think it should only do that for the currently active pad, and also only forward seek events to the currently active pad.
Created attachment 300525 [details] [review] Patch for flush events in concat, v2 Added checks to see if the pad the flush events come from is the active one. As for seek, I believe the check is there in the code already. From gstconcat.c: GstPad *sinkpad = NULL; g_mutex_lock (&self->lock); if ((sinkpad = self->current_sinkpad)) gst_object_ref (sinkpad); g_mutex_unlock (&self->lock); if (sinkpad) { ret = gst_pad_push_event (sinkpad, event); gst_object_unref (sinkpad); } else { ....
Comment on attachment 300525 [details] [review] Patch for flush events in concat, v2 Committed, and also fixed the event leak if not forwarding
commit 426a6ea6444e37422acb45b4b19e3165bf419b55 Author: Carlos Rafael Giani <dv@pseudoterminal.org> Date: Sat Mar 28 16:46:32 2015 +0100 concat: Forward FLUSH_START and FLUSH_STOP events Without this, seeking deadlocks if performed while the pipeline is paused. Only flush events coming from the active pad are forwarded. https://bugzilla.gnome.org/show_bug.cgi?id=745366