Fix GstVaapiDisplay refcounting in vaapidecode.
authorgb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
Wed, 12 May 2010 19:14:35 +0000 (19:14 +0000)
committerGwenole Beauchesne <gbeauchesne@splitted-desktop.com>
Mon, 20 Sep 2010 10:55:45 +0000 (12:55 +0200)
gst/vaapidecode/gstvaapidecode.c

index 5d1f2be..d20d8b5 100644 (file)
@@ -162,10 +162,15 @@ error_commit_buffer:
 static inline gboolean
 gst_vaapidecode_ensure_display(GstVaapiDecode *decode)
 {
-    if (!decode->display)
-        decode->display =
-            gst_vaapi_display_lookup_downstream(GST_ELEMENT(decode));
-    return decode->display != NULL;
+    GstVaapiDisplay *display;
+
+    if (!decode->display) {
+        display = gst_vaapi_display_lookup_downstream(GST_ELEMENT(decode));
+        if (!display)
+            return FALSE;
+        decode->display = g_object_ref(display);
+    }
+    return TRUE;
 }
 
 static gboolean