vaapisink: Fix the capsfeature advertisement in padtemplate

This fixes the regression introduced in 64acc74.

If a pad supports multiple set of capsfeatures, it needs to add
multiple equal structures with different feature sets to the caps.
Because caps structures with the same name but with a non-equal
set of caps features are not compatible.

Without this patch, playbin will autoplug xvimagesink instead of vaapisink.

https://bugzilla.gnome.org/show_bug.cgi?id=750095
This commit is contained in:
Sreerenj Balachandran 2015-06-17 14:20:37 +03:00
parent 64acc74d17
commit 28e50ad407

View file

@ -58,17 +58,19 @@ GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapisink);
/* *INDENT-OFF* */
static const char gst_vaapisink_sink_caps_str[] =
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (
GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE
GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE,
"{ ENCODED, NV12, I420, YV12 }") ";"
#if GST_CHECK_VERSION(1,3,1)
"," GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (
GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE ","
GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION,
"{ ENCODED, NV12, I420, YV12 }") ";"
#endif
,"{ ENCODED, NV12, I420, YV12 }") ";"
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ";"
#if GST_CHECK_VERSION(1,3,1)
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (
GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION,
GST_VIDEO_FORMATS_ALL);
#else
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL);
#endif
/* *INDENT-ON* */