From 7f6ea0ad8ccd32e4f362f27828e35bc3a7200585 Mon Sep 17 00:00:00 2001 From: Yanjun Liao Date: Thu, 20 Jun 2024 19:55:02 +0800 Subject: [PATCH] fix[enc_roi]: Use cache buf to reduce CPU usage Change-Id: Ib7a90a8c1900bf3397ac320ab9b61c835ce77ee6 Signed-off-by: Yanjun Liao --- utils/mpp_enc_roi_utils.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/utils/mpp_enc_roi_utils.c b/utils/mpp_enc_roi_utils.c index 9b529f23..88ff4dde 100644 --- a/utils/mpp_enc_roi_utils.c +++ b/utils/mpp_enc_roi_utils.c @@ -679,7 +679,7 @@ MPP_RET mpp_enc_roi_init(MppEncRoiCtx *ctx, RK_U32 w, RK_U32 h, MppCodingType ty mpp_log("set to vepu54x roi generation\n"); impl->base_cfg_size = stride_h * stride_v * sizeof(Vepu541RoiCfg); - mpp_buffer_group_get_internal(&impl->roi_grp, MPP_BUFFER_TYPE_ION); + mpp_buffer_group_get_internal(&impl->roi_grp, MPP_BUFFER_TYPE_ION | MPP_BUFFER_FLAGS_CACHABLE); mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.base_cfg_buf, impl->base_cfg_size); if (!impl->roi_cfg.base_cfg_buf) { @@ -722,7 +722,7 @@ MPP_RET mpp_enc_roi_init(MppEncRoiCtx *ctx, RK_U32 w, RK_U32 h, MppCodingType ty mpp_log("set to vepu58x roi generation\n"); impl->roi_cfg.roi_qp_en = 1; - mpp_buffer_group_get_internal(&impl->roi_grp, MPP_BUFFER_TYPE_ION); + mpp_buffer_group_get_internal(&impl->roi_grp, MPP_BUFFER_TYPE_ION | MPP_BUFFER_FLAGS_CACHABLE); mpp_buffer_get(impl->roi_grp, &impl->roi_cfg.base_cfg_buf, impl->base_cfg_size); if (!impl->roi_cfg.base_cfg_buf) { goto done; @@ -852,6 +852,7 @@ MPP_RET mpp_enc_roi_setup_meta(MppEncRoiCtx ctx, MppMeta meta) } mpp_meta_set_ptr(meta, KEY_ROI_DATA2, (void*)&impl->roi_cfg); + mpp_buffer_sync_ro_end(impl->roi_cfg.base_cfg_buf); } break; case ROI_TYPE_2 : { gen_vepu54x_roi(impl, impl->tmp); @@ -868,6 +869,8 @@ MPP_RET mpp_enc_roi_setup_meta(MppEncRoiCtx ctx, MppMeta meta) } mpp_meta_set_ptr(meta, KEY_ROI_DATA2, (void*)&impl->roi_cfg); + mpp_buffer_sync_ro_end(impl->roi_cfg.base_cfg_buf); + mpp_buffer_sync_ro_end(impl->roi_cfg.qp_cfg_buf); } break; case ROI_TYPE_LEGACY : { MppEncROIRegion *region = impl->legacy_roi_region;