mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 17:16:50 +08:00
feat[enc]: Add config entry for output chroma format
Change-Id: I29f4f764adc401a635e9fda2e2b41b2002078637 Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
This commit is contained in:

committed by
Herman Chen

parent
13015dceac
commit
2b2f3669e4
@@ -45,6 +45,12 @@ typedef enum {
|
|||||||
MPP_FRAME_RANGE_NB, ///< Not part of ABI
|
MPP_FRAME_RANGE_NB, ///< Not part of ABI
|
||||||
} MppFrameColorRange;
|
} MppFrameColorRange;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MPP_FRAME_CHROMA_DOWN_SAMPLE_MODE_NONE,
|
||||||
|
MPP_FRAME_CHORMA_DOWN_SAMPLE_MODE_AVERAGE,
|
||||||
|
MPP_FRAME_CHORMA_DOWN_SAMPLE_MODE_DISCARD,
|
||||||
|
} MppFrameChromaDownSampleMode;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MPP_FRAME_VIDEO_FMT_COMPONEMT = 0,
|
MPP_FRAME_VIDEO_FMT_COMPONEMT = 0,
|
||||||
MPP_FRAME_VIDEO_FMT_PAL = 1,
|
MPP_FRAME_VIDEO_FMT_PAL = 1,
|
||||||
@@ -152,6 +158,17 @@ typedef enum {
|
|||||||
MPP_CHROMA_LOC_NB, ///< Not part of ABI
|
MPP_CHROMA_LOC_NB, ///< Not part of ABI
|
||||||
} MppFrameChromaLocation;
|
} MppFrameChromaLocation;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MPP_CHROMA_UNSPECIFIED,
|
||||||
|
MPP_CHROMA_400,
|
||||||
|
MPP_CHROMA_410,
|
||||||
|
MPP_CHROMA_411,
|
||||||
|
MPP_CHROMA_420,
|
||||||
|
MPP_CHROMA_422,
|
||||||
|
MPP_CHROMA_440,
|
||||||
|
MPP_CHROMA_444,
|
||||||
|
} MppFrameChromaFormat;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MppFrameFormat bit flag:
|
* MppFrameFormat bit flag:
|
||||||
*
|
*
|
||||||
|
@@ -562,13 +562,19 @@ typedef struct MppEncPrepCfg_t {
|
|||||||
RK_S32 ver_stride;
|
RK_S32 ver_stride;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mpp encoder input data format config
|
* Mpp encoder input/output color config
|
||||||
*/
|
*/
|
||||||
MppFrameFormat format;
|
MppFrameFormat format;
|
||||||
MppFrameColorSpace color;
|
MppFrameColorSpace color;
|
||||||
MppFrameColorPrimaries colorprim;
|
MppFrameColorPrimaries colorprim;
|
||||||
MppFrameColorTransferCharacteristic colortrc;
|
MppFrameColorTransferCharacteristic colortrc;
|
||||||
MppFrameColorRange range;
|
MppFrameColorRange range;
|
||||||
|
MppFrameChromaFormat format_out;
|
||||||
|
MppFrameChromaDownSampleMode chroma_ds_mode;
|
||||||
|
MppFrameColorRange range_out;
|
||||||
|
RK_S32 fix_chroma_en;
|
||||||
|
RK_S32 fix_chroma_u;
|
||||||
|
RK_S32 fix_chroma_v;
|
||||||
|
|
||||||
/* suffix ext means the user set config externally */
|
/* suffix ext means the user set config externally */
|
||||||
MppEncRotationCfg rotation;
|
MppEncRotationCfg rotation;
|
||||||
|
@@ -178,11 +178,17 @@ public:
|
|||||||
ENTRY(prep, hor_stride, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_INPUT, prep, hor_stride) \
|
ENTRY(prep, hor_stride, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_INPUT, prep, hor_stride) \
|
||||||
ENTRY(prep, ver_stride, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_INPUT, prep, ver_stride) \
|
ENTRY(prep, ver_stride, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_INPUT, prep, ver_stride) \
|
||||||
ENTRY(prep, format, S32, MppFrameFormat, MPP_ENC_PREP_CFG_CHANGE_FORMAT, prep, format) \
|
ENTRY(prep, format, S32, MppFrameFormat, MPP_ENC_PREP_CFG_CHANGE_FORMAT, prep, format) \
|
||||||
|
ENTRY(prep, format_out, S32, MppFrameChromaFormat, MPP_ENC_PREP_CFG_CHANGE_FORMAT, prep, format_out) \
|
||||||
|
ENTRY(prep, chroma_ds_mode, S32, MppFrameChromaDownSampleMode, MPP_ENC_PREP_CFG_CHANGE_FORMAT, prep, chroma_ds_mode) \
|
||||||
|
ENTRY(prep, fix_chroma_en, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_FORMAT, prep, fix_chroma_en) \
|
||||||
|
ENTRY(prep, fix_chroma_u, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_FORMAT, prep, fix_chroma_u) \
|
||||||
|
ENTRY(prep, fix_chroma_v, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_FORMAT, prep, fix_chroma_v) \
|
||||||
ENTRY(prep, colorspace, S32, MppFrameColorSpace,MPP_ENC_PREP_CFG_CHANGE_COLOR_SPACE, prep, color) \
|
ENTRY(prep, colorspace, S32, MppFrameColorSpace,MPP_ENC_PREP_CFG_CHANGE_COLOR_SPACE, prep, color) \
|
||||||
ENTRY(prep, colorprim, S32, MppFrameColorPrimaries, MPP_ENC_PREP_CFG_CHANGE_COLOR_PRIME, prep, colorprim) \
|
ENTRY(prep, colorprim, S32, MppFrameColorPrimaries, MPP_ENC_PREP_CFG_CHANGE_COLOR_PRIME, prep, colorprim) \
|
||||||
ENTRY(prep, colortrc, S32, MppFrameColorTransferCharacteristic, MPP_ENC_PREP_CFG_CHANGE_COLOR_TRC, prep, colortrc) \
|
ENTRY(prep, colortrc, S32, MppFrameColorTransferCharacteristic, MPP_ENC_PREP_CFG_CHANGE_COLOR_TRC, prep, colortrc) \
|
||||||
ENTRY(prep, colorrange, S32, MppFrameColorRange,MPP_ENC_PREP_CFG_CHANGE_COLOR_RANGE, prep, range) \
|
ENTRY(prep, colorrange, S32, MppFrameColorRange,MPP_ENC_PREP_CFG_CHANGE_COLOR_RANGE, prep, range) \
|
||||||
ENTRY(prep, range, S32, MppFrameColorRange,MPP_ENC_PREP_CFG_CHANGE_COLOR_RANGE, prep, range) \
|
ENTRY(prep, range, S32, MppFrameColorRange,MPP_ENC_PREP_CFG_CHANGE_COLOR_RANGE, prep, range) \
|
||||||
|
ENTRY(prep, range_out, S32, MppFrameColorRange,MPP_ENC_PREP_CFG_CHANGE_COLOR_RANGE, prep, range_out) \
|
||||||
ENTRY(prep, rotation, S32, MppEncRotationCfg, MPP_ENC_PREP_CFG_CHANGE_ROTATION, prep, rotation_ext) \
|
ENTRY(prep, rotation, S32, MppEncRotationCfg, MPP_ENC_PREP_CFG_CHANGE_ROTATION, prep, rotation_ext) \
|
||||||
ENTRY(prep, mirroring, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_MIRRORING, prep, mirroring_ext) \
|
ENTRY(prep, mirroring, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_MIRRORING, prep, mirroring_ext) \
|
||||||
ENTRY(prep, flip, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_FLIP, prep, flip) \
|
ENTRY(prep, flip, S32, RK_S32, MPP_ENC_PREP_CFG_CHANGE_FLIP, prep, flip) \
|
||||||
@@ -414,6 +420,10 @@ static void mpp_enc_cfg_set_default(MppEncCfgSet *cfg)
|
|||||||
cfg->prep.color = MPP_FRAME_SPC_UNSPECIFIED;
|
cfg->prep.color = MPP_FRAME_SPC_UNSPECIFIED;
|
||||||
cfg->prep.colorprim = MPP_FRAME_PRI_UNSPECIFIED;
|
cfg->prep.colorprim = MPP_FRAME_PRI_UNSPECIFIED;
|
||||||
cfg->prep.colortrc = MPP_FRAME_TRC_UNSPECIFIED;
|
cfg->prep.colortrc = MPP_FRAME_TRC_UNSPECIFIED;
|
||||||
|
cfg->prep.format_out = MPP_CHROMA_UNSPECIFIED;
|
||||||
|
cfg->prep.chroma_ds_mode = MPP_FRAME_CHROMA_DOWN_SAMPLE_MODE_NONE;
|
||||||
|
cfg->prep.fix_chroma_en = 0;
|
||||||
|
cfg->prep.range_out = MPP_FRAME_RANGE_UNSPECIFIED;
|
||||||
|
|
||||||
for (i = 0; i < MPP_ARRAY_ELEMS(cfg->hw.mode_bias); i++)
|
for (i = 0; i < MPP_ARRAY_ELEMS(cfg->hw.mode_bias); i++)
|
||||||
cfg->hw.mode_bias[i] = 8;
|
cfg->hw.mode_bias[i] = 8;
|
||||||
|
Reference in New Issue
Block a user