Module: Mesa Branch: master Commit: 1eb48c5500e5b3e3319108a1cecf63524fdede0d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1eb48c5500e5b3e3319108a1cecf63524fdede0d
Author: Maarten Lankhorst <[email protected]> Date: Mon Oct 31 10:26:02 2011 +0100 state_trackers/vdpau: Test if profile is supported first before trying to create decoder So a nicer error message is returned. Signed-off-by: Maarten Lankhorst <[email protected]> --- src/gallium/state_trackers/vdpau/decode.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/src/gallium/state_trackers/vdpau/decode.c b/src/gallium/state_trackers/vdpau/decode.c index 7689ce2..2b23dfd 100644 --- a/src/gallium/state_trackers/vdpau/decode.c +++ b/src/gallium/state_trackers/vdpau/decode.c @@ -43,15 +43,18 @@ vlVdpDecoderCreate(VdpDevice device, { enum pipe_video_profile p_profile; struct pipe_context *pipe; + struct pipe_screen *screen; vlVdpDevice *dev; vlVdpDecoder *vldecoder; VdpStatus ret; unsigned i; + bool supported; VDPAU_MSG(VDPAU_TRACE, "[VDPAU] Creating decoder\n"); if (!decoder) return VDP_STATUS_INVALID_POINTER; + *decoder = 0; if (!(width && height)) return VDP_STATUS_INVALID_VALUE; @@ -65,6 +68,15 @@ vlVdpDecoderCreate(VdpDevice device, return VDP_STATUS_INVALID_HANDLE; pipe = dev->context->pipe; + screen = dev->vscreen->pscreen; + supported = screen->get_video_param + ( + screen, + p_profile, + PIPE_VIDEO_CAP_SUPPORTED + ); + if (!supported) + return VDP_STATUS_INVALID_DECODER_PROFILE; vldecoder = CALLOC(1,sizeof(vlVdpDecoder)); if (!vldecoder) _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
