fix[enc_roi]: Use cache buf to reduce CPU usage

Change-Id: Ib7a90a8c1900bf3397ac320ab9b61c835ce77ee6
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
This commit is contained in:
Yanjun Liao 2024-06-20 19:55:02 +08:00
parent d4d204174e
commit 7f6ea0ad8c

View file

@ -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;