From 2fb572d2914198e24bfc189f5e1516db88892cc8 Mon Sep 17 00:00:00 2001 From: "sayon.chen" Date: Mon, 15 Aug 2022 10:57:32 +0800 Subject: [PATCH] [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 --- mpp/codec/mpp_enc_impl.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mpp/codec/mpp_enc_impl.cpp b/mpp/codec/mpp_enc_impl.cpp index 53e903fa..2a5c8e56 100644 --- a/mpp/codec/mpp_enc_impl.cpp +++ b/mpp/codec/mpp_enc_impl.cpp @@ -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);