video: driver: Add support to advanced bitrate ctrls

Add support to below properties:
- HFI_PROP_BITRATE_BOOST
- HFI_PROP_CONTENT_ADAPTIVE_CODING
- HFI_PROP_MAINTAIN_MIN_QUALITY
- HFI_PROP_VBV_DELAY
- HFI_PROP_TOTAL_PEAK_BITRATE
- HFI_PROP_BITRATE_LAYERx.

Change-Id: I1072f97c7c202c7f4fc38c26e0ab9274ae06fce0
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
This commit is contained in:
Akshata Sahukar
2021-03-23 12:10:12 -07:00
parent 9982dd759c
commit 14efc2a0bc
6 changed files with 395 additions and 74 deletions

View File

@@ -31,6 +31,8 @@ int msm_vidc_adjust_transform_8x8(void *instance, struct v4l2_ctrl *ctrl);
int msm_vidc_adjust_layer_count(void *instance, struct v4l2_ctrl *ctrl);
int msm_vidc_adjust_gop_size(void *instance, struct v4l2_ctrl *ctrl);
int msm_vidc_adjust_b_frame(void *instance, struct v4l2_ctrl *ctrl);
int msm_vidc_adjust_bitrate(void *instance, struct v4l2_ctrl *ctrl);
int msm_vidc_adjust_peak_bitrate(void *instance, struct v4l2_ctrl *ctrl);
int msm_vidc_adjust_hevc_min_qp(void *instance, struct v4l2_ctrl *ctrl);
int msm_vidc_adjust_hevc_max_qp(void *instance, struct v4l2_ctrl *ctrl);
int msm_vidc_adjust_hevc_frame_qp(void *instance, struct v4l2_ctrl *ctrl);
@@ -56,12 +58,18 @@ int msm_vidc_set_layer_count_and_type(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_gop_size(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_bitrate(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_u32(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_u32_enum(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_constant_quality(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_vbr_related_properties(
void *instance, enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_cbr_related_properties(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_use_and_mark_ltr(void *instance,
enum msm_vidc_inst_capability_type cap_id);
int msm_vidc_set_nal_length(void* instance,

View File

@@ -55,6 +55,7 @@
#define MAX_HEVC_ENH_LAYER_SLIDING_WINDOW 5
#define MAX_AVC_ENH_LAYER_SLIDING_WINDOW 3
#define MAX_AVC_ENH_LAYER_HYBRID_HP 5
#define PERCENT_PEAK_BITRATE_INCREASED 10
/* TODO
* #define MAX_SUPERFRAME_COUNT 32
@@ -360,7 +361,9 @@ enum msm_vidc_inst_capability_type {
TIME_DELTA_BASED_RC,
CONTENT_ADAPTIVE_CODING,
BITRATE_BOOST,
MIN_QUALITY,
VBV_DELAY,
PEAK_BITRATE,
MIN_FRAME_QP,
I_FRAME_MIN_QP,
P_FRAME_MIN_QP,
@@ -373,12 +376,6 @@ enum msm_vidc_inst_capability_type {
I_FRAME_QP,
P_FRAME_QP,
B_FRAME_QP,
L0_QP,
L1_QP,
L2_QP,
L3_QP,
L4_QP,
L5_QP,
HIER_LAYER_QP,
LAYER_TYPE,
LAYER_ENABLE,