[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