[Libva] [PATCH][libva-intel-driver] i965_validate_config: return unsupported profile
Eoff, Ullysses A
ullysses.a.eoff at intel.com
Tue Oct 18 15:25:07 UTC 2016
Please run the tests... I suspect this patch will cause some to fail. Those tests will need updated too.
U. Artie
> -----Original Message-----
> From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf Of Daniel Charles
> Sent: Monday, October 17, 2016 5:45 PM
> To: libva at lists.freedesktop.org
> Subject: [Libva] [PATCH][libva-intel-driver] i965_validate_config: return unsupported profile
>
> When all the profiles are not supported return
> VA_STATUS_ERROR_UNSUPPORTED_PROFILE instead of
> VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT.
>
> Also change the style on the code modified to be common
> on all cases
>
> Signed-off-by: Daniel Charles <daniel.charles at intel.com>
> ---
> src/i965_drv_video.c | 49 ++++++++++++++++++++++++++++++++++++++++---------
> 1 file changed, 40 insertions(+), 9 deletions(-)
>
> diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
> index fbf2cda..0830ae0 100644
> --- a/src/i965_drv_video.c
> +++ b/src/i965_drv_video.c
> @@ -711,6 +711,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> if ((HAS_MPEG2_DECODING(i965) && entrypoint == VAEntrypointVLD) ||
> (HAS_MPEG2_ENCODING(i965) && entrypoint == VAEntrypointEncSlice)) {
> va_status = VA_STATUS_SUCCESS;
> + } else if (!HAS_MPEG2_DECODING(i965) && !HAS_MPEG2_ENCODING(i965)){
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> }
> @@ -723,6 +725,9 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> (HAS_H264_ENCODING(i965) && entrypoint == VAEntrypointEncSlice) ||
> (HAS_LP_H264_ENCODING(i965) && entrypoint == VAEntrypointEncSliceLP)) {
> va_status = VA_STATUS_SUCCESS;
> + } else if (!HAS_H264_DECODING(i965) && !HAS_H264_ENCODING(i965) &&
> + !HAS_LP_H264_ENCODING(i965)){
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> }
> @@ -733,6 +738,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> case VAProfileVC1Advanced:
> if (HAS_VC1_DECODING(i965) && entrypoint == VAEntrypointVLD) {
> va_status = VA_STATUS_SUCCESS;
> + } else if (!HAS_VC1_DECODING(i965)) {
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> }
> @@ -741,6 +748,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> case VAProfileNone:
> if (HAS_VPP(i965) && VAEntrypointVideoProc == entrypoint) {
> va_status = VA_STATUS_SUCCESS;
> + } else if (!HAS_VPP(i965)){
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> }
> @@ -750,6 +759,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> if ((HAS_JPEG_DECODING(i965) && entrypoint == VAEntrypointVLD) ||
> (HAS_JPEG_ENCODING(i965) && entrypoint == VAEntrypointEncPicture)) {
> va_status = VA_STATUS_SUCCESS;
> + } else if (!HAS_JPEG_DECODING(i965) && !HAS_JPEG_ENCODING(i965)){
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> }
> @@ -759,6 +770,8 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> if ((HAS_VP8_DECODING(i965) && entrypoint == VAEntrypointVLD) ||
> (HAS_VP8_ENCODING(i965) && entrypoint == VAEntrypointEncSlice)) {
> va_status = VA_STATUS_SUCCESS;
> + } else if (!HAS_VP8_DECODING(i965) && !HAS_VP8_ENCODING(i965)){
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> }
> @@ -768,8 +781,12 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
> case VAProfileH264StereoHigh:
> if ((HAS_H264_MVC_DECODING_PROFILE(i965, profile) &&
> entrypoint == VAEntrypointVLD) ||
> - (HAS_H264_MVC_ENCODING(i965) && entrypoint == VAEntrypointEncSlice)) {
> + (HAS_H264_MVC_ENCODING(i965) &&
> + entrypoint == VAEntrypointEncSlice)) {
> va_status = VA_STATUS_SUCCESS;
> + } else if(!HAS_H264_MVC_DECODING_PROFILE(i965, profile) &&
> + !HAS_H264_MVC_ENCODING(i965)) {
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> }
> @@ -778,32 +795,46 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
>
> case VAProfileHEVCMain:
> if ((HAS_HEVC_DECODING(i965) && (entrypoint == VAEntrypointVLD))||
> - (HAS_HEVC_ENCODING(i965) && (entrypoint == VAEntrypointEncSlice)))
> + (HAS_HEVC_ENCODING(i965) && (entrypoint == VAEntrypointEncSlice))) {
> va_status = VA_STATUS_SUCCESS;
> - else
> + } else if (!HAS_HEVC_DECODING(i965) && !HAS_HEVC_ENCODING(i965)) {
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> + } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> + }
>
> break;
>
> case VAProfileHEVCMain10:
> if ((HAS_HEVC10_DECODING(i965) && (entrypoint == VAEntrypointVLD))||
> - (HAS_HEVC10_ENCODING(i965) && (entrypoint == VAEntrypointEncSlice)))
> + (HAS_HEVC10_ENCODING(i965) &&
> + (entrypoint == VAEntrypointEncSlice))) {
> va_status = VA_STATUS_SUCCESS;
> - else
> + } else if (!HAS_HEVC10_DECODING(i965) && !HAS_HEVC10_ENCODING(i965)) {
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> + } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> + }
>
> break;
>
> case VAProfileVP9Profile0:
> case VAProfileVP9Profile2:
> - if ((HAS_VP9_DECODING_PROFILE(i965, profile)) && (entrypoint == VAEntrypointVLD))
> + if ((HAS_VP9_DECODING_PROFILE(i965, profile)) &&
> + (entrypoint == VAEntrypointVLD)) {
> va_status = VA_STATUS_SUCCESS;
> - else if ((HAS_VP9_ENCODING(i965)) && (entrypoint == VAEntrypointEncSlice))
> + } else if ((HAS_VP9_ENCODING(i965)) &&
> + (entrypoint == VAEntrypointEncSlice)) {
> va_status = VA_STATUS_SUCCESS;
> - else if ((profile == VAProfileVP9Profile0) && i965->wrapper_pdrvctx)
> + } else if (profile == VAProfileVP9Profile0 && i965->wrapper_pdrvctx) {
> va_status = VA_STATUS_SUCCESS;
> - else
> + } else if(!HAS_VP9_DECODING_PROFILE(i965, profile) &&
> + !HAS_VP9_ENCODING(i965) && !i965->wrapper_pdrvctx) {
> + va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
> + } else {
> va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
> + }
> +
> break;
>
> default:
> --
> 2.5.5
>
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libva
More information about the Libva
mailing list