diff options
author | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2013-04-15 11:24:04 +0200 |
---|---|---|
committer | Lionel Landwerlin <llandwerlin@gmail.com> | 2013-04-23 18:10:39 +0100 |
commit | a02ee9a4bcb9be06491258d3dedec10bd2d08a2c (patch) | |
tree | c76f5124cf2d740ced3562ff0dcfbaf91e812f06 | |
parent | dcdbbeb7b1bfa13c7438cd7004b6f7885b76901e (diff) | |
download | clutter-gst-a02ee9a4bcb9be06491258d3dedec10bd2d08a2c.tar.gz |
Add HW decoder support back.
-rw-r--r-- | clutter-gst/clutter-gst-video-sink.c | 12 | ||||
-rw-r--r-- | 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 ======================================================================== |