summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/vdpau/surface.c
diff options
context:
space:
mode:
authorLeo Liu <leo.liu@amd.com>2017-09-30 22:19:49 -0400
committerLeo Liu <leo.liu@amd.com>2017-10-04 09:22:33 -0400
commit327480d10f2dab52de28e9a84609fac81c2034c5 (patch)
treeba976384b8221d8fbb570c94afd240b77e5508f2 /src/gallium/state_trackers/vdpau/surface.c
parentae61fe4982acf1ba86419beaf757f5f099656a53 (diff)
st/vdpau: don't re-allocate interlaced buffer with packed YUV format
It caused corruption, when vlVdpVideoSurfacePutBitsYCbCr putting YUV to the fields Cc: mesa-stable@lists.freedesktop.org Cc: Andy Furniss <adf.lists@gmail.com> Tested-by: Andy Furniss <adf.lists@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
Diffstat (limited to 'src/gallium/state_trackers/vdpau/surface.c')
-rw-r--r--src/gallium/state_trackers/vdpau/surface.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/vdpau/surface.c b/src/gallium/state_trackers/vdpau/surface.c
index 884ae308319..c678eb70377 100644
--- a/src/gallium/state_trackers/vdpau/surface.c
+++ b/src/gallium/state_trackers/vdpau/surface.c
@@ -350,6 +350,8 @@ vlVdpVideoSurfacePutBitsYCbCr(VdpVideoSurface surface,
/* adjust the template parameters */
p_surf->templat.buffer_format = nformat;
+ if (nformat == PIPE_FORMAT_YUYV || nformat == PIPE_FORMAT_UYVY)
+ p_surf->templat.interlaced = false;
/* and try to create the video buffer with the new format */
p_surf->video_buffer = pipe->create_video_buffer(pipe, &p_surf->templat);