Merge "video: driver: Use max bitrate depending upon session"

This commit is contained in:
qctecmdr
2022-06-01 21:40:44 -07:00
committed by Gerrit - the friendly Code Review server
6 changed files with 106 additions and 13 deletions

View File

@@ -1110,8 +1110,9 @@ int msm_vidc_decide_quality_mode_iris3(struct msm_vidc_inst* inst)
if (!is_encode_session(inst))
return 0;
/* image session or lossless encode always runs at quality mode */
if (is_image_session(inst) || capability->cap[LOSSLESS].value) {
/* image or lossless or all intra runs at quality mode */
if (is_image_session(inst) || capability->cap[LOSSLESS].value ||
capability->cap[ALL_INTRA].value) {
mode = MSM_VIDC_MAX_QUALITY_MODE;
goto decision_done;
}
@@ -1154,6 +1155,7 @@ int msm_vidc_adjust_bitrate_boost_iris3(void* instance, struct v4l2_ctrl *ctrl)
s32 rc_type = -1;
u32 width, height, frame_rate;
struct v4l2_format *f;
u32 max_bitrate = 0, bitrate = 0;
if (!inst || !inst->capabilities) {
d_vpr_e("%s: invalid params\n", __func__);
@@ -1201,6 +1203,16 @@ int msm_vidc_adjust_bitrate_boost_iris3(void* instance, struct v4l2_ctrl *ctrl)
adjusted_value = 0;
}
max_bitrate = msm_vidc_get_max_bitrate(inst);
bitrate = inst->capabilities->cap[BIT_RATE].value;
if (adjusted_value) {
if ((bitrate + bitrate / (100 / adjusted_value)) > max_bitrate) {
i_vpr_h(inst,
"%s: bitrate %d is beyond max bitrate %d, remove bitrate boost\n",
__func__, max_bitrate, bitrate);
adjusted_value = 0;
}
}
adjust:
msm_vidc_update_cap_value(inst, BITRATE_BOOST, adjusted_value, __func__);