decklinkvideosrc: Fix previous commit
authorEdward Hervey <edward@centricular.com>
Wed, 11 May 2016 14:42:35 +0000 (16:42 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 11 May 2016 14:52:44 +0000 (16:52 +0200)
The frames queue might return nothing (be empty) if we're flushing.

Move the assertion to after the flushing check

sys/decklink/gstdecklinkvideosrc.cpp

index a795f20..15ea0c8 100644 (file)
@@ -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) {