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
This commit is contained in:
Sreerenj Balachandran 2017-09-01 13:48:01 -07:00
parent 9f98a02a05
commit 782184e781

View file

@ -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)