Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: venus: venc: Add support for intra-refresh type

Add support for intra-refresh type v4l2 control.

Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>

authored by

Dikshita Agarwal and committed by
Mauro Carvalho Chehab
fc503c8a fcbc4acf

+14 -1
+1
drivers/media/platform/qcom/venus/core.h
··· 261 261 262 262 u32 header_mode; 263 263 bool aud_enable; 264 + u32 intra_refresh_type; 264 265 u32 intra_refresh_period; 265 266 266 267 struct {
+5 -1
drivers/media/platform/qcom/venus/venc.c
··· 893 893 mbs++; 894 894 mbs /= ctr->intra_refresh_period; 895 895 896 - intra_refresh.mode = HFI_INTRA_REFRESH_RANDOM; 897 896 intra_refresh.cir_mbs = mbs; 897 + if (ctr->intra_refresh_type == 898 + V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC) 899 + intra_refresh.mode = HFI_INTRA_REFRESH_CYCLIC; 900 + else 901 + intra_refresh.mode = HFI_INTRA_REFRESH_RANDOM; 898 902 } 899 903 900 904 ptype = HFI_PROPERTY_PARAM_VENC_INTRA_REFRESH;
+8
drivers/media/platform/qcom/venus/venc_ctrls.c
··· 316 316 case V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY: 317 317 ctr->mastering = *ctrl->p_new.p_hdr10_mastering; 318 318 break; 319 + case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE: 320 + ctr->intra_refresh_type = ctrl->val; 321 + break; 319 322 case V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD: 320 323 ctr->intra_refresh_period = ctrl->val; 321 324 break; ··· 584 581 v4l2_ctrl_new_std_compound(&inst->ctrl_handler, &venc_ctrl_ops, 585 582 V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY, 586 583 v4l2_ctrl_ptr_create(NULL)); 584 + 585 + v4l2_ctrl_new_std_menu(&inst->ctrl_handler, &venc_ctrl_ops, 586 + V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE, 587 + V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC, 588 + 0, V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM); 587 589 588 590 v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops, 589 591 V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD, 0,