[gst-devel] [gst-cvs] gstreamer: gstpad: Fix flush-stop event handling
Edward Hervey
bilboed at gmail.com
Wed Sep 15 08:18:14 CEST 2010
On Mon, 2010-09-13 at 16:56 -0700, Thiago Sousa Santos wrote:
> Module: gstreamer
> Branch: master
> Commit: 60fba4df8b53226b019a1cc72405afbf8b708d06
> URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=60fba4df8b53226b019a1cc72405afbf8b708d06
>
> Author: Thiago Santos <thiago.sousa.santos at collabora.co.uk>
> Date: Mon Sep 13 20:39:50 2010 -0300
>
> gstpad: Fix flush-stop event handling
>
> A flush-stop event would make a pad unflushing, causing it
> to start acting as an activated pad. This, for example,
> could lead to the chain function being called when stuff
> isn't initialized.
>
> This could happend when setting qtdemux to NULL while a seek
> was being handled in the upstream filesrc (in push mode).
>
> This patch makes it check if it is activated before setting
> it to unflushing.
>
> ---
>
> gst/gstpad.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/gst/gstpad.c b/gst/gstpad.c
> index c331684..9639f1d 100644
> --- a/gst/gstpad.c
> +++ b/gst/gstpad.c
> @@ -5074,8 +5074,10 @@ gst_pad_send_event (GstPad * pad, GstEvent * event)
> GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "set flush flag");
> break;
> case GST_EVENT_FLUSH_STOP:
> - GST_PAD_UNSET_FLUSHING (pad);
> - GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "cleared flush flag");
> + if (G_LIKELY (GST_PAD_ACTIVATE_MODE (pad) != GST_ACTIVATE_NONE)) {
> + GST_PAD_UNSET_FLUSHING (pad);
> + GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "cleared flush flag");
> + }
This causes a regression when used with the proxypads of ghostpads. It
seems to be related to the special flushing handling of those pads (they
are created with the flushing flag unset).
> GST_OBJECT_UNLOCK (pad);
> /* grab stream lock */
> GST_PAD_STREAM_LOCK (pad);
>
>
> ------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing.
> http://p.sf.net/sfu/novell-sfdev2dev
> _______________________________________________
> gstreamer-cvs mailing list
> gstreamer-cvs at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs
More information about the gstreamer-devel
mailing list