[Mesa-stable] [PATCH] st/vdpau: allow progressive video surface with interop
Leo Liu
leo.liu at amd.com
Wed May 2 14:51:41 UTC 2018
mpv now interop with video surface instead of output surface previously,
so it fails with "vlVdpVideoSurfaceDMABuf", this's fine for Mesa GL, since
the code path will fall back to "vlVdpVideoSurfaceGallium", but this's
not the case for others
Signed-off-by: Leo Liu <leo.liu at amd.com>
Cc: Christian König <christian.koenig at amd.com>
Cc: "18.1 18.0" <mesa-stable at lists.freedesktop.org>
---
src/gallium/state_trackers/vdpau/surface.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/gallium/state_trackers/vdpau/surface.c b/src/gallium/state_trackers/vdpau/surface.c
index 012d303641..d63e761350 100644
--- a/src/gallium/state_trackers/vdpau/surface.c
+++ b/src/gallium/state_trackers/vdpau/surface.c
@@ -513,12 +513,15 @@ VdpStatus vlVdpVideoSurfaceDMABuf(VdpVideoSurface surface,
}
/* Check if surface match interop requirements */
- if (p_surf->video_buffer == NULL || !p_surf->video_buffer->interlaced ||
+ if (p_surf->video_buffer == NULL ||
p_surf->video_buffer->buffer_format != PIPE_FORMAT_NV12) {
mtx_unlock(&p_surf->device->mutex);
return VDP_STATUS_NO_IMPLEMENTATION;
}
+ if (!p_surf->video_buffer->interlaced)
+ plane >>= 1;
+
surf = p_surf->video_buffer->get_surfaces(p_surf->video_buffer)[plane];
if (!surf) {
mtx_unlock(&p_surf->device->mutex);
--
2.14.1
More information about the mesa-stable
mailing list