mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 13:49:24 -04:00
msm: vidc: Update num_ref calc and limit max_layer
Limit max number of temporal layers to 4 if hybrid_hp is not enabled as per POR. Also, inline num_ref calculations with FW. Change-Id: Iad1deaf757a8aa3715b2dce861b1454faeed7a39 Signed-off-by: Priyanka Gujjula <pgujjula@codeaurora.org>
This commit is contained in:
parent
34fa9710d1
commit
5bf834b78e
2 changed files with 10 additions and 4 deletions
|
|
@ -3809,6 +3809,12 @@ int msm_venc_set_hp_max_layer(struct msm_vidc_inst *inst)
|
|||
__func__);
|
||||
return rc;
|
||||
}
|
||||
if (!inst->hybrid_hp && max_layer->val > 4) {
|
||||
update_ctrl(max_layer, 0, inst->sid);
|
||||
s_vpr_h(inst->sid,
|
||||
"%s: Hier-P requested beyond max capability\n", __func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* We send enhancement layer count to FW,
|
||||
|
|
|
|||
|
|
@ -497,13 +497,13 @@ int msm_vidc_get_num_ref_frames(struct msm_vidc_inst *inst)
|
|||
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;
|
||||
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))
|
||||
num_ref = ((1 << (max_layer->val - 1)) - 1) + ltr_count;
|
||||
else if ((codec == V4L2_PIX_FMT_H264) && (max_layer->val < 4))
|
||||
num_ref = (max_layer->val - 1) + ltr_count;
|
||||
else
|
||||
num_ref = ((max_layer->val + 1) / 2) + ltr_count;
|
||||
num_ref = max_layer->val + ltr_count;
|
||||
}
|
||||
|
||||
if (is_hier_b_session(inst)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue