Module: Mesa Branch: master Commit: 5d5b414a7b840a4a90050041fabd88a9af6dca43 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5d5b414a7b840a4a90050041fabd88a9af6dca43
Author: Christian König <deathsim...@vodafone.de> Date: Mon Mar 5 16:43:15 2012 +0100 st/vdpau: fix chroma_format handling in VideoSurfaceQueryGetPutBitsYCbCrCapabilities Signed-off-by: Christian König <deathsim...@vodafone.de> --- src/gallium/state_trackers/vdpau/query.c | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/gallium/state_trackers/vdpau/query.c b/src/gallium/state_trackers/vdpau/query.c index 9d40834..2b13ce1 100644 --- a/src/gallium/state_trackers/vdpau/query.c +++ b/src/gallium/state_trackers/vdpau/query.c @@ -87,9 +87,6 @@ vlVdpVideoSurfaceQueryCapabilities(VdpDevice device, VdpChromaType surface_chrom /* XXX: Current limits */ *is_supported = true; - if (surface_chroma_type != VDP_CHROMA_TYPE_420) - *is_supported = false; - max_2d_texture_level = pscreen->get_param(pscreen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS); pipe_mutex_unlock(dev->mutex); if (!max_2d_texture_level) @@ -124,7 +121,24 @@ vlVdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities(VdpDevice device, VdpChromaTyp return VDP_STATUS_RESOURCES; pipe_mutex_lock(dev->mutex); - *is_supported = pscreen->is_video_format_supported + + switch(bits_ycbcr_format) { + case VDP_YCBCR_FORMAT_UYVY: + case VDP_YCBCR_FORMAT_YUYV: + *is_supported = surface_chroma_type == VDP_CHROMA_TYPE_422; + break; + + case VDP_YCBCR_FORMAT_Y8U8V8A8: + case VDP_YCBCR_FORMAT_V8U8Y8A8: + *is_supported = surface_chroma_type == VDP_CHROMA_TYPE_444; + break; + + default: + *is_supported = true; + break; + } + + *is_supported &= pscreen->is_video_format_supported ( pscreen, FormatYCBCRToPipe(bits_ycbcr_format), _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit