From b0016e336bba268e4eb9968ff7847932711e07db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Sun, 16 Oct 2016 01:04:09 +0100 Subject: [PATCH] vaapidecode: don't GLTextureUpload if dmabuf Do not add the meta:GstVideoGLTextureUploadMeta feature if the render element can handle dmabuf-based buffers, avoiding its negotiation. --- gst/vaapi/gstvaapidecode.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gst/vaapi/gstvaapidecode.c b/gst/vaapi/gstvaapidecode.c index 1d84a8fd74..80993d5c66 100644 --- a/gst/vaapi/gstvaapidecode.c +++ b/gst/vaapi/gstvaapidecode.c @@ -213,15 +213,18 @@ gst_vaapidecode_ensure_allowed_srcpad_caps (GstVaapiDecode * decode) return FALSE; /* Create VA caps */ - out_caps = gst_caps_from_string (GST_VAAPI_MAKE_SURFACE_CAPS -#if (USE_GLX || USE_EGL) - ";" GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS -#endif - ); + out_caps = gst_caps_from_string (GST_VAAPI_MAKE_SURFACE_CAPS); if (!out_caps) { GST_WARNING_OBJECT (decode, "failed to create VA/GL source caps"); return FALSE; } +#if (USE_GLX || USE_EGL) + if (!GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)) { + out_caps = gst_caps_make_writable (out_caps); + gst_caps_append (out_caps, + gst_caps_from_string (GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS)); + } +#endif raw_caps = gst_vaapi_plugin_base_get_allowed_raw_caps (GST_VAAPI_PLUGIN_BASE (decode));