[Libva] [PATCH][libva-intel-driver] i965_driver_info: add vp9_enc_profiles

Zhao Yakui yakui.zhao at intel.com
Thu Nov 17 01:49:51 UTC 2016


On 11/17/2016 09:20 AM, Daniel Charles wrote:
> Not all profiles for vp9 are supported by the encoder and user needs
> to know about it
>

When user tries to call the 
vaQueryConfigProfiles/vaQueryConfigEntryPoints, it will export the 
supported profile by vp9 encoding.

Of course this patch looks good to me as it adds more restrict check for 
VP9 encoding. This will help to check the wrong parameter passed by the 
user.

Add: Reviewed-by: Zhao Yakui <yakui.zhao at intel.com>

Thanks

> Signed-off-by: Daniel Charles<daniel.charles at intel.com>
> ---
>   src/i965_device_info.c | 1 +
>   src/i965_drv_video.c   | 2 +-
>   src/i965_drv_video.h   | 5 +++++
>   3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/src/i965_device_info.c b/src/i965_device_info.c
> index 4db6c51..13ac49c 100644help to avoid
> --- a/src/i965_device_info.c
> +++ b/src/i965_device_info.c
> @@ -447,6 +447,7 @@ static struct hw_codec_info kbl_hw_codec_info = {
>                                 VA_PROFILE_MASK(H264MultiviewHigh)),
>       .vp9_dec_profiles = VP9_PROFILE_MASK(0) |
>                           VP9_PROFILE_MASK(2),
> +    .vp9_enc_profiles = VP9_PROFILE_MASK(0),
>
>       .h264_dec_chroma_formats = EXTRA_H264_DEC_CHROMA_FORMATS,
>       .jpeg_dec_chroma_formats = EXTRA_JPEG_DEC_CHROMA_FORMATS,
> diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
> index e17c295..df4a0c6 100644
> --- a/src/i965_drv_video.c
> +++ b/src/i965_drv_video.c
> @@ -823,7 +823,7 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
>           if ((HAS_VP9_DECODING_PROFILE(i965, profile))&&
>               (entrypoint == VAEntrypointVLD)) {
>               va_status = VA_STATUS_SUCCESS;
> -        } else if ((HAS_VP9_ENCODING(i965))&&
> +        } else if ((HAS_VP9_ENCODING_PROFILE(i965, profile))&&
>                      (entrypoint == VAEntrypointEncSlice)) {
>               va_status = VA_STATUS_SUCCESS;
>           } else if (profile == VAProfileVP9Profile0&&  i965->wrapper_pdrvctx) {
> diff --git a/src/i965_drv_video.h b/src/i965_drv_video.h
> index 5ef6d27..d928d30 100644
> --- a/src/i965_drv_video.h
> +++ b/src/i965_drv_video.h
> @@ -149,6 +149,10 @@
>   #define HAS_VP9_ENCODING(ctx)          ((ctx)->codec_info->has_vp9_encoding&&  \
>                                            (ctx)->intel.has_bsd)
>
> +#define HAS_VP9_ENCODING_PROFILE(ctx, profile)                     \
> +    (HAS_VP9_ENCODING(ctx)&&                                       \
> +     ((ctx)->codec_info->vp9_enc_profiles&  (1U<<  (profile - VAProfileVP9Profile0))))
> +
>   struct i965_surface
>   {
>       struct object_base *base;
> @@ -452,6 +456,7 @@ struct hw_codec_info
>
>       unsigned int h264_mvc_dec_profiles;
>       unsigned int vp9_dec_profiles;
> +    unsigned int vp9_enc_profiles;
>
>       unsigned int h264_dec_chroma_formats;
>       unsigned int jpeg_dec_chroma_formats;



More information about the Libva mailing list