diff --git a/driver/platform/waipio/src/msm_vidc_waipio.c b/driver/platform/waipio/src/msm_vidc_waipio.c index 9787afb38c..e9375eeca2 100644 --- a/driver/platform/waipio/src/msm_vidc_waipio.c +++ b/driver/platform/waipio/src/msm_vidc_waipio.c @@ -670,10 +670,10 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { HFI_PROP_QP_PACKED, CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, - /* TODO: Allow only HP until fw fatal error for HB type is resolved */ {LAYER_TYPE, ENC, HEVC, + V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B, V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P, - V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P, + BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B) | BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P), V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P, V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE, @@ -681,8 +681,9 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU}, {LAYER_TYPE, ENC, H264, + V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B, V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P, - V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P, + BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B) | BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P), V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P, V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE, diff --git a/driver/vidc/src/msm_vidc_control.c b/driver/vidc/src/msm_vidc_control.c index 22617ef04e..20f3d8ab73 100644 --- a/driver/vidc/src/msm_vidc_control.c +++ b/driver/vidc/src/msm_vidc_control.c @@ -1389,6 +1389,10 @@ int msm_vidc_adjust_hevc_min_qp(void *instance, struct v4l2_ctrl *ctrl) } capability = inst->capabilities; + if (ctrl) + msm_vidc_update_cap_value(inst, MIN_FRAME_QP, + ctrl->val, __func__); + rc = msm_vidc_adjust_hevc_qp(inst, MIN_FRAME_QP); return rc; @@ -1406,6 +1410,10 @@ int msm_vidc_adjust_hevc_max_qp(void *instance, struct v4l2_ctrl *ctrl) } capability = inst->capabilities; + if (ctrl) + msm_vidc_update_cap_value(inst, MAX_FRAME_QP, + ctrl->val, __func__); + rc = msm_vidc_adjust_hevc_qp(inst, MAX_FRAME_QP); return rc; @@ -1423,6 +1431,10 @@ int msm_vidc_adjust_hevc_frame_qp(void *instance, struct v4l2_ctrl *ctrl) } capability = inst->capabilities; + if (ctrl) + msm_vidc_update_cap_value(inst, I_FRAME_QP, + ctrl->val, __func__); + rc = msm_vidc_adjust_hevc_qp(inst, I_FRAME_QP); return rc; diff --git a/driver/vidc/src/msm_vidc_driver.c b/driver/vidc/src/msm_vidc_driver.c index cc1f35a375..2862f7cce6 100644 --- a/driver/vidc/src/msm_vidc_driver.c +++ b/driver/vidc/src/msm_vidc_driver.c @@ -1097,6 +1097,7 @@ bool msm_vidc_allow_s_ctrl(struct msm_vidc_inst *inst, u32 id) case V4L2_CID_MPEG_VIDC_VIDEO_BLUR_RESOLUTION: case V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY: case V4L2_CID_MPEG_VIDC_ENC_INPUT_COMPRESSION_RATIO: + case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK: allow = true; break; default: