archived-mpp/mpp/inc/mpp_enc_cfg.h
Yandong Lin e447e0763e feat[mpp_enc_cfg]: Merge enc cfgs from mpp_interface
Change-Id: Ie08d9a26129096634b61fe60a10517efe0807180
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-01-07 17:04:12 +08:00

62 lines
1.7 KiB
C

/*
* Copyright 2015 Rockchip Electronics Co. LTD
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __MPP_ENC_CFG_H__
#define __MPP_ENC_CFG_H__
#include "rk_venc_cmd.h"
#include "rk_venc_ref.h"
#include "rc_data.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.
*/
typedef struct MppEncCfgSet_t {
MppEncBaseCfg base;
// esential config
MppEncPrepCfg prep;
MppEncRcCfg rc;
// hardware related config
MppEncHwCfg hw;
// codec detail config
MppEncCodecCfg codec;
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;
#endif /*__MPP_ENC_CFG_H__*/