81 lines
2 KiB
C
81 lines
2 KiB
C
/* SPDX-License-Identifier: Apache-2.0 OR MIT */
|
|
/*
|
|
* Copyright (c) 2015 Rockchip Electronics Co., Ltd.
|
|
*/
|
|
|
|
#ifndef MPP_ENC_CFG_H
|
|
#define MPP_ENC_CFG_H
|
|
|
|
#include "rk_venc_cfg.h"
|
|
#include "rk_venc_cmd.h"
|
|
#include "rk_venc_ref.h"
|
|
#include "mpp_rc_defs.h"
|
|
|
|
#include "kmpp_obj.h"
|
|
|
|
/*
|
|
* MppEncCfgSet shows the relationship between different configuration
|
|
* Due to the huge amount of configurable parameters we need to setup
|
|
* only minimum amount of necessary parameters.
|
|
*
|
|
* For normal user rc and prep config are enough.
|
|
*/
|
|
#define POS_TO_FLAG(p, pos) ((rk_u8*)(p) + ((rk_u32)(pos) & 0xffff))
|
|
#define POS_TO_ELEM(p, pos) ((rk_u8*)(p) + ((rk_u32)(pos) >> 16))
|
|
|
|
typedef struct MppEncCfgSet_t {
|
|
MppEncBaseCfg base;
|
|
|
|
// esential config
|
|
MppEncPrepCfg prep;
|
|
MppEncRcCfg rc;
|
|
|
|
// hardware related config
|
|
MppEncHwCfg hw;
|
|
|
|
// codec detail config
|
|
MppEncH264Cfg h264;
|
|
MppEncH265Cfg h265;
|
|
MppEncJpegCfg jpeg;
|
|
MppEncVp8Cfg vp8;
|
|
|
|
MppEncSliceSplit split;
|
|
MppEncRefCfg ref_cfg;
|
|
union {
|
|
MppEncROICfg roi;
|
|
/* for kmpp venc roi */
|
|
MppEncROICfgLegacy roi_legacy;
|
|
};
|
|
/* for kmpp venc osd */
|
|
MppEncOSDData3 osd;
|
|
MppEncOSDPltCfg plt_cfg;
|
|
MppEncOSDPlt plt_data;
|
|
/* for kmpp venc ref */
|
|
MppEncRefParam ref_param;
|
|
|
|
// quality fine tuning config
|
|
MppEncFineTuneCfg tune;
|
|
} MppEncCfgSet;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
rk_u32 *mpp_enc_cfg_prep_change(MppEncCfgSet *cfg);
|
|
rk_u32 *mpp_enc_cfg_rc_change(MppEncCfgSet *cfg);
|
|
rk_u32 *mpp_enc_cfg_hw_change(MppEncCfgSet *cfg);
|
|
rk_u32 *mpp_enc_cfg_tune_change(MppEncCfgSet *cfg);
|
|
rk_u32 *mpp_enc_cfg_h264_change(MppEncCfgSet *cfg);
|
|
rk_u32 *mpp_enc_cfg_h265_change(MppEncCfgSet *cfg);
|
|
rk_u32 *mpp_enc_cfg_jpeg_change(MppEncCfgSet *cfg);
|
|
rk_u32 *mpp_enc_cfg_vp8_change(MppEncCfgSet *cfg);
|
|
|
|
#define KMPP_OBJ_NAME mpp_enc_cfg
|
|
#define KMPP_OBJ_INTF_TYPE MppEncCfg
|
|
#include "kmpp_obj_func.h"
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* MPP_ENC_CFG_H */
|