[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