[Libva] [PATCH][libva-intel-driver] i965_driver_info: add vp9_enc_profiles
Daniel Charles
daniel.charles at intel.com
Thu Nov 17 01:20:02 UTC 2016
Not all profiles for vp9 are supported by the encoder and user needs
to know about it
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 100644
--- 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;
--
2.5.5
More information about the Libva
mailing list