Fix integration within the playbin2 pipeline.
authorgb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
Wed, 12 May 2010 08:02:45 +0000 (08:02 +0000)
committerGwenole Beauchesne <gbeauchesne@splitted-desktop.com>
Mon, 20 Sep 2010 10:55:45 +0000 (12:55 +0200)
NEWS
README
gst/vaapidecode/gstvaapidecode.c

diff --git a/NEWS b/NEWS
index 0219c2f..07c7042 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,9 @@
-gst-vaapi NEWS -- summary of changes.  2010-05-05
+gst-vaapi NEWS -- summary of changes.  2010-05-DD
 Copyright (C) 2010 Splitted-Desktop Systems
 
+Version 0.2.1 - DD.May.2010
+* Fix integration within the playbin2 pipeline
+
 Version 0.2.0 - 05.May.2010
 * Relicense gst-libs/ code to LGPL v2.1+
 * Add FFmpeg/VAAPI decoder for the new `vaapidecode' element
diff --git a/README b/README
index e192cc7..7f18290 100644 (file)
--- a/README
+++ b/README
@@ -74,6 +74,5 @@ elements automatically.
 Caveats
 -------
 
-  * No automatic integration within the default playbin2 pipeline
   * No ad-hoc parser, vaapidecoder currently relies on FFmpeg
   * MPEG-4 Part-2 (DivX) has decoding bugs
index 4fcbbe0..84ab40c 100644 (file)
@@ -31,6 +31,7 @@
 #include <gst/vaapi/gstvaapivideosink.h>
 #include <gst/vaapi/gstvaapivideobuffer.h>
 #include <gst/vaapi/gstvaapidecoder_ffmpeg.h>
+#include <gst/vaapi/gstvaapiutils_gst.h>
 
 #define GST_PLUGIN_NAME "vaapidecode"
 #define GST_PLUGIN_DESC "A VA-API based video decoder"
@@ -157,26 +158,13 @@ error_commit_buffer:
     }
 }
 
-static gboolean
+static inline gboolean
 gst_vaapidecode_ensure_display(GstVaapiDecode *decode)
 {
-    GstVaapiVideoSink *sink;
-    GstVaapiDisplay *display;
-
-    if (decode->display)
-        return TRUE;
-
-    /* Look for a downstream vaapisink */
-    sink = gst_vaapi_video_sink_lookup(GST_ELEMENT(decode));
-    if (!sink)
-        return FALSE;
-
-    display = gst_vaapi_video_sink_get_display(sink);
-    if (!display)
-        return FALSE;
-
-    decode->display = g_object_ref(display);
-    return TRUE;
+    if (!decode->display)
+        decode->display =
+            gst_vaapi_display_lookup_downstream(GST_ELEMENT(decode));
+    return decode->display != NULL;
 }
 
 static gboolean