⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.h

📁 1、基于韩国at2041芯片开发的Linux环境的DVR代码。 2、以原来代码进行了修改。 3、主要修改网络通讯出现异常问题处理 4、硬盘覆盖录像不起作用
💻 H
📖 第 1 页 / 共 2 页
字号:
	ALL = 0,
	CONTI,
	MOTION,
	SENSOR,
} MODE_REC;

typedef enum {
	MB_SIZE_1X = 1,
	MB_SIZE_2X,
	MB_SIZE_3X,
	MB_SIZE_4X
} MOTION_BLOCK_SIZE;

typedef struct __ENC_CH__ {
	UNS16		motion;
	UNS16		sensor;
	UNS16		schedule;
} ENC_CH;

typedef struct __STATE_ENC__ {
	MAIN_STATE	state;	
	UNS16		      manual_rec;
	UNS16		      schedule_rec;
	ENC_CH		enc_ch[MAX_CH_NUM];	
} STATE_ENC;

typedef enum {
	D_PLAY = 0,
	D_STOP,
	D_PAUSE,
	D_SLOW,
	D_REW,
	D_STEP_B,
	D_FF,
	D_STEP_F,
	D_IDLE
} MODE_PLAY;

typedef struct __STATE_DEC__ {
	MAIN_STATE	state;
	MODE_REC		mode_rec;
	MODE_PLAY	mode_play;
	UNS16			play_step;	
	UNS16			play_change;
	S8                    play_file[32];
	PTHREAD_BUF	signal;
} STATE_DEC;

typedef enum {	
	L_QUAD,		
	L_CH1,
	L_CH2,
	L_CH3,
	L_CH4,
	L_1CH_PB,	
	L_4CH_PB,
} LIVE_MON;

typedef enum {	
	MIN_01 = 01,
	MIN_02 = 02,		
	MIN_05 = 05,
	MIN_10 = 10,
	MIN_15 = 15,
	MIN_20 = 20,
	MIN_25 = 25,	
	MIN_30 = 30,
	MIN_60 = 60
} REC_TIME;

typedef struct __STATE_LIVE__ {
	LIVE_MON	mode_mon;
	struct tm	cur_time;	
} STATE_LIVE;

typedef struct __STATE_DB__ {
	sem_t		search_sem;
} STATE_DB;
typedef struct __STATE_PTZ__ {
	MAIN_STATE	state;
} STATE_PTZ;

typedef enum {	
	ENOUGH = 0,
	FULL		
} DISK_STATE;

typedef struct __STATE_DISKM__ {
	DISK_STATE	state;
} STATE_DISKM;

typedef struct __PTHREAD_STATE__ {
	STATE_MAIN	 state_main;
	STATE_ENC	 state_enc;
	STATE_DEC	       state_dec;
	STATE_LIVE	 state_live;
	STATE_DB	       state_db;
      STATE_PTZ        state_ptz;
      STATE_DISKM    state_diskm;
} PTHREAD_STATE;

/* ================TYPEDEF for SETUP_PARAM================== */
typedef struct __MOTION_PARAM__ {
	UNS32	flag;
	UNS32	sensitivity;
	UNS32	area[AT2041_MB_TABLE];
} MOTION_PARAM;

typedef struct __SENSOR_PARAM__ {
	UNS32	flag_in;
	UNS32	flag_out;	
	UNS16	flag_in_noc;
	UNS16	flag_out_noc;	
	UNS16	flag_out_duration;
} SENSOR_PARAM;

typedef struct __SCHEDULE_PARAM__ {
	UNS32	flag;
// pentamicro 2006.01.11
	struct	tm from_time[MAX_DAY_OF_WEEK + 1];	 /* for batch time set, add +1 */ 
	struct	tm to_time[MAX_DAY_OF_WEEK + 1];	 /* for batch time set, add +1 */ 
} SCHEDULE_PARAM;

typedef struct __GLOBAL_PARAM__ {
	UNS32	video_form;
	UNS32	resolution;
} GLOBAL_PARAM;

typedef struct __ENCODER_PARAM__ {
	UNS32	flag_conti_rec;
	UNS32	frame_rate;
//	UNS32	bit_rate;	
//	UNS32	vbr_q;	
	UNS32	cbr_q;	
//	UNS32	gop_nm;
//	UNS32	gop_m;
	MOTION_PARAM	motion;
	SENSOR_PARAM	sensor;
	SCHEDULE_PARAM	schedule;
} ENCODER_PARAM;

// pentamicro 2006.01.11
typedef struct __WATERMARK_PARAM__ {
	UNS32	flag_wm;
	UNS32	strength;
	UNS32	key;
} WATERMARK_PARAM;

typedef struct __ENC_ATTR__ {
	UNS32	encoding_type;
	WATERMARK_PARAM wm;
} ENC_ATTR;

typedef struct __DECODER_PARAM__ {
	UNS32	play_conti;
} DECODER_PARAM;

typedef struct __NETWORK_PARAM__ {
	UNS32	ipaddr;
	UNS32	netmask;
	UNS32	gateway;
	UNS8    enetaddr[MAXLEN_ETHADDR];
	UNS8    hostname[MAXLEN_HOSTNAME];
} NETWORK_PARAM;

typedef struct __PASSWORD_PARAM__ {
	UNS16	id;
	UNS16	value;
} PASSWORD_PARAM;

typedef struct __CAMERA_PARAM__ {
	S16         brightness;	
	S16 	    contrast;	
	S16		    color;	
} CAMERA_PARAM;

