From 782184e7813ff4cd402bec0e556ce1f4d1187220 Mon Sep 17 00:00:00 2001 From: Sreerenj Balachandran Date: Fri, 1 Sep 2017 13:48:01 -0700 Subject: [PATCH] vaapisink: Fix rendering in drm display Make sure vaapisink create a va surface backed buffer pool and all required attributes get assigned correctly for drm display type. This is needed to make the below pipeline working: gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy width=320 height=240 framerate=30/1 ! vaapisink display=drm https://bugzilla.gnome.org/show_bug.cgi?id=786954 --- gst/vaapi/gstvaapisink.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c index 9336e540f4..27f0a6e037 100644 --- a/gst/vaapi/gstvaapisink.c +++ b/gst/vaapi/gstvaapisink.c @@ -1325,9 +1325,6 @@ gst_vaapisink_set_caps (GstBaseSink * base_sink, GstCaps * caps) return FALSE; display = GST_VAAPI_PLUGIN_BASE_DISPLAY (sink); - if (GST_VAAPI_PLUGIN_BASE_DISPLAY_TYPE (sink) == GST_VAAPI_DISPLAY_TYPE_DRM) - return TRUE; - if (!gst_vaapi_plugin_base_set_caps (plugin, caps, NULL)) return FALSE; @@ -1346,6 +1343,9 @@ gst_vaapisink_set_caps (GstBaseSink * base_sink, GstCaps * caps) gst_vaapisink_ensure_colorbalance (sink); gst_vaapisink_ensure_rotation (sink, FALSE); + if (GST_VAAPI_PLUGIN_BASE_DISPLAY_TYPE (sink) == GST_VAAPI_DISPLAY_TYPE_DRM) + return TRUE; + gst_vaapisink_ensure_window_size (sink, &win_width, &win_height); if (sink->window) { if (!sink->foreign_window || sink->fullscreen)