ducatividdec: fix deadlocks on early out paths
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Wed, 27 Jun 2012 11:12:27 +0000 (11:12 +0000)
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Wed, 27 Jun 2012 11:12:27 +0000 (11:12 +0000)
src/gstducatividdec.c

index caeceb47f1b288fb772ea5467d03c9a208a663bf..bebba5a17654d79904fde223214dc89a07b4f56d 100644 (file)
@@ -481,7 +481,7 @@ codec_process (GstDucatiVidDec * self, gboolean send, gboolean flush,
 gboolean
 gst_ducati_viddec_codec_flush (GstDucatiVidDec * self, gboolean eos)
 {
-  gint err;
+  gint err = FALSE;
 
   GST_DEBUG_OBJECT (self, "flush: eos=%d", eos);
 
@@ -497,12 +497,12 @@ gst_ducati_viddec_codec_flush (GstDucatiVidDec * self, gboolean eos)
   self->wait_keyframe = TRUE;
 
   if (G_UNLIKELY (self->first_in_buffer)) {
-    return TRUE;
+    goto out;
   }
 
   if (G_UNLIKELY (!self->codec)) {
     GST_WARNING_OBJECT (self, "no codec");
-    return TRUE;
+    goto out;
   }
 
   err = VIDDEC3_control (self->codec, XDM_FLUSH, self->dynParams, self->status);