[clutter-gst/clutter-gst-2.0] Add HW decoder support back.



commit a02ee9a4bcb9be06491258d3dedec10bd2d08a2c
Author: Gwenole Beauchesne <gwenole beauchesne intel com>
Date:   Mon Apr 15 11:24:04 2013 +0200

    Add HW decoder support back.

 clutter-gst/clutter-gst-video-sink.c |   12 ++++++++----
 configure.ac                         |   17 +++++++----------
 2 files changed, 15 insertions(+), 14 deletions(-)
---
diff --git a/clutter-gst/clutter-gst-video-sink.c b/clutter-gst/clutter-gst-video-sink.c
index 347329d..1a93f8f 100644
--- a/clutter-gst/clutter-gst-video-sink.c
+++ b/clutter-gst/clutter-gst-video-sink.c
@@ -357,6 +357,9 @@ clutter_gst_parse_caps (GstCaps * caps,
       format = CLUTTER_GST_RGB32;
       bgr = TRUE;
       break;
+    case GST_VIDEO_FORMAT_ENCODED:
+      format = CLUTTER_GST_SURFACE;
+      break;
     default:
       goto unhandled_format;
   }
@@ -1088,13 +1091,13 @@ clutter_gst_hw_deinit (ClutterGstVideoSink * sink)
   priv->converter = NULL;
 }
 
-static void
+static gboolean
 clutter_gst_hw_upload (ClutterGstVideoSink * sink, GstBuffer * buffer)
 {
   ClutterGstVideoSinkPrivate *priv = sink->priv;
   GstSurfaceMeta *surface = gst_buffer_get_surface_meta (buffer);
 
-  g_return_if_fail (surface != NULL);
+  g_return_val_if_fail (surface != NULL, FALSE);
 
   if (G_UNLIKELY (priv->converter == NULL)) {
     CoglHandle tex;
@@ -1110,20 +1113,21 @@ clutter_gst_hw_upload (ClutterGstVideoSink * sink, GstBuffer * buffer)
 
     priv->converter =
         gst_surface_meta_create_converter (surface, "opengl", &value);
-    g_return_if_fail (priv->converter);
+    g_return_val_if_fail (priv->converter, FALSE);
   }
 
   gst_surface_converter_upload (priv->converter, buffer);
 
   /* The texture is dirty, schedule a redraw */
   clutter_actor_queue_redraw (CLUTTER_ACTOR (priv->texture));
+  return TRUE;
 }
 
 static ClutterGstRenderer hw_renderer = {
   "HW surface",
   CLUTTER_GST_SURFACE,
   0,
-  GST_STATIC_CAPS ("x-video/surface, opengl=true"),
+  GST_STATIC_CAPS ("video/x-surface, opengl=true"),
   clutter_gst_hw_init,
   clutter_gst_hw_deinit,
   clutter_gst_hw_upload,
diff --git a/configure.ac b/configure.ac
index 1b38725..6e13c84 100644
--- a/configure.ac
+++ b/configure.ac
@@ -209,16 +209,13 @@ AS_IF([test "x$have_cogl_osx" = xyes],
 
 dnl ========================================================================
 dnl Experimental support for hardware accelerated decoders.
-dnl Temporarily disabling for GStreamer 1.0 since it's causing too many issues
-dnl and the API for hw support isn't yet put in stone
-have_hw_decoder_support=no
-# PKG_CHECK_MODULES(HW,
-#                  [gstreamer-basevideo-$GST_MAJORMINOR >= $GST_PLUGINS_BAD_REQ_VERSION],
-#                  [
-#                    have_hw_decoder_support=yes
-#                    AC_DEFINE([HAVE_HW_DECODER_SUPPORT], [1],
-#                              ["Defined if building Clutter with HW decoder support"])
-#                  ],[ have_hw_decoder_support=no ])
+PKG_CHECK_MODULES(HW,
+    [gstreamer-basevideo-$GST_MAJORMINOR >= $GST_PLUGINS_BAD_REQ_VERSION],
+    [
+        have_hw_decoder_support=yes
+        AC_DEFINE([HAVE_HW_DECODER_SUPPORT], [1],
+                  ["Defined if building Clutter with HW decoder support"])
+    ],[ have_hw_decoder_support=no ])
 
 dnl ========================================================================
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]