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

📄 hw_at2041_api.c

📁 1、基于韩国at2041芯片开发的Linux环境的DVR代码。 2、以原来代码进行了修改。 3、主要修改网络通讯出现异常问题处理 4、硬盘覆盖录像不起作用
💻 C
📖 第 1 页 / 共 5 页
字号:
}void output_video_data_saturation_value(UNS16 min_luma, UNS16 max_luma, 					UNS16 min_chroma, UNS16 max_chroma){	/* min_luma   : minimum value of luminance data	 *              default is 16	 * max_luma   : maximum value of luminance data	 *              defalue is 235	 * min_chroma : minimum value of chrominance data	 *              default is 16	 * max_chroma : maximum value of chrominance data	 *              defalue is 239	 */        rx_id = RxID(GID_DV, 0x00, PID_DV_DATA_SAT, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &min_luma);        ioctl(fd_at2041, WRITE_Rx_FIFO, &max_luma);        ioctl(fd_at2041, WRITE_Rx_FIFO, &min_chroma);        ioctl(fd_at2041, WRITE_Rx_FIFO, &max_chroma);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void zoom_in(UNS16 horizontal_direction, UNS16 vertical_direction){	/* horizontal_direction : '0' original, '1' horizontal zoom_in(x2), defaule is '0'	 * vertical_direction : '0' original, '1' vertical zoom_in(x2), defaule is '0'	 */        rx_id = RxID(GID_DV, 0x00, PID_DV_ZOOM_IN, W_FLAG);	rx_data = (vertical_direction << 1) | horizontal_direction;        write_parm(rx_id, rx_data);}void partial_display_zoom_offset(UNS16 hoffset, UNS16 voffset){	/* hoffset : horizontal offset, 16-pel unit, default is 0	 * voffset : vertical offset, 2-line unit, default is 0	 */        rx_id = RxID(GID_DV, 0x00, PID_DV_ZOOM_OFF, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &hoffset);        ioctl(fd_at2041, WRITE_Rx_FIFO, &voffset);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void deinterlace_mode(UNS16 mode){	/* mode : '0' disable, '1' enable, default is '0' */        rx_id = RxID(GID_DV, 0x00, PID_DV_DINT_EN, W_FLAG);        write_parm(rx_id, mode);}void field_repeat_output_mode(UNS16 mode){	/* mode : '0' disable, '1' enable, default is '0' */        rx_id = RxID(GID_DV, 0x00, PID_DV_FLD_RPT, W_FLAG);        write_parm(rx_id, mode);}void vbi_encod_mode(UNS16 mode){	/* mode : '0' off, '1' AT204xE VBI mode, default is '0' */        rx_id = RxID(GID_DV, 0x00, PID_DV_VBI_MODE, W_FLAG);        write_parm(rx_id, mode);}void colorbar_mode(UNS16 mode){	/* mode : '0' off, '1' on, default is '0' */        rx_id = RxID(GID_DV, 0x00, PID_DV_COLOR_BAR, W_FLAG);        write_parm(rx_id, mode);}void borderline_mode(UNS16 mode){	/* mode : '0' off, '1' on, default is '0' */        rx_id = RxID(GID_DV, 0x00, PID_DV_BL_EN, W_FLAG);        write_parm(rx_id, mode);}void borderline_color(UNS16 Y, UNS16 Cb, UNS16 Cr){	/* Y : default is 128	 * Cb : default is 128	 * Cr : default is 128	 */        rx_id = RxID(GID_DV, 0x00, PID_DV_BL_COLOR, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Y);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Cb);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Cr);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void background_color_display_mode(UNS16 mode){	/* mode : '0' off, '1' on, default is '0' */        rx_id = RxID(GID_DV, 0x00, PID_DV_BC_EN, W_FLAG);        write_parm(rx_id, mode);}void background_color(UNS16 Y, UNS16 Cb, UNS16 Cr){	/* Y : this value * 4, default is 32	 * Cb : this value * 8, default is 16	 * Cr : this value * 8, default is 16	 */        rx_id = RxID(GID_DV, 0x00, PID_DV_BC_COLOR, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Y);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Cb);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Cr);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void foreground_video_window(UNS16 h_start_position, UNS16 v_start_position, 	UNS16 h_end_position, UNS16 v_end_position){	/* h_start_position : horizontal start position (pixel unit), default is 20	 * v_start_position : vertical start position (2-line unit), default is 10	 * h_end_position   : horizontal end position ( pixel unit), defualt is 700	 * v_end_position   : vertical end position (2-line unit), default is 230	 */        rx_id = RxID(GID_DV, 0x00, PID_DV_FG_WINDOW, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &h_start_position);        ioctl(fd_at2041, WRITE_Rx_FIFO, &v_start_position);        ioctl(fd_at2041, WRITE_Rx_FIFO, &h_end_position);        ioctl(fd_at2041, WRITE_Rx_FIFO, &v_end_position);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void background_image_download_start(void){        rx_id = RxID(GID_DV, 0x00, PID_DV_BI_DN_STT, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void background_image_download_finish(void){        rx_id = RxID(GID_DV, 0x00, PID_DV_BI_DN_FIN, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void background_image_cpature(void){        rx_id = RxID(GID_DV, 0x00, PID_DV_BI_CAP, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void background_image_display_mode(UNS16 mode){	/* mode : 	 *        '0' background image display mode	 *        '1' input video monitor mode	 *        default is '0'	 */        rx_id = RxID(GID_DV, 0x00, PID_DV_BI_MODE, W_FLAG);        write_parm(rx_id, mode);}void monitor_channel_id(UNS16 ch_id){	/* this is valid only if the background image display mode is '2' */        rx_id = RxID(GID_DV, 0x00, PID_DV_BI_MCID, W_FLAG);        write_parm(rx_id, ch_id);}// 2005.10.21 pentamicrovoid background_color_mode1(UNS16 Y, UNS16 Cb, UNS16 Cr){	/* Y : this value 	 * Cb : this value 	 * Cr : this value	 */        rx_id = RxID(GID_DV, 0x00, PID_DV_BC_COLOR_MODE1, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Y);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Cb);        ioctl(fd_at2041, WRITE_Rx_FIFO, &Cr);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void apply_next_param(UNS16 ch_id){	/* The 'apply next param' parameter should be set after 	*  'next display offset' parameter [GID=9, PID=0x12] and 	*  'next display mode' parameter [GID=9, PID=0x14] 	*  are set 	*/        rx_id = RxID(GID_DV, 0x00, PID_DV_APLY_PRM, W_FLAG);        write_parm(rx_id, ch_id);}void step_mode(UNS16 mode){	/* mode : '0' FWD, '1' BWD */        rx_id = RxID(GID_DV, 0x00, PID_DV_STEP, W_FLAG);        write_parm(rx_id, mode);}/* Decoder video channel parameters */void decode_standard(UNS16 ch_id, UNS16 standard){	/* ch_id    : channel ID	 * standard : '0' JPEG, '1' MPEG1, '2' MPEG2, '3' H.263, '4' MPEG4	 *            default is '4'	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_STD, W_FLAG);        write_parm(rx_id, standard);}void set_vid_stream_id(UNS16 ch_id, UNS16 ID){	/* ch_id : channel ID	 * ID    : default is 0	 *        - Stream ID : If the input stream format is PES or PS then 0 ~ 15	 *        - PID       : If the input stream format is not TS then 0x0010 ~ 0x1FFE	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_STR_ID, W_FLAG);        write_parm(rx_id, ID);}void freeze(UNS16 ch_id, UNS16 mode){	/* ch_id : channel ID	 * mode  : '0' off, '1' on, default is '0'	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_FREEZE, W_FLAG);        write_parm(rx_id, mode);}void display(UNS16 ch_id, UNS16 mode){	/* ch_id : channel ID	 * mode  : '0' off, '1' on, default is '0'	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_DISP, W_FLAG);        write_parm(rx_id, mode);}void display_priority(UNS16 ch_id, UNS16 mode){	rx_id= RxID(GID_DVC, ch_id, PID_DVC_DISP_PRIORITY, W_FLAG);	write_parm(rx_id, mode);}void scale_down_mode(UNS16 ch_id, UNS16 hscale, UNS16 vscale){	/* ch_id : channel ID	 * hscale : horizontal scale-down mode, default is '0'	 *          '0' 1, '1' 1/2, '2' 1/3, '3' 1/4, '4' 2/3	 * vscale : vertical scale-down mode, default is '0'	 *          '0' 1, '1' 1/2, '2' 1/3, '3' 1/4, '4' 2/3	 */	rx_id = RxID(GID_DVC, ch_id, PID_DVC_SCL_DN, W_FLAG);	ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);      ioctl(fd_at2041, WRITE_Rx_FIFO, &hscale);      ioctl(fd_at2041, WRITE_Rx_FIFO, &vscale);      ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void display_offset(UNS16 ch_id, UNS16 hoffset, UNS16 voffset){	/* ch_id : channel ID	 * hoffset : horizontal offset(16-pel unit), default is '0'	 * voffset : vertical offset(16-line unit), default is '0'	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_MB_OFF, W_FLAG);	  ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &hoffset);        ioctl(fd_at2041, WRITE_Rx_FIFO, &voffset);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void next_display_offset(UNS16 ch_id, UNS16 hoffset, UNS16 voffset){	/* ch_id : channel ID	 * hoffset : horizontal offset(16-pel unit), default is '0'	 * voffset : vertical offset(16-line unit), default is '0'	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_NXT_MB_OFF, W_FLAG);	  ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &hoffset);        ioctl(fd_at2041, WRITE_Rx_FIFO, &voffset);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void display_mode(UNS16 ch_id, UNS16 hscale, UNS16 vscale){	/* ch_id : channel ID	 * hscale : horizontal scale-down mode, default is '0'	 *          '0' org, '1' full_D1, '2' 2/3, '3' 1/2, '4' 1/3, '5' 1/4	 * vscale : vertical scale-down mode, default is '0'	 *          '0' org, '1' full_D1, '2' 2/3, '3' 1/2, '4' 1/3, '5' 1/4	 */	rx_id = RxID(GID_DVC, ch_id, PID_DVC_DISP_MODE, W_FLAG);	ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);      ioctl(fd_at2041, WRITE_Rx_FIFO, &hscale);      ioctl(fd_at2041, WRITE_Rx_FIFO, &vscale);      ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void next_display_mode(UNS16 ch_id, UNS16 hscale, UNS16 vscale){	/* ch_id : channel ID	 * hscale : horizontal scale-down mode, default is '0'	 *          '0' org, '1' full_D1, '2' 2/3, '3' 1/2, '4' 1/3, '5' 1/4	 * vscale : vertical scale-down mode, default is '0'	 *          '0' org, '1' full_D1, '2' 2/3, '3' 1/2, '4' 1/3, '5' 1/4	 */	rx_id = RxID(GID_DVC, ch_id, PID_DVC_NXT_DISP_MODE, W_FLAG);	ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);      ioctl(fd_at2041, WRITE_Rx_FIFO, &hscale);      ioctl(fd_at2041, WRITE_Rx_FIFO, &vscale);      ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void eq_mode(UNS16 ch_id, UNS16 mode){	/* ch_id : channel ID	 * mode : '0' off, '1' on, default is '0'	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_EQ_ON, W_FLAG);        write_parm(rx_id, mode);}void set_eq_parameter(UNS16 ch_id, UNS16 eq_strength, UNS16 iir_strength){	/* This is valid only if EQ is on	 * ch_id : channel ID	 * eq_strength  : '0'(weak) ~ '3'(strong), default is '3'	 * iir_strength : '0'(weak) ~ '3'(strong), default is '0'	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_EQ_PARM, W_FLAG);		ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &eq_strength);        ioctl(fd_at2041, WRITE_Rx_FIFO, &iir_strength);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void enhancement_mode(UNS16 ch_id, UNS16 mode){	/* ch_id : channel ID	 * mode : '0' off, '1' on, default is '0'	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_ENH_ON, W_FLAG);        write_parm(rx_id, mode);}void brightness(UNS16 ch_id, UNS16 value){	/* ch_id : channel ID	 * value : DC offset value = (this value - 128)	 *         default is 128	 */        rx_id = RxID(GID_DVC, ch_id, PID_DVC_BRIGHT, W_FLAG);        write_parm(rx_id, value);}/* Decoder audio parameters */void audio_decode_standard(UNS16 standard){	/* standard : '0' PCM, '1' ADPCM, '2' MPEG-1 layer 2, '3' MPEG-1 layer 3, '9' ADPCM-STEREO	 *            default is '1'	 */        rx_id = RxID(GID_DA, 0x00, PID_DA_STD, W_FLAG);        ioctl(fd_at2041, WRITE_Rx_FIFO, &rx_id);        ioctl(fd_at2041, WRITE_Rx_FIFO, &standard);        ioctl(fd_at2041, END_OF_WRITE_Rx_FIFO);}void set_aud_stream_id(UNS16 ID){	/* ID    : default is 0	 *        - Stream ID : If the input stream format is PES or PS then 0 ~ 15	 *        - PID       : If the input stream format is not TS then 0x0010 ~ 0x1FFE	 */        rx_id = RxID(GID_DA, 0x00, PID_DA_STR_ID, W_FLAG);        write_parm(rx_id, ID);}void audio_output_format(UNS16 format, UNS16 bits, UNS16 delay_mode){	/* format : audio output format	 *          '0' I2S mode, '1' left justified mode, '2' u-Law PCM mode, '3' a-Law PCM mode, '4' linear PCM mode,	 *           default is '2'

⌨️ 快捷键说明

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