From 168188163ef5b79939ed4e513aff0dc84930896b Mon Sep 17 00:00:00 2001 From: Herman Chen Date: Wed, 10 Jul 2019 17:05:42 +0800 Subject: [PATCH] [h264e_dpb]: Fix memory leak Fix MppEncFrmRefInfo memory leak when pointer info has been changed. Change-Id: Ieccdac1236f5506743b9f5b60382f3ccaff1dc28 Signed-off-by: Herman Chen --- mpp/hal/common/h264/h264e_dpb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mpp/hal/common/h264/h264e_dpb.c b/mpp/hal/common/h264/h264e_dpb.c index 6d3ce0c0..a1bbc110 100644 --- a/mpp/hal/common/h264/h264e_dpb.c +++ b/mpp/hal/common/h264/h264e_dpb.c @@ -307,6 +307,7 @@ MPP_RET h264e_dpb_setup_hier(H264eDpb *dpb, MppEncHierCfg *cfg) // update gop hierarchy reference status and each frame counter RK_S32 i; MppEncFrmRefInfo *info; + MppEncFrmRefInfo *base; memset(dpb->ref_inf, 0, sizeof(dpb->ref_inf)); memset(dpb->ref_sta, 0, sizeof(dpb->ref_sta)); @@ -317,6 +318,7 @@ MPP_RET h264e_dpb_setup_hier(H264eDpb *dpb, MppEncHierCfg *cfg) dpb->max_lt_idx = 0; mpp_enc_get_hier_info(&info, cfg); + base = info; for (i = 0; i < cfg->length + 1; i++, info++) { RK_S32 ref_idx = info->ref_gop_idx; @@ -353,7 +355,7 @@ MPP_RET h264e_dpb_setup_hier(H264eDpb *dpb, MppEncHierCfg *cfg) ref_idx, dpb->ref_sta[ref_idx], dpb->ref_cnt[ref_idx]); } - mpp_enc_put_hier_info(info); + mpp_enc_put_hier_info(base); if (hal_h264e_debug & H264E_DBG_DPB) h264e_dpb_dump_hier(dpb);