CatFeeder/src/modules/isp/isp.h

79 lines
1.6 KiB
C

#ifndef __ISP_H__
#define __ISP_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "hi_comm_video.h"
#include "hi_comm_vpss.h"
#include "hi_common.h"
#include "hi_type.h"
#include "sample_comm.h"
#include "zlog.h"
// zlog
extern zlog_category_t *log_isp;
extern const PIXEL_FORMAT_E ISP_PIXEL_FORMAT2;
extern const COMPRESS_MODE_E ISP_COMPRESS_MODE;
typedef struct IspVpssConfig_S {
VPSS_GRP s32GrpId;
VPSS_GRP_ATTR_S stGrpAttr;
HI_BOOL abChnEnable[VPSS_MAX_PHY_CHN_NUM];
VPSS_CHN_ATTR_S astChnAttrs[VPSS_MAX_PHY_CHN_NUM];
} isp_vpss_config_t;
typedef struct IspVpssChn_S {
VPSS_CHN *as32VpssChn;
HI_U8 u8VpssChnNum;
} isp_vpss_chn_t;
HI_S32 ispInit(VI_PIPE video_pipe, VI_PIPE snap_pipe);
void ispExit(void);
HI_BOOL ispCheck(void);
// Get ISP Configuration Struction
SAMPLE_VI_CONFIG_S *ispGetViConfig(void);
PIC_SIZE_E ispGetViPicSizeType(void);
VI_PIPE ispGetVideoPipe(void);
VI_PIPE ispGetSnapPipe(void);
isp_vpss_config_t *ispGetVideoVpss(void);
isp_vpss_chn_t *ispGetVideoVpssChn(void);
VENC_CHN ispGetVideoVencChn(void);
isp_vpss_config_t *ispGetSnapVpss(void);
isp_vpss_chn_t *ispGetSnapVpssChn(void);
VENC_CHN ispGetSnapVencChn(void);
SAMPLE_VO_CONFIG_S *ispGetVOConfig(void);
// Set Basic ISP Config
HI_S32 ispGetVpssChnAttr(VPSS_CHN_ATTR_S *vpss_chn_attr, VPSS_CHN vpss_chn,
PIC_SIZE_E pic_size);
HI_S32 ispGetVpssConfig(VPSS_GRP vpss_grp_id, isp_vpss_config_t *vpss_config,
VPSS_CHN *vpss_chn, HI_U8 vpss_chn_num,
PIC_SIZE_E pic_size, HI_BOOL is_snap);
// Print Error Code
void ispPrintVpssErrorCode(void);
#ifdef __cplusplus
}
#endif
#endif