mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 17:16:50 +08:00
[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:
@@ -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
|
* Rate control parameter
|
||||||
*/
|
*/
|
||||||
|
@@ -149,6 +149,8 @@ static const char *cfg_func_names[] = {
|
|||||||
const_strlen( #base":"#name ) +
|
const_strlen( #base":"#name ) +
|
||||||
|
|
||||||
#define ENTRY_TABLE(ENTRY) \
|
#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 */ \
|
/* rc config */ \
|
||||||
ENTRY(rc, mode, S32, MppEncRcMode, MPP_ENC_RC_CFG_CHANGE_RC_MODE, rc, rc_mode) \
|
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) \
|
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;
|
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
|
class MppEncCfgService
|
||||||
{
|
{
|
||||||
|
@@ -519,6 +519,23 @@ MPP_RET mpp_enc_proc_cfg(MppEncImpl *enc, MpiCmd cmd, void *param)
|
|||||||
MPP_RET ret = MPP_OK;
|
MPP_RET ret = MPP_OK;
|
||||||
|
|
||||||
switch (cmd) {
|
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_HDR_SYNC :
|
||||||
case MPP_ENC_GET_EXTRA_INFO : {
|
case MPP_ENC_GET_EXTRA_INFO : {
|
||||||
/*
|
/*
|
||||||
|
@@ -29,6 +29,8 @@
|
|||||||
* For normal user rc and prep config are enough.
|
* For normal user rc and prep config are enough.
|
||||||
*/
|
*/
|
||||||
typedef struct MppEncCfgSet_t {
|
typedef struct MppEncCfgSet_t {
|
||||||
|
MppEncBaseCfg base;
|
||||||
|
|
||||||
// esential config
|
// esential config
|
||||||
MppEncPrepCfg prep;
|
MppEncPrepCfg prep;
|
||||||
MppEncRcCfg rc;
|
MppEncRcCfg rc;
|
||||||
|
Reference in New Issue
Block a user