[mpp_enc_cfg]: Add low delay to MppEncCfgSet

Change-Id: I5f9e595b44cc39cc255c69a875618ea36de5e878
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2020-12-08 17:15:00 +08:00
parent d523aaa888
commit 96a7affc2b
4 changed files with 36 additions and 1 deletions

View File

@@ -149,6 +149,20 @@
* + + + +
*/
/*
* base working mode parameter
*/
typedef enum MppEncBaseCfgChange_e {
MPP_ENC_BASE_CFG_CHANGE_LOW_DELAY = (1 << 0),
MPP_ENC_BASE_CFG_CHANGE_ALL = (0xFFFFFFFF),
} MppEncBaseCfgChange;
typedef struct MppEncBaseCfg_t {
RK_U32 change;
RK_S32 low_delay;
} MppEncBaseCfg;
/*
* Rate control parameter
*/

View File

@@ -149,6 +149,8 @@ static const char *cfg_func_names[] = {
const_strlen( #base":"#name ) +
#define ENTRY_TABLE(ENTRY) \
/* base config */ \
ENTRY(base, low_delay, S32, RK_S32, MPP_ENC_BASE_CFG_CHANGE_LOW_DELAY, base, low_delay) \
/* rc config */ \
ENTRY(rc, mode, S32, MppEncRcMode, MPP_ENC_RC_CFG_CHANGE_RC_MODE, rc, rc_mode) \
ENTRY(rc, bps_target, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_BPS, rc, bps_target) \
@@ -263,7 +265,7 @@ RK_S32 const_strlen(const char* str)
return *str ? 1 + const_strlen(str + 1) : 0;
}
static RK_S32 node_len = ENTRY_TABLE(EXPAND_AS_STRLEN) - 50;
static RK_S32 node_len = ENTRY_TABLE(EXPAND_AS_STRLEN) - 40;
class MppEncCfgService
{

View File

@@ -519,6 +519,23 @@ MPP_RET mpp_enc_proc_cfg(MppEncImpl *enc, MpiCmd cmd, void *param)
MPP_RET ret = MPP_OK;
switch (cmd) {
case MPP_ENC_SET_CFG : {
MppEncCfgImpl *impl = (MppEncCfgImpl *)param;
MppEncCfgSet *src = &impl->cfg;
RK_U32 change = src->base.change;
/* get base cfg here */
if (change) {
MppEncCfgSet *dst = &enc->cfg;
if (change & MPP_ENC_BASE_CFG_CHANGE_LOW_DELAY)
dst->base.low_delay = src->base.low_delay;
src->base.change = 0;
}
ret = enc_impl_proc_cfg(enc->impl, cmd, param);
} break;
case MPP_ENC_GET_HDR_SYNC :
case MPP_ENC_GET_EXTRA_INFO : {
/*

View File

@@ -29,6 +29,8 @@
* For normal user rc and prep config are enough.
*/
typedef struct MppEncCfgSet_t {
MppEncBaseCfg base;
// esential config
MppEncPrepCfg prep;
MppEncRcCfg rc;