mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 09:06:50 +08:00
[h265e]: Add sao disable cfg
Change-Id: I446178d5d2aefa26750382f126fac582ae93e16c Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
This commit is contained in:
@@ -881,8 +881,8 @@ typedef struct MppEncH265DblkCfg_t {
|
||||
} MppEncH265DblkCfg_t;
|
||||
|
||||
typedef struct MppEncH265SaoCfg_t {
|
||||
RK_U32 slice_sao_luma_flag;
|
||||
RK_U32 slice_sao_chroma_flag;
|
||||
RK_U32 slice_sao_luma_disable;
|
||||
RK_U32 slice_sao_chroma_disable;
|
||||
} MppEncH265SaoCfg;
|
||||
|
||||
typedef struct MppEncH265TransCfg_t {
|
||||
|
@@ -211,6 +211,8 @@ RK_U32 mpp_enc_cfg_debug = 0;
|
||||
ENTRY(h265, qp_max_i, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_RANGE_I, rc, qp_max_i) \
|
||||
ENTRY(h265, qp_step, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_MAX_STEP, rc, qp_max_step) \
|
||||
ENTRY(h265, qp_delta_ip, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_IP, rc, qp_delta_ip) \
|
||||
ENTRY(h265, sao_luma_disable, S32, RK_S32, MPP_ENC_H265_CFG_SAO_CHANGE, codec.h265, sao_cfg.slice_sao_luma_disable) \
|
||||
ENTRY(h265, sao_chroma_disable, S32, RK_S32, MPP_ENC_H265_CFG_SAO_CHANGE, codec.h265, sao_cfg.slice_sao_chroma_disable) \
|
||||
/* vp8 config */ \
|
||||
ENTRY(vp8, qp_init, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_INIT, rc, qp_init) \
|
||||
ENTRY(vp8, qp_min, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_RANGE, rc, qp_min) \
|
||||
@@ -251,7 +253,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) - 73;
|
||||
static RK_S32 node_len = ENTRY_TABLE(EXPAND_AS_STRLEN) - 61;
|
||||
|
||||
class MppEncCfgService
|
||||
{
|
||||
|
@@ -95,8 +95,8 @@ static MPP_RET h265e_init(void *ctx, EncImplCfg *ctrlCfg)
|
||||
|
||||
h265->slice_cfg.split_enable = 0;
|
||||
h265->entropy_cfg.cabac_init_flag = 1;
|
||||
h265->sao_cfg.slice_sao_chroma_flag = 1;
|
||||
h265->sao_cfg.slice_sao_luma_flag = 1;
|
||||
h265->sao_cfg.slice_sao_chroma_disable = 0;
|
||||
h265->sao_cfg.slice_sao_luma_disable = 0;
|
||||
h265->dblk_cfg.slice_deblocking_filter_disabled_flag = 0;
|
||||
h265->cu_cfg.strong_intra_smoothing_enabled_flag = 1;
|
||||
h265->merge_cfg.max_mrg_cnd = 2;
|
||||
@@ -434,6 +434,10 @@ static MPP_RET h265e_proc_h265_cfg(MppEncH265Cfg *dst, MppEncH265Cfg *src)
|
||||
memcpy(&dst->vui, &src->vui, sizeof(src->vui));
|
||||
}
|
||||
|
||||
if (change & MPP_ENC_H265_CFG_SAO_CHANGE) {
|
||||
memcpy(&dst->sao_cfg, &src->sao_cfg, sizeof(src->sao_cfg));
|
||||
}
|
||||
|
||||
/*
|
||||
* NOTE: use OR here for avoiding overwrite on multiple config
|
||||
* When next encoding is trigger the change flag will be clear
|
||||
|
@@ -255,8 +255,8 @@ void h265e_slice_init(void *ctx, EncFrmStatus curr)
|
||||
slice->m_deblockingFilterBetaOffsetDiv2 = pps->m_deblockingFilterBetaOffsetDiv2;
|
||||
slice->m_deblockingFilterTcOffsetDiv2 = pps->m_deblockingFilterTcOffsetDiv2;
|
||||
}
|
||||
slice->m_saoEnabledFlag = codec->sao_cfg.slice_sao_luma_flag;
|
||||
slice->m_saoEnabledFlagChroma = codec->sao_cfg.slice_sao_chroma_flag;
|
||||
slice->m_saoEnabledFlag = !codec->sao_cfg.slice_sao_luma_disable;
|
||||
slice->m_saoEnabledFlagChroma = !codec->sao_cfg.slice_sao_chroma_disable;
|
||||
slice->m_maxNumMergeCand = codec->merge_cfg.max_mrg_cnd;
|
||||
slice->m_cabacInitFlag = codec->entropy_cfg.cabac_init_flag;
|
||||
slice->m_picOutputFlag = 1;
|
||||
|
Reference in New Issue
Block a user