From 55175561f6d916595cae70f614a529c8086c4b51 Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Tue, 7 Jul 2015 15:54:41 +0100 Subject: [PATCH] Revert "imagefreeze: Remove impossible error condition" This reverts commit d46631c5c7312ad613397f8238c7a9714ae3ae94. pad only handle EOS events but not EOS flow, and will push the buffer again resulting in an assertion error. So we should not handle the buffer and return EOS flow. --- gst/imagefreeze/gstimagefreeze.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c index 43d4954..3c617ce 100644 --- a/gst/imagefreeze/gstimagefreeze.c +++ b/gst/imagefreeze/gstimagefreeze.c @@ -676,9 +676,14 @@ gst_image_freeze_sink_chain (GstPad * pad, GstObject * parent, { GstImageFreeze *self = GST_IMAGE_FREEZE (parent); - g_return_val_if_fail (self->buffer == NULL, GST_FLOW_ERROR); - g_mutex_lock (&self->lock); + if (self->buffer) { + GST_DEBUG_OBJECT (pad, "Already have a buffer, dropping"); + gst_buffer_unref (buffer); + g_mutex_unlock (&self->lock); + return GST_FLOW_EOS; + } + self->buffer = buffer; gst_pad_start_task (self->srcpad, (GstTaskFunction) gst_image_freeze_src_loop, -- 2.7.4