From 5d9da6f29e019bd5d62cb8fe74c35323f30e179b Mon Sep 17 00:00:00 2001 From: Herman Chen Date: Wed, 10 Sep 2025 16:18:17 +0800 Subject: [PATCH] feat[mpp_enc_cfg]: Separate init function Add mpp_enc_cfg_init_k for kernel encoder config init. Signed-off-by: Herman Chen Change-Id: I4ebdc179b27115d72a2efa213405cbb4dca564d0 --- inc/rk_venc_cfg.h | 9 ++++---- mpp/base/mpp_enc_cfg.c | 47 +++++++++++++++--------------------------- test/mpi_enc_test.c | 7 +++++-- 3 files changed, 26 insertions(+), 37 deletions(-) diff --git a/inc/rk_venc_cfg.h b/inc/rk_venc_cfg.h index cae4a5b5..fb7637ab 100644 --- a/inc/rk_venc_cfg.h +++ b/inc/rk_venc_cfg.h @@ -15,14 +15,13 @@ typedef void* MppEncCfg; extern "C" { #endif -/* legacy interface */ +/* userspace encoder config init */ MPP_RET mpp_enc_cfg_init(MppEncCfg *cfg); +/* kernel encoder config init */ +MPP_RET mpp_enc_cfg_init_k(MppEncCfg *cfg); +/* common config deinit */ MPP_RET mpp_enc_cfg_deinit(MppEncCfg cfg); -/* new interface */ -RK_S32 mpp_enc_cfg_get(MppEncCfg *cfg, const char *name, void *val); -RK_S32 mpp_enc_cfg_put(MppEncCfg cfg); - MPP_RET mpp_enc_cfg_set_s32(MppEncCfg cfg, const char *name, RK_S32 val); MPP_RET mpp_enc_cfg_set_u32(MppEncCfg cfg, const char *name, RK_U32 val); MPP_RET mpp_enc_cfg_set_s64(MppEncCfg cfg, const char *name, RK_S64 val); diff --git a/mpp/base/mpp_enc_cfg.c b/mpp/base/mpp_enc_cfg.c index f2da5a53..4caafeef 100644 --- a/mpp/base/mpp_enc_cfg.c +++ b/mpp/base/mpp_enc_cfg.c @@ -403,15 +403,10 @@ MPP_RET mpp_enc_cfg_init(MppEncCfg *cfg) return ret; } -MPP_RET mpp_enc_cfg_deinit(MppEncCfg cfg) -{ - return mpp_enc_cfg_put(cfg); -} - -RK_S32 mpp_enc_cfg_get(MppEncCfg *cfg, const char *name, void *val) +RK_S32 mpp_enc_cfg_init_k(MppEncCfg *cfg) { static const char *kcfg_name = "KmppVencStCfg"; - (void)val; + MppEncCfgImpl *impl = NULL; if (!cfg) { mpp_err_f("invalid NULL input config\n"); @@ -421,34 +416,26 @@ RK_S32 mpp_enc_cfg_get(MppEncCfg *cfg, const char *name, void *val) mpp_env_get_u32("mpp_enc_cfg_debug", &mpp_enc_cfg_debug, 0); *cfg = NULL; - - if (!name || !strcmp(name, "MppEncCfg")) { - return mpp_enc_cfg_init(cfg); - } else if (!strcmp(name, kcfg_name)) { - MppEncCfgImpl *impl = NULL; - - impl = mpp_calloc(MppEncCfgImpl, 1); - if (!impl) { - mpp_err_f("create MppEncCfgImpl failed\n"); - return MPP_ERR_NOMEM; - } - impl->is_kobj = 1; - kmpp_obj_get_by_name_f(&impl->obj, kcfg_name); - if (!impl->obj) { - mpp_err_f("failed to get obj by name %s\n", kcfg_name); - MPP_FREE(impl); - return MPP_ERR_NOMEM; - } - *cfg = impl; - return MPP_OK; + impl = mpp_calloc(MppEncCfgImpl, 1); + if (!impl) { + mpp_err_f("create MppEncCfgImpl failed\n"); + return MPP_ERR_NOMEM; } - mpp_loge_f("invalid cfg %s\n", name); + impl->is_kobj = 1; + kmpp_obj_get_by_name_f(&impl->obj, kcfg_name); + if (!impl->obj) { + mpp_err_f("failed to get obj by name %s\n", kcfg_name); + MPP_FREE(impl); + return MPP_ERR_NOMEM; + } - return MPP_NOK; + *cfg = impl; + + return MPP_OK; } -RK_S32 mpp_enc_cfg_put(MppEncCfg cfg) +RK_S32 mpp_enc_cfg_deinit(MppEncCfg cfg) { MppEncCfgImpl *impl = (MppEncCfgImpl *)cfg; diff --git a/test/mpi_enc_test.c b/test/mpi_enc_test.c index 95f99b91..5159c1e3 100644 --- a/test/mpi_enc_test.c +++ b/test/mpi_enc_test.c @@ -1167,9 +1167,12 @@ void *enc_test(void *arg) goto MPP_TEST_OUT; } - ret = mpp_enc_cfg_get(&p->cfg, cmd->kmpp_en ? "KmppVencStCfg" : "MppEncCfg", NULL); + if (cmd->kmpp_en) + ret = mpp_enc_cfg_init_k(&p->cfg); + else + ret = mpp_enc_cfg_init(&p->cfg); if (ret) { - mpp_err_f("mpp_enc_cfg_get failed ret %d\n", ret); + mpp_err_f("mpp_enc_cfg_init failed ret %d\n", ret); goto MPP_TEST_OUT; }