diff --git a/msm/vidc/msm_vidc_buffer_calculations.c b/msm/vidc/msm_vidc_buffer_calculations.c index ed1d23c84e20..973eff400d71 100644 --- a/msm/vidc/msm_vidc_buffer_calculations.c +++ b/msm/vidc/msm_vidc_buffer_calculations.c @@ -493,11 +493,11 @@ int msm_vidc_get_num_ref_frames(struct msm_vidc_inst *inst) max_layer = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_HEVC_MAX_HIER_CODING_LAYER); if (frame_t->val == V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P && - max_layer->val > 0) { + max_layer->val > 1) { codec = get_v4l2_codec(inst); /* LTR and B - frame not supported with hybrid HP */ if (inst->hybrid_hp) - num_ref = max_layer->val >> 1; + num_ref = (max_layer->val + 1) >> 1; else if (codec == V4L2_PIX_FMT_HEVC) num_ref = ((max_layer->val + 1) / 2) + ltr_count; else if ((codec == V4L2_PIX_FMT_H264) && (max_layer->val < 4))