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 <[email protected]> Thanks
Signed-off-by: Daniel Charles<[email protected]> --- 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;
_______________________________________________ Libva mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libva
