From 41283361fac011132022bfb299e42fcfc29564aa Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 11 May 2016 16:42:35 +0200 Subject: [PATCH] decklinkvideosrc: Fix previous commit The frames queue might return nothing (be empty) if we're flushing. Move the assertion to after the flushing check --- sys/decklink/gstdecklinkvideosrc.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/decklink/gstdecklinkvideosrc.cpp b/sys/decklink/gstdecklinkvideosrc.cpp index a795f204ce..15ea0c85f2 100644 --- a/sys/decklink/gstdecklinkvideosrc.cpp +++ b/sys/decklink/gstdecklinkvideosrc.cpp @@ -550,14 +550,16 @@ gst_decklink_video_src_create (GstPushSrc * bsrc, GstBuffer ** buffer) f = (CaptureFrame *) g_queue_pop_head (&self->current_frames); g_mutex_unlock (&self->lock); - g_assert (f != NULL); - if (self->flushing) { - capture_frame_free (f); + if (f) + capture_frame_free (f); GST_DEBUG_OBJECT (self, "Flushing"); return GST_FLOW_FLUSHING; } + // If we're not flushing, we should have a valid frame from the queue + g_assert (f != NULL); + g_mutex_lock (&self->lock); if (self->caps_mode != f->mode) { if (self->mode == GST_DECKLINK_MODE_AUTO) {