Loading msm/vidc/msm_venc.c +26 −4 Original line number Diff line number Diff line Loading @@ -3730,6 +3730,7 @@ int msm_venc_set_nal_stream_format(struct msm_vidc_inst *inst) int msm_venc_set_ltr_mode(struct msm_vidc_inst *inst) { int rc = 0; bool is_ltr = true; struct hfi_device *hdev; struct v4l2_ctrl *ctrl; struct hfi_ltr_mode ltr; Loading @@ -3742,13 +3743,17 @@ int msm_venc_set_ltr_mode(struct msm_vidc_inst *inst) hdev = inst->core->device; codec = get_v4l2_codec(inst); if (!(codec == V4L2_PIX_FMT_HEVC || codec == V4L2_PIX_FMT_H264)) return 0; if (!(codec == V4L2_PIX_FMT_HEVC || codec == V4L2_PIX_FMT_H264)) { is_ltr = false; goto disable_ltr; } if (!(inst->rc_type == RATE_CONTROL_OFF || inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR || inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR_VFR)) return 0; inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR_VFR)) { is_ltr = false; goto disable_ltr; } ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT); if (!ctrl->val) Loading @@ -3769,6 +3774,15 @@ int msm_venc_set_ltr_mode(struct msm_vidc_inst *inst) if (rc) dprintk(VIDC_ERR, "%s: set property failed\n", __func__); disable_ltr: /* * Forcefully setting LTR count to zero when * client sets unsupported codec/rate control. */ if (!is_ltr) { ctrl->val = 0; dprintk(VIDC_HIGH, "LTR is forcefully disabled!\n"); } return rc; } Loading @@ -3786,6 +3800,10 @@ int msm_venc_set_ltr_useframe(struct msm_vidc_inst *inst) } hdev = inst->core->device; ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT); if (!ctrl->val) return 0; codec = get_v4l2_codec(inst); if (!(codec == V4L2_PIX_FMT_HEVC || codec == V4L2_PIX_FMT_H264)) return 0; Loading Loading @@ -3818,6 +3836,10 @@ int msm_venc_set_ltr_markframe(struct msm_vidc_inst *inst) } hdev = inst->core->device; ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT); if (!ctrl->val) return 0; codec = get_v4l2_codec(inst); if (!(codec == V4L2_PIX_FMT_HEVC || codec == V4L2_PIX_FMT_H264)) return 0; Loading Loading
msm/vidc/msm_venc.c +26 −4 Original line number Diff line number Diff line Loading @@ -3730,6 +3730,7 @@ int msm_venc_set_nal_stream_format(struct msm_vidc_inst *inst) int msm_venc_set_ltr_mode(struct msm_vidc_inst *inst) { int rc = 0; bool is_ltr = true; struct hfi_device *hdev; struct v4l2_ctrl *ctrl; struct hfi_ltr_mode ltr; Loading @@ -3742,13 +3743,17 @@ int msm_venc_set_ltr_mode(struct msm_vidc_inst *inst) hdev = inst->core->device; codec = get_v4l2_codec(inst); if (!(codec == V4L2_PIX_FMT_HEVC || codec == V4L2_PIX_FMT_H264)) return 0; if (!(codec == V4L2_PIX_FMT_HEVC || codec == V4L2_PIX_FMT_H264)) { is_ltr = false; goto disable_ltr; } if (!(inst->rc_type == RATE_CONTROL_OFF || inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR || inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR_VFR)) return 0; inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CBR_VFR)) { is_ltr = false; goto disable_ltr; } ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT); if (!ctrl->val) Loading @@ -3769,6 +3774,15 @@ int msm_venc_set_ltr_mode(struct msm_vidc_inst *inst) if (rc) dprintk(VIDC_ERR, "%s: set property failed\n", __func__); disable_ltr: /* * Forcefully setting LTR count to zero when * client sets unsupported codec/rate control. */ if (!is_ltr) { ctrl->val = 0; dprintk(VIDC_HIGH, "LTR is forcefully disabled!\n"); } return rc; } Loading @@ -3786,6 +3800,10 @@ int msm_venc_set_ltr_useframe(struct msm_vidc_inst *inst) } hdev = inst->core->device; ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT); if (!ctrl->val) return 0; codec = get_v4l2_codec(inst); if (!(codec == V4L2_PIX_FMT_HEVC || codec == V4L2_PIX_FMT_H264)) return 0; Loading Loading @@ -3818,6 +3836,10 @@ int msm_venc_set_ltr_markframe(struct msm_vidc_inst *inst) } hdev = inst->core->device; ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_LTRCOUNT); if (!ctrl->val) return 0; codec = get_v4l2_codec(inst); if (!(codec == V4L2_PIX_FMT_HEVC || codec == V4L2_PIX_FMT_H264)) return 0; Loading