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-boun...@lists.freedesktop.org] On Behalf Of Daniel 
> Charles
> Sent: Monday, October 17, 2016 5:45 PM
> To: libva@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.char...@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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libva
_______________________________________________
Libva mailing list
Libva@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to