Loading drivers/media/platform/msm/vidc/msm_venc.c +28 −5 Original line number Diff line number Diff line Loading @@ -531,7 +531,8 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .type = V4L2_CTRL_TYPE_BITMASK, .minimum = EXTRADATA_NONE, .maximum = EXTRADATA_ADVANCED | EXTRADATA_ENC_INPUT_ROI | EXTRADATA_ENC_INPUT_HDR10PLUS, EXTRADATA_ENC_INPUT_HDR10PLUS | EXTRADATA_ENC_INPUT_CVP, .default_value = EXTRADATA_NONE, .menu_skip_mask = 0, .qmenu = NULL, Loading Loading @@ -938,6 +939,15 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { ), .qmenu = mpeg_video_stream_format, }, { .id = V4L2_CID_MPEG_VIDC_VENC_CVP_DISABLE, .name = "CVP Disable", .type = V4L2_CTRL_TYPE_BOOLEAN, .minimum = V4L2_MPEG_MSM_VIDC_DISABLE, .maximum = V4L2_MPEG_MSM_VIDC_ENABLE, .default_value = V4L2_MPEG_MSM_VIDC_DISABLE, .step = 1, }, }; #define NUM_CTRLS ARRAY_SIZE(msm_venc_ctrls) Loading Loading @@ -1736,6 +1746,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_PRIORITY: case V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_RANDOM: case V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB: case V4L2_CID_MPEG_VIDC_VENC_CVP_DISABLE: dprintk(VIDC_DBG, "Control set: ID : %x Val : %d\n", ctrl->id, ctrl->val); break; Loading Loading @@ -3223,6 +3234,7 @@ int msm_venc_set_extradata(struct msm_vidc_inst *inst) { int rc = 0; struct v4l2_ctrl *ctrl; struct v4l2_ctrl *cvp_ctrl; ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA); if (ctrl->val == EXTRADATA_NONE) { Loading @@ -3240,10 +3252,6 @@ int msm_venc_set_extradata(struct msm_vidc_inst *inst) } } /* Always enable default extradata */ rc = msm_comm_set_extradata(inst, HFI_PROPERTY_PARAM_VENC_CVP_METADATA_EXTRADATA, 0x1); if (ctrl->val & EXTRADATA_ADVANCED) // Enable Advanced Extradata - LTR Info msm_comm_set_extradata(inst, Loading @@ -3263,6 +3271,21 @@ int msm_venc_set_extradata(struct msm_vidc_inst *inst) } } cvp_ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VENC_CVP_DISABLE); if (cvp_ctrl->val == V4L2_MPEG_MSM_VIDC_ENABLE) { if (ctrl->val & EXTRADATA_ENC_INPUT_CVP) { dprintk(VIDC_ERR, "%s: invalid params\n", __func__); return -EINVAL; } rc = msm_comm_set_extradata(inst, HFI_PROPERTY_PARAM_VENC_CVP_METADATA_EXTRADATA, 0x0); } else { rc = msm_comm_set_extradata(inst, HFI_PROPERTY_PARAM_VENC_CVP_METADATA_EXTRADATA, 0x1); } return rc; } Loading include/uapi/linux/v4l2-controls.h +4 −0 Original line number Diff line number Diff line Loading @@ -821,6 +821,7 @@ enum v4l2_mpeg_vidc_extradata { EXTRADATA_ADVANCED = 2, EXTRADATA_ENC_INPUT_ROI = 4, EXTRADATA_ENC_INPUT_HDR10PLUS = 8, EXTRADATA_ENC_INPUT_CVP = 16, }; enum v4l2_mpeg_cvp_extradata { V4L2_MPEG_CVP_EXTRADATA_NONE = 0, Loading Loading @@ -973,6 +974,9 @@ enum v4l2_mpeg_vidc_video_hevc_max_hier_coding_layer { V4L2_MPEG_VIDC_VIDEO_HEVC_MAX_HIER_CODING_LAYER_6 = 6, }; #define V4L2_CID_MPEG_VIDC_VENC_CVP_DISABLE \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 121) /* Camera class control IDs */ #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) Loading Loading
drivers/media/platform/msm/vidc/msm_venc.c +28 −5 Original line number Diff line number Diff line Loading @@ -531,7 +531,8 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .type = V4L2_CTRL_TYPE_BITMASK, .minimum = EXTRADATA_NONE, .maximum = EXTRADATA_ADVANCED | EXTRADATA_ENC_INPUT_ROI | EXTRADATA_ENC_INPUT_HDR10PLUS, EXTRADATA_ENC_INPUT_HDR10PLUS | EXTRADATA_ENC_INPUT_CVP, .default_value = EXTRADATA_NONE, .menu_skip_mask = 0, .qmenu = NULL, Loading Loading @@ -938,6 +939,15 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { ), .qmenu = mpeg_video_stream_format, }, { .id = V4L2_CID_MPEG_VIDC_VENC_CVP_DISABLE, .name = "CVP Disable", .type = V4L2_CTRL_TYPE_BOOLEAN, .minimum = V4L2_MPEG_MSM_VIDC_DISABLE, .maximum = V4L2_MPEG_MSM_VIDC_ENABLE, .default_value = V4L2_MPEG_MSM_VIDC_DISABLE, .step = 1, }, }; #define NUM_CTRLS ARRAY_SIZE(msm_venc_ctrls) Loading Loading @@ -1736,6 +1746,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_PRIORITY: case V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_RANDOM: case V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB: case V4L2_CID_MPEG_VIDC_VENC_CVP_DISABLE: dprintk(VIDC_DBG, "Control set: ID : %x Val : %d\n", ctrl->id, ctrl->val); break; Loading Loading @@ -3223,6 +3234,7 @@ int msm_venc_set_extradata(struct msm_vidc_inst *inst) { int rc = 0; struct v4l2_ctrl *ctrl; struct v4l2_ctrl *cvp_ctrl; ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA); if (ctrl->val == EXTRADATA_NONE) { Loading @@ -3240,10 +3252,6 @@ int msm_venc_set_extradata(struct msm_vidc_inst *inst) } } /* Always enable default extradata */ rc = msm_comm_set_extradata(inst, HFI_PROPERTY_PARAM_VENC_CVP_METADATA_EXTRADATA, 0x1); if (ctrl->val & EXTRADATA_ADVANCED) // Enable Advanced Extradata - LTR Info msm_comm_set_extradata(inst, Loading @@ -3263,6 +3271,21 @@ int msm_venc_set_extradata(struct msm_vidc_inst *inst) } } cvp_ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VENC_CVP_DISABLE); if (cvp_ctrl->val == V4L2_MPEG_MSM_VIDC_ENABLE) { if (ctrl->val & EXTRADATA_ENC_INPUT_CVP) { dprintk(VIDC_ERR, "%s: invalid params\n", __func__); return -EINVAL; } rc = msm_comm_set_extradata(inst, HFI_PROPERTY_PARAM_VENC_CVP_METADATA_EXTRADATA, 0x0); } else { rc = msm_comm_set_extradata(inst, HFI_PROPERTY_PARAM_VENC_CVP_METADATA_EXTRADATA, 0x1); } return rc; } Loading
include/uapi/linux/v4l2-controls.h +4 −0 Original line number Diff line number Diff line Loading @@ -821,6 +821,7 @@ enum v4l2_mpeg_vidc_extradata { EXTRADATA_ADVANCED = 2, EXTRADATA_ENC_INPUT_ROI = 4, EXTRADATA_ENC_INPUT_HDR10PLUS = 8, EXTRADATA_ENC_INPUT_CVP = 16, }; enum v4l2_mpeg_cvp_extradata { V4L2_MPEG_CVP_EXTRADATA_NONE = 0, Loading Loading @@ -973,6 +974,9 @@ enum v4l2_mpeg_vidc_video_hevc_max_hier_coding_layer { V4L2_MPEG_VIDC_VIDEO_HEVC_MAX_HIER_CODING_LAYER_6 = 6, }; #define V4L2_CID_MPEG_VIDC_VENC_CVP_DISABLE \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 121) /* Camera class control IDs */ #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) Loading