[mpp_enc]: Clear rc info input before reenc

Before re-encode the bit_real and the quality_real should be be clear.

Change-Id: I724c93fa49feaef7194a0a10c6278527aa51598a
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
This commit is contained in:
sayon.chen
2022-08-15 10:57:32 +08:00
committed by Herman Chen
parent 277ddfdcab
commit 2fb572d291

View File

@@ -1543,6 +1543,22 @@ TASK_DONE:
return ret;
}
static void mpp_enc_clr_rc_cb_info(EncRcTask *rc_task)
{
EncRcTaskInfo *hal_rc = (EncRcTaskInfo *) &rc_task->info;
EncRcTaskInfo bak = rc_task->info;
memset(hal_rc, 0, sizeof(rc_task->info));
hal_rc->frame_type = bak.frame_type;
hal_rc->bit_target = bak.bit_target;
hal_rc->bit_max = bak.bit_max;
hal_rc->bit_min = bak.bit_min;
hal_rc->quality_target = bak.quality_target;
hal_rc->quality_max = bak.quality_max;
hal_rc->quality_min = bak.quality_min;
}
static MPP_RET mpp_enc_reenc_simple(Mpp *mpp, EncAsyncTaskInfo *task)
{
MppEncImpl *enc = (MppEncImpl *)mpp->mEnc;
@@ -1554,6 +1570,8 @@ static MPP_RET mpp_enc_reenc_simple(Mpp *mpp, EncAsyncTaskInfo *task)
enc_dbg_func("enter\n");
mpp_enc_clr_rc_cb_info(rc_task);
enc_dbg_detail("task %d enc proc hal\n", frm->seq_idx);
ENC_RUN_FUNC2(enc_impl_proc_hal, enc->impl, hal_task, mpp, ret);