Merge "video: driver: Add support for CQ bitrate mode"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
7ded262fc0
@@ -47,6 +47,8 @@ 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_use_and_mark_ltr(void *instance,
|
||||
enum msm_vidc_inst_capability_type cap_id);
|
||||
int msm_vidc_set_s32(void *instance,
|
||||
|
@@ -276,6 +276,7 @@ enum msm_vidc_inst_capability_type {
|
||||
LOSSLESS,
|
||||
FRAME_SKIP_MODE,
|
||||
FRAME_RC_ENABLE,
|
||||
CONSTANT_QUALITY,
|
||||
GOP_SIZE,
|
||||
GOP_CLOSURE,
|
||||
BLUR_TYPES,
|
||||
|
@@ -818,11 +818,9 @@ int msm_vidc_adjust_bitrate_mode(void *instance, struct v4l2_ctrl *ctrl)
|
||||
hfi_value = HFI_RC_CBR_VFR;
|
||||
else
|
||||
hfi_value = HFI_RC_CBR_CFR;
|
||||
}/* TODO: CQ mode
|
||||
else if (bitrate_mode == CQ) {
|
||||
} else if (bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_CQ) {
|
||||
hfi_value = HFI_RC_CQ;
|
||||
}
|
||||
*/
|
||||
|
||||
update:
|
||||
inst->hfi_rc_type = hfi_value;
|
||||
@@ -1241,6 +1239,34 @@ int msm_vidc_set_deblock_mode(void *instance,
|
||||
return rc;
|
||||
}
|
||||
|
||||
int msm_vidc_set_constant_quality(void *instance,
|
||||
enum msm_vidc_inst_capability_type cap_id)
|
||||
{
|
||||
int rc = 0;
|
||||
struct msm_vidc_inst *inst = (struct msm_vidc_inst *)instance;
|
||||
u32 hfi_value = 0;
|
||||
s32 rc_type = -1;
|
||||
|
||||
if (!inst || !inst->capabilities) {
|
||||
d_vpr_e("%s: invalid params\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (msm_vidc_get_parent_value(inst, cap_id,
|
||||
BITRATE_MODE, &rc_type, __func__))
|
||||
return -EINVAL;
|
||||
|
||||
if (rc_type != HFI_RC_CQ)
|
||||
return 0;
|
||||
|
||||
hfi_value = inst->capabilities->cap[cap_id].value;
|
||||
|
||||
rc = msm_vidc_packetize_control(inst, cap_id, HFI_PAYLOAD_U32,
|
||||
&hfi_value, sizeof(u32), __func__);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
int msm_vidc_set_use_and_mark_ltr(void *instance,
|
||||
enum msm_vidc_inst_capability_type cap_id)
|
||||
{
|
||||
|
Reference in New Issue
Block a user