vaapidecode: fix deinitialization order.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 5 Jan 2012 15:26:49 +0000 (16:26 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 5 Jan 2012 15:26:49 +0000 (16:26 +0100)
gst/vaapi/gstvaapidecode.c

index 81d08a9..a5f0b0c 100644 (file)
@@ -301,17 +301,6 @@ gst_vaapidecode_create(GstVaapiDecode *decode, GstCaps *caps)
 static void
 gst_vaapidecode_destroy(GstVaapiDecode *decode)
 {
-    if (decode->decoder_ready) {
-        gst_vaapidecode_release(decode, NULL);
-        g_cond_free(decode->decoder_ready);
-        decode->decoder_ready = NULL;
-    }
-
-    if (decode->decoder_mutex) {
-        g_mutex_free(decode->decoder_mutex);
-        decode->decoder_mutex = NULL;
-    }
-
     if (decode->decoder) {
         gst_vaapi_decoder_put_buffer(decode->decoder, NULL);
         g_object_unref(decode->decoder);
@@ -322,6 +311,17 @@ gst_vaapidecode_destroy(GstVaapiDecode *decode)
         gst_caps_unref(decode->decoder_caps);
         decode->decoder_caps = NULL;
     }
+
+    if (decode->decoder_ready) {
+        gst_vaapidecode_release(decode, NULL);
+        g_cond_free(decode->decoder_ready);
+        decode->decoder_ready = NULL;
+    }
+
+    if (decode->decoder_mutex) {
+        g_mutex_free(decode->decoder_mutex);
+        decode->decoder_mutex = NULL;
+    }
 }
 
 static gboolean