Files
gk-sdk/sample/common/sample_comm_isp.h

94 lines
2.9 KiB
C
Executable File

/*
* Copyright (c) XMEDIA. All rights reserved.
*/
#ifndef __SAMPLE_COMM_ISP_H__
#define __SAMPLE_COMM_ISP_H__
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "xmedia_sys.h"
#include "xmedia_type.h"
#include "xmedia_isp.h"
#include "xmedia_ae.h"
#include "xmedia_awb.h"
#include "sample_comm_vi.h"
#ifdef __cplusplus
extern "C" {
#endif
#define ISP_MAX_PIPE_NUM VI_MAX_PIPE_NUM
typedef struct {
xmedia_bool isp_sensor_en;
xmedia_bool isp_pipe_en;
xmedia_bool i2c_addr_en;
xmedia_u32 i2c_addr;
sample_comm_sensor_type sensor_type;
xmedia_u32 sns_clk_ch;
xmedia_u32 sns_rst_ch;
xmedia_sensor_trig_signal signal;
xmedia_sensor_config sns_cfg;
xmedia_sensor_work_mode sns_work_mode;
xmedia_isp_config isp_config;
xmedia_bool mirror;
xmedia_bool flip;
xmedia_bool serdes_enable;
xmedia_bool disable_dynamic_fps;
} sample_isp_info;
typedef struct {
xmedia_s32 pipe[ISP_MAX_PIPE_NUM]; /*vi master pipe number*/
sample_isp_info isp_info[ISP_MAX_PIPE_NUM];
xmedia_char *ainr_model_path[ISP_MAX_PIPE_NUM];
} sample_isp_param;
// for load ainr model and pqbin
#define AINR_LIST_NUM (16)
typedef struct {
sample_comm_sensor_type sensor_type;
xmedia_char *load_file;
} sample_isp_sensor_effect_list;
extern sample_isp_sensor_effect_list g_ainr_pqbin_list[AINR_LIST_NUM];
extern sample_isp_sensor_effect_list g_ainr_model_list[AINR_LIST_NUM];
xmedia_s32 sample_comm_isp_init(sample_isp_param *isp_param, sample_vi_config *vi_config);
xmedia_s32 sample_comm_isp_exit(sample_isp_param *isp_param);
xmedia_s32 sample_comm_isp_start(sample_isp_param *isp_param);
xmedia_s32 sample_comm_isp_stop(sample_isp_param *isp_param);
xmedia_s32 sample_comm_isp_get_sensor_bayer_fmt(xmedia_u32 pipe, xmedia_video_size size, xmedia_video_wdr_mode wdr_mode,
xmedia_bool mirror, xmedia_bool flip,
xmedia_video_bayer_format *bayer_fmt);
xmedia_s32 sample_comm_isp_get_sensor_bit_rate(xmedia_u32 pipe, xmedia_u32 *bit_rate);
xmedia_void sample_comm_isp_set_multi_pipe_mode(xmedia_bool multi_pipe_mode,
xmedia_s32 master_pipe_id, xmedia_s32 slave_pipe_id);
xmedia_bool sample_comm_isp_is_wdr_mode(sample_comm_sensor_type sensor_type);
xmedia_s32 sample_comm_isp_ainr_init(sample_isp_param *isp_param, sample_vi_config *vi_config);
xmedia_void sample_comm_isp_ainr_exit(sample_isp_param *isp_param);
xmedia_s32 sample_comm_isp_enable_fpn(xmedia_u32 isp_pipe, const xmedia_char *fpn_path);
xmedia_s32 sample_comm_isp_disable_fpn(xmedia_u32 isp_pipe);
xmedia_s32 sample_comm_isp_get_sensor_effect_index(sample_isp_sensor_effect_list list[], xmedia_s32 list_num,
sample_comm_sensor_type sensor_type);
xmedia_s32 sample_comm_isp_sensor_reset(xmedia_s32 sns_id);
#ifdef __cplusplus
}
#endif
#endif /*__SAMPLE_COMM_ISP_H__*/