libhevcenc: Release async control command buffer

Async command control buffer is not being released after use.
This is corrected.
Also ensured dynamic bitrate doesn't go below min supported bitrate

Test: hevcenc -c vid_enc_cfg.txt
Bug: 147574800
Change-Id: I0e31092bb9c51ce5d22798aab6004d1654ff985e
This commit is contained in:
Akshata Jadhav 2020-01-16 18:59:44 +05:30 committed by Harish Mahendrakar
parent 7f8d32aebf
commit 4a0581dafa
3 changed files with 8 additions and 1 deletions

View file

@ -467,6 +467,7 @@
#define BELOW_REF_DEVIATION (0.0)
#define ABOVE_REF_DEVIATION (220.0)
#define MIN_BITRATE 4000
#define MIN_QP_MOD_OFFSET -10
#define MAX_QP_MOD_OFFSET 3
#define TOT_QP_MOD_OFFSET (MAX_QP_MOD_OFFSET - MIN_QP_MOD_OFFSET + 1)

View file

@ -2076,6 +2076,10 @@ ihevce_lap_enc_buf_t *ihevce_lap_process(void *pv_interface_ctxt, ihevce_lap_enc
ps_lap_interface->ihevce_dyn_bitrate_cb(
(void *)ps_hle_ctxt, (void *)&as_dyn_br[bitrt_ctr]);
}
/* release async ctrl buffer*/
ihevce_q_rel_buf(
ps_hle_ctxt->apv_enc_hdl[0], IHEVCE_INPUT_ASYNCH_CTRL_Q, ps_ctrl_buf->i4_buf_id);
}
{

View file

@ -2055,6 +2055,8 @@ IHEVCE_PLUGIN_STATUS_T
ps_dyn_br->i4_tgt_res_id = 0;
ps_dyn_br->i4_new_tgt_bitrate =
MIN(ps_inp->i4_curr_bitrate, max_bitrate);
ps_dyn_br->i4_new_tgt_bitrate =
MAX(ps_dyn_br->i4_new_tgt_bitrate, MIN_BITRATE);
ps_dyn_br->i4_new_peak_bitrate =
MIN((ps_dyn_br->i4_new_tgt_bitrate << 1), max_bitrate);
pi4_cmd_buf += 2;
@ -2067,7 +2069,7 @@ IHEVCE_PLUGIN_STATUS_T
/* ---------- set the buffer as produced ---------- */
ihevce_q_set_inp_ctrl_buff_prod(ps_interface_ctxt, buf_id);
ps_ctxt->ai4_old_bitrate[0][0] = ps_inp->i4_curr_bitrate;
ps_ctxt->ai4_old_bitrate[0][0] = ps_dyn_br->i4_new_tgt_bitrate;
}
}