summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2010-02-08 08:11:33 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2010-02-12 11:12:34 +0100
commit69b9c76dc85062db9f6faa2e78eb39097d1a08e2 (patch)
tree08ff578fcf170bc83cef52430c75ca5beb1da9bf
parent104471f517a7f3f098dfb01c7bcd97ff6522fb10 (diff)
[MOVED FROM BAD 21/29] shapewipe: Drop mask buffer on FLUSH events
-rw-r--r--gst/shapewipe/gstshapewipe.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gst/shapewipe/gstshapewipe.c b/gst/shapewipe/gstshapewipe.c
index 99a783ed5..7c512df4e 100644
--- a/gst/shapewipe/gstshapewipe.c
+++ b/gst/shapewipe/gstshapewipe.c
@@ -1073,10 +1073,24 @@ gst_shape_wipe_video_sink_event (GstPad * pad, GstEvent * event)
static gboolean
gst_shape_wipe_mask_sink_event (GstPad * pad, GstEvent * event)
{
+ GstShapeWipe *self = GST_SHAPE_WIPE (gst_pad_get_parent (pad));
+
GST_DEBUG_OBJECT (pad, "Got %s event", GST_EVENT_TYPE_NAME (event));
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_FLUSH_STOP:
+ g_mutex_lock (self->mask_mutex);
+ gst_buffer_replace (&self->mask, NULL);
+ g_mutex_unlock (self->mask_mutex);
+ break;
+ default:
+ break;
+ }
+
/* Dropping all events here */
gst_event_unref (event);
+
+ gst_object_unref (self);
return TRUE;
}