diff --git a/mpp/hal/rkdec/h264d/hal_h264d_vdpu34x.c b/mpp/hal/rkdec/h264d/hal_h264d_vdpu34x.c index b96bbbc4..32a4339f 100644 --- a/mpp/hal/rkdec/h264d/hal_h264d_vdpu34x.c +++ b/mpp/hal/rkdec/h264d/hal_h264d_vdpu34x.c @@ -736,8 +736,12 @@ MPP_RET vdpu34x_h264d_deinit(void *hal) MPP_FREE(reg_ctx->reg_buf[i].regs); loop = p_hal->fast_mode ? MPP_ARRAY_ELEMS(reg_ctx->rcb_buf) : 1; - for (i = 0; i < loop; i++) - mpp_buffer_put(reg_ctx->rcb_buf[i]); + for (i = 0; i < loop; i++) { + if (reg_ctx->rcb_buf[i]) { + mpp_buffer_put(reg_ctx->rcb_buf[i]); + reg_ctx->rcb_buf[i] = NULL; + } + } if (p_hal->cmv_bufs) { hal_bufs_deinit(p_hal->cmv_bufs);