From db487e5d7fc93384ba2e6c18665d2fca915db28b Mon Sep 17 00:00:00 2001 From: Herman Chen Date: Thu, 16 Sep 2021 15:00:47 +0800 Subject: [PATCH] [mpp_dec]: Add MPP_DEC_GET_CFG cmd implement Add MPP_DEC_GET_CFG call before setup decoder config in mpi_dec_test. Change-Id: I1ed8c2be44be9de0e4b1364a1401a81a9ecfd6e1 Signed-off-by: Herman Chen --- mpp/codec/mpp_dec.cpp | 8 ++++++++ mpp/mpp.cpp | 10 ++++++++++ test/mpi_dec_test.c | 7 +++++++ 3 files changed, 25 insertions(+) diff --git a/mpp/codec/mpp_dec.cpp b/mpp/codec/mpp_dec.cpp index d1fcba90..ae01b26f 100644 --- a/mpp/codec/mpp_dec.cpp +++ b/mpp/codec/mpp_dec.cpp @@ -423,6 +423,14 @@ MPP_RET mpp_dec_proc_cfg(MppDecImpl *dec, MpiCmd cmd, void *param) dec_dbg_func("set dec cfg\n"); } break; + case MPP_DEC_GET_CFG: { + MppDecCfgImpl *dec_cfg = (MppDecCfgImpl *)param; + + if (dec_cfg) + memcpy(&dec_cfg->cfg, &dec->cfg, sizeof(dec->cfg)); + + dec_dbg_func("get dec cfg\n"); + } break; default : { } break; } diff --git a/mpp/mpp.cpp b/mpp/mpp.cpp index f3c18eab..7070f4ee 100644 --- a/mpp/mpp.cpp +++ b/mpp/mpp.cpp @@ -962,6 +962,16 @@ MPP_RET Mpp::control_dec(MpiCmd cmd, MppParam param) ret = mpp_dec_set_cfg(&mDecInitcfg, &dec_cfg->cfg); } } break; + case MPP_DEC_GET_CFG : { + if (mDec) + ret = mpp_dec_control(mDec, cmd, param); + else if (param) { + MppDecCfgImpl *dec_cfg = (MppDecCfgImpl *)param; + + memcpy(&dec_cfg->cfg, &mDecInitcfg, sizeof(dec_cfg->cfg)); + ret = MPP_OK; + } + } break; default : { } break; } diff --git a/test/mpi_dec_test.c b/test/mpi_dec_test.c index 2e37fc5e..90a4aebc 100644 --- a/test/mpi_dec_test.c +++ b/test/mpi_dec_test.c @@ -630,6 +630,13 @@ int dec_decode(MpiDecTestCmd *cmd) mpp_dec_cfg_init(&cfg); + /* get default config from decoder context */ + ret = mpi->control(ctx, MPP_DEC_GET_CFG, cfg); + if (ret) { + mpp_err("%p failed to get decoder cfg ret %d\n", ctx, ret); + goto MPP_TEST_OUT; + } + /* * split_parse is to enable mpp internal frame spliter when the input * packet is not aplited into frames.