Files
Linux_Drivers/middleware/v2/include/linux/cvi_vip_sc.h
wangliang.wang db9bea8b47 fix build error.
Change-Id: I733d10d084d6cea8f281eb3d38a3bdd06c042b33
2023-03-10 20:30:16 +08:00

103 lines
2.2 KiB
C

#ifndef _U_SC_UAPI_H_
#define _U_SC_UAPI_H_
#include <linux/cvi_vip.h>
#include <linux/cvi_defines.h>
enum cvi_sc_flip_mode {
CVI_SC_FLIP_NO,
CVI_SC_FLIP_HFLIP,
CVI_SC_FLIP_VFLIP,
CVI_SC_FLIP_HVFLIP,
CVI_SC_FLIP_MAX
};
enum cvi_sc_quant_rounding {
CVI_SC_QUANT_ROUNDING_TO_EVEN = 0,
CVI_SC_QUANT_ROUNDING_AWAY_FROM_ZERO,
CVI_SC_QUANT_ROUNDING_TRUNCATE,
CVI_SC_QUANT_ROUNDING_MAX,
};
enum cvi_sc_scaling_coef {
CVI_SC_SCALING_COEF_BICUBIC = 0,
CVI_SC_SCALING_COEF_BILINEAR,
CVI_SC_SCALING_COEF_NEAREST,
CVI_SC_SCALING_COEF_Z2,
CVI_SC_SCALING_COEF_Z3,
CVI_SC_SCALING_COEF_DOWNSCALE_SMOOTH,
CVI_SC_SCALING_COEF_OPENCV_BILINEAR,
CVI_SC_SCALING_COEF_MAX,
};
/* struct cvi_sc_quant_param
* parameters for quantization, output format fo sc must be RGB/BGR.
*
* @sc_frac: fractional number of the scaling-factor. [13bits]
* @sub: integer number of the means.
* @sub_frac: fractional number of the means. [10bits]
*/
struct cvi_sc_quant_param {
__u16 sc_frac[3];
__u8 sub[3];
__u16 sub_frac[3];
enum cvi_sc_quant_rounding rounding;
bool enable;
};
/* struct cvi_sc_border_param
* only work if sc offline and sc_output size < fmt's setting
*
* @bg_color: rgb format
* @offset_x: offset of x
* @offset_y: offset of y
* @enable: enable or disable
*/
struct cvi_sc_border_param {
__u32 bg_color[3];
__u16 offset_x;
__u16 offset_y;
bool enable;
};
/* struct cvi_sc_mute
* cover sc with the specified rgb-color if enabled.
*
* @color: rgb format
* @enable: enable or disable
*/
struct cvi_sc_mute {
__u8 color[3];
bool enable;
};
struct cvi_odma_sb_cfg {
__u8 sb_mode;
__u8 sb_size;
__u8 sb_nb;
__u8 sb_full_nb;
__u8 sb_wr_ctrl_idx;
};
struct cvi_vpss_chn_cfg {
__u8 grp_id;
struct cvi_vpss_frmsize src_size;
__u32 pixelformat;
__u32 bytesperline[2];
struct cvi_vpss_rect crop;
struct cvi_csc_cfg csc_cfg;
struct cvi_vpss_rect dst_rect;
struct cvi_vpss_frmsize dst_size;
enum cvi_sc_flip_mode flip;
enum cvi_sc_scaling_coef sc_coef;
struct cvi_rgn_cfg rgn_cfg[RGN_MAX_LAYER_VPSS];
struct cvi_rgn_coverex_cfg rgn_coverex_cfg;
struct cvi_rgn_mosaic_cfg rgn_mosaic_cfg;
struct cvi_sc_quant_param quant_cfg;
struct cvi_sc_border_param border_cfg;
struct cvi_sc_mute mute_cfg;
struct cvi_odma_sb_cfg sb_cfg;
};
#endif // _U_SC_UAPI_H_