media: venus: dynamic handling of bitrate
Subsystems (4)
PATCH v2 1/1 media: venus: dynamic handling of bitrate
Any request for a change in bitrate after both planes are streamed on is handled by setting the target bitrate property to hardware.
Signed-off-by Malathi Gottam <[email protected]>
--- drivers/media/platform/qcom/venus/venc_ctrls.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
drivers/media/platform/qcom/venus/venc_ctrls.c +15 -0
@@ -79,7 +79,9 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl) {struct venus_inst *inst =ctrl_to_inst (ctrl);struct venc_controls *ctr = &inst->controls.enc; +struct hfi_bitrate brate;u32 bframes; +u32 ptype;int ret;switch (ctrl->id) {
@@ -88,6 +90,19 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl)break ;case V4L2_CID_MPEG_VIDEO_BITRATE : ctr->bitrate = ctrl->val; +mutex_lock (&inst->lock); +if (inst->streamon_out && inst->streamon_cap) { + ptype =HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE ; + brate.bitrate = ctr->bitrate; + brate.layer_id =0 ; + + ret =hfi_session_set_property (inst, ptype, &brate); +if (ret) { +mutex_unlock (&inst->lock); +return ret; + } + } +mutex_unlock (&inst->lock);break ;case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK : ctr->bitrate_peak = ctrl->val;
Signature · 1 line
1.9.1
Hi Malathi,
Thanks for the patch!
Quoted 8 lines · Malathi Gottam
Any request for a change in bitrate after both planes are streamed on is handled by setting the target bitrate property to hardware.
Signed-off-by Malathi Gottam <[email protected]>--- drivers/media/platform/qcom/venus/venc_ctrls.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
Quoted 36 lines
drivers/media/platform/qcom/venus/venc_ctrls.c +15
-0@@ -79,7 +79,9 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl) {struct venus_inst *inst =ctrl_to_inst (ctrl);struct venc_controls *ctr = &inst->controls.enc; +struct hfi_bitrate brate;u32 bframes; +u32 ptype;int ret;switch (ctrl->id) {@@ -88,6 +90,19 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl)break ;case V4L2_CID_MPEG_VIDEO_BITRATE : ctr->bitrate = ctrl->val; +mutex_lock (&inst->lock); +if (inst->streamon_out && inst->streamon_cap) { + ptype =HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE ; + brate.bitrate = ctr->bitrate; + brate.layer_id =0 ; + + ret =hfi_session_set_property (inst, ptype, &brate); +if (ret) { +mutex_unlock (&inst->lock); +return ret; + } + } +mutex_unlock (&inst->lock);break ;case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK : ctr->bitrate_peak = ctrl->val;
Signature · 2 lines
regards, Stan