📄 hw_at2041_api.c
字号:
}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 + -