typedef struct __PTZ_PARAM__ {
	UNS16       cam_vendor;
	UNS16       cam_speed;
	UNS16       cam_ch;
	UNS16       preset_start_pos;
	UNS16       preset_end_pos;
	UNS16       preset_interval;
	UNS16       preset_seq_flag;
} PTZ_PARAM;

typedef struct __DISK_PARAM__ {
	UNS16       slice_time;              
	UNS16       over_wt_flag;
	UNS16	    alive_hdd[MAX_DISK_NUM];
} DISK_PARAM;

typedef struct __SYSTEM_PARAM__ {
	NETWORK_PARAM		network;
	CAMERA_PARAM           camera[MAX_CH_NUM];
	PASSWORD_PARAM	      password[USER_NUM];
	PTZ_PARAM                  ptz;
	DISK_PARAM                 disk;
} SYSTEM_PARAM;

typedef struct __SETUP_PARAM__ {
	UNS32		            magic_num;
	GLOBAL_PARAM	gp;
	ENCODER_PARAM	enc_ch[MAX_CH_NUM];
// pentamicro 2006.01.11
	ENC_ATTR				enc_attr;
	DECODER_PARAM	dec;
	SYSTEM_PARAM	sys;
} SETUP_PARAM;

/* ================TYPEDEF for RECORD DB================== */
typedef struct __DB_RECORD__ {
	S8		fname[32];
	UNS16	conti;
	UNS16	motion;
	UNS16	sensor;	
	S8		start_time[10];
	S8		end_time[8];
	UNS32	end_fp;	
	UNS32	prev_db_fp;
	UNS32	next_db_fp;
} DB_RECORD; 
/* type definition for picture info */
typedef struct __INFO_PICTURE__ {
	UNS16	data_type;
	UNS16	type;
	UNS16	ch;	
	UNS16	loss;	
	UNS16	motion_start;
	UNS16	motion_end;	
	UNS16	sensor_start;	
	UNS16	sensor_end;	
	UNS16	start_flag;	
	UNS16	last_flag;
	UNS16	dummy;
	UNS32	size;
	UNS32	time;
	UNS32	start_fp;
	UNS16	event_indicator;
} INFO_PICTURE; 
/* ================TYPEDEF for PTHREAD_DEC================== */
typedef enum {
	TM_PLAY = 0,
	TM_FAST,
	TM_SLOW,
	TM_STEP,
	TM_PAUSE,
	TM_NON_REAL_TIME
} TRICK_MODE;

typedef enum {
	TD_FORWARD = 0,
	TD_BACKWARD
} TRICK_DIR;

typedef enum {
	TME_NORMAL = 0,
	TME_REAL
} TRICK_METHOD;

typedef enum {
	HDDA = 0,
	HDDB,
	HDDC,
	HDDD
} HDD_ID;

// pentamicro 2006.01.11
#define MAX_SPOT_OUT_TIME 5
/* value list for CBR */
static UNS32 d1_cbr_val_list[5] = { 5, 10, 20, 40, 60 };
static UNS32 cif_cbr_val_list[5] = { 3,   5,  8, 10, 15 };

/* enc fps list */
#define MAX_NTSC_FPS_LIST    	8
#define MAX_PAL_FPS_LIST    	7

static UNS32 fps_list[MAX_NTSC_FPS_LIST] = { 0, 1, 5, 10, 15, 20, 25, 30 };

// pentamicro 2006.01.11
static UNS32 jpeg_q_val_list[5] = { 30, 40, 50, 60, 70 };


/** ************************************************************************* ** 
 ** function prototypes
 ** ************************************************************************* **/
RETURN	nvram_check_magic_num(SETUP_PARAM			*psp); 
RETURN	nvram_load_setup_value(SETUP_PARAM	*psp);
#if 0//org code
RETURN	set_sys_network(SETUP_PARAM	*psp);
#endif
S32             db_record_count(void);
RETURN      recreate_main_db(UNS32 all_record_cnt);
S32             compare(const void *a, const void *b);
BOOL	      pthread_read_signal(PTHREAD_BUF *rbuf, PTHREAD_ID thread_num, BOOL wait);
BOOL	      pthread_send_signal(PTHREAD_BUF *sbuf, PTHREAD_ID thread_num);
BOOL	      pthread_broadcast_signal(PTHREAD_BUF *sbuf, PTHREAD_ID thread_num);
RETURN	pthread_initialize_mutex(void);
RETURN	pthread_destory_mutex(void);
RETURN	pthread_initialize_cond(void);
RETURN	pthread_destroy_cond(void);
RETURN	pthread_create_manager(void);
RETURN	pthread_create_input(void);
RETURN	pthread_create_live(void);
RETURN	pthread_create_diskm(void);
RETURN	pthread_create_setup(void);
RETURN	pthread_create_search(void);
RETURN	pthread_create_enc(void);
RETURN	pthread_create_dec(void);
RETURN	pthread_create_schedule(void);
#ifdef __TRANS_THR__
RETURN	pthread_create_trans(void);
#endif
RETURN      pthread_create_gpio(void);
RETURN      pthread_create_ptz(void);
RETURN      pthread_create_mouse(void);
RETURN	load_font(void);
RETURN	printregion(S16 x_offset, S16 y_offset, S16 x_size, S16 y_size, S16 color, S16 blend);
RETURN	printfont(S16 x_offset, S16 y_offset, UNS8 *str, S16 color, S16 blend);
RETURN	clear_osd_all(void);
void            appversionprint(void);
#if 0//org code
void 		set_timesync(void);
#endif
void 		tw2834_motion_mask_set(SETUP_PARAM	*psp);
// pentamicro 2006.01.11
void 	set_video_vertical_offset(VIDEO_MODE mode);
#endif /* __MAIN_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -