summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2017-12-26 16:25:54 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2018-01-29 12:40:02 +0800
commit277c90798e9865e794743bcffd2ee9cd7b425c3d (patch)
tree818cc37f0d16cd6a8cba962d7c3d389fb2d246e5
parent05eba9435c821f8fc1840593b923d3b43fade550 (diff)
downloadlibva-intel-driver-277c90798e9865e794743bcffd2ee9cd7b425c3d.tar.gz
Add a flag for VP9 BRC mode in struct hw_codec_info
Use this new flag to check the supported BRC mode Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
-rw-r--r--src/i965_device_info.c6
-rw-r--r--src/i965_drv_video.c4
-rw-r--r--src/i965_drv_video.h1
3 files changed, 10 insertions, 1 deletions
diff --git a/src/i965_device_info.c b/src/i965_device_info.c
index 4676a840..7db2d567 100644
--- a/src/i965_device_info.c
+++ b/src/i965_device_info.c
@@ -502,6 +502,8 @@ static struct hw_codec_info kbl_hw_codec_info = {
.lp_h264_brc_mode = VA_RC_CQP,
.h264_brc_mode = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_MB,
+ .vp9_brc_mode = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR,
+
.num_filters = 5,
.filters = {
{ VAProcFilterNoiseReduction, I965_RING_VEBOX },
@@ -567,6 +569,8 @@ static struct hw_codec_info glk_hw_codec_info = {
.lp_h264_brc_mode = VA_RC_CQP,
.h264_brc_mode = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_MB,
+ .vp9_brc_mode = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR,
+
.num_filters = 5,
.filters = {
{ VAProcFilterNoiseReduction, I965_RING_VEBOX },
@@ -631,6 +635,8 @@ static struct hw_codec_info cfl_hw_codec_info = {
.lp_h264_brc_mode = VA_RC_CQP,
.h264_brc_mode = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR | VA_RC_MB,
+ .vp9_brc_mode = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR,
+
.num_filters = 5,
.filters = {
{ VAProcFilterNoiseReduction, I965_RING_VEBOX },
diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
index 16ce1e98..748735ab 100644
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -968,10 +968,12 @@ i965_get_rc_attributes(VADriverContextP ctx, VAProfile profile, VAEntrypoint ent
rc_attribs |= VA_RC_CBR;
if (profile == VAProfileVP8Version0_3 ||
- profile == VAProfileVP9Profile0 ||
profile == VAProfileHEVCMain)
rc_attribs |= VA_RC_VBR;
+ if (profile == VAProfileVP9Profile0)
+ rc_attribs = i965->codec_info->vp9_brc_mode;
+
if (profile == VAProfileH264ConstrainedBaseline ||
profile == VAProfileH264Main ||
profile == VAProfileH264High ||
diff --git a/src/i965_drv_video.h b/src/i965_drv_video.h
index 6e7139f4..56dcd7fa 100644
--- a/src/i965_drv_video.h
+++ b/src/i965_drv_video.h
@@ -502,6 +502,7 @@ struct hw_codec_info {
unsigned int lp_h264_brc_mode;
unsigned int h264_brc_mode;
+ unsigned int vp9_brc_mode;
unsigned int num_filters;
struct i965_filter filters[VAProcFilterCount];