📄 cim_parm.h
字号:
#define VIP_ENABLE_TASKA 0x00000100
#define VIP_ENABLE_TASKA_VBI 0x00000200
#define VIP_ENABLE_TASKB 0x00000400
#define VIP_ENABLE_TASKB_VBI 0x00000800
#define VIP_ENABLE_ANCILLARY 0x00001000
#define VIP_ENABLE_ALL 0x00001F00
/* VIP CAPTURE MODE FLAGS */
#define VIP_MODE_IDLE 0x00000000
#define VIP_MODE_VIP2_8BIT 0x00000002
#define VIP_MODE_VIP2_16BIT 0x00000004
#define VIP_MODE_VIP1_8BIT 0x00000006
#define VIP_MODE_MSG 0x00000008
#define VIP_MODE_DATA 0x0000000A
#define VIP_MODE_8BIT601 0x0000000C
#define VIP_MODE_16BIT601 0x0000000E
/* 4:2:0 PLANAR CAPTURE METHODS */
#define VIP_420CAPTURE_EVERYLINE 0x00000001
#define VIP_420CAPTURE_ALTERNATINGLINES 0x00000002
#define VIP_420CAPTURE_ALTERNATINGFIELDS 0x00000003
typedef struct _TAG_SETMODEBUFFER
{
unsigned long flags;
unsigned long stream_enables;
unsigned long operating_mode;
unsigned long planar_capture;
VIP_601PARAMS vip601_settings;
} VIPSETMODEBUFFER;
/*-----------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VG/VIP GENLOCK */
/*-----------------------------------------------*/
/* LOSS OF VIDEO DETECTION FLAGS */
#define VIP_VDE_RUNAWAY_LINE 0x00800000
#define VIP_VDE_VERTICAL_TIMING 0x00400000
#define VIP_VDE_CLOCKS_PER_LINE 0x00200000
#define VIP_VDE_LOST_CLOCK 0x00100000
/* VIP VSYNC SELECT FOR THE VG */
#define VIP_VGSYNC_NONE 0x00000000
#define VIP_VGSYNC_START_FRAME 0x00000001
#define VIP_VGSYNC_FALLING_EDGE_VBLANK 0x00000002
#define VIP_VGSYNC_RISING_EDGE_VBLANK 0x00000003
#define VIP_VGSYNC_FALLING_EDGE_FIELD 0x00000004
#define VIP_VGSYNC_RISING_EDGE_FIELD 0x00000005
#define VIP_VGSYNC_VIP_CURRENT_LINE 0x00000006
#define VIP_VGSYNC_MSG_INT 0x00000007
/* VIP FIELD SELECT FOR THE VG */
#define VIP_VGFIELD_INPUT 0x00000000
#define VIP_VGFIELD_INPUT_INV 0x00000008
#define VIP_VGFIELD_ACTIVE_PAGE 0x00000010
#define VIP_VGFIELD_ACTIVE_PAGE_IN 0x00000018
/*--------------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING THE VG VSYNC GENLOCK */
/*--------------------------------------------------------*/
typedef struct _TAG_GENLOCKBUFFER
{
unsigned long vip_signal_loss;
unsigned long vsync_to_vg;
unsigned long field_to_vg;
unsigned long genlock_skew;
int enable_timeout;
} VIPGENLOCKBUFFER;
/*------------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VIP ANCILLARY CAPTURE */
/*------------------------------------------------------*/
typedef struct _TAG_ANCILLARYBUFFER
{
unsigned long msg1_base;
unsigned long msg2_base;
unsigned long msg_size;
} VIPANCILLARYBUFFER;
/*----------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VIP CAPTURE BUFFERS */
/*----------------------------------------------------*/
#define VIP_INPUTFLAG_VBI 0x00000001
#define VIP_INPUTFLAG_INVERTPOLARITY 0x00000002
#define VIP_INPUTFLAG_PLANAR 0x00000004
#define VIP_MAX_BUFFERS 10
#define VIP_BUFFER_TASK_A 0x0000
#define VIP_BUFFER_TASK_B 0x0001
#define VIP_BUFFER_MAX_TASKS 0x0002
#define VIP_BUFFER_A 0x0000
#define VIP_BUFFER_B 0x0001
#define VIP_BUFFER_ANC 0x0002
#define VIP_BUFFER_MSG 0x0003
#define VIP_BUFFER_601 0x0004
#define VIP_BUFFER_A_ODD 0x0005
#define VIP_BUFFER_A_EVEN 0x0006
#define VIP_BUFFER_B_ODD 0x0007
#define VIP_BUFFER_B_EVEN 0x0008
typedef struct _TAG_INPUTBUFFER_ADDR
{
unsigned long even_base[VIP_MAX_BUFFERS];
unsigned long odd_base[VIP_MAX_BUFFERS];
unsigned long y_pitch;
unsigned long uv_pitch;
unsigned long odd_uoffset;
unsigned long odd_voffset;
unsigned long even_uoffset;
unsigned long even_voffset;
unsigned long vbi_even_base;
unsigned long vbi_odd_base;
} VIPINPUTBUFFER_ADDR;
typedef struct _TAG_SETINPUTBUFFER
{
unsigned long flags;
VIPINPUTBUFFER_ADDR offsets[VIP_BUFFER_MAX_TASKS];
unsigned long current_buffer;
VIPANCILLARYBUFFER ancillaryData;
} VIPINPUTBUFFER;
/*------------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VIP SUBWINDOW CAPTURE */
/*------------------------------------------------------*/
typedef struct _TAG_SUBWINDOWBUFFER
{
int enable;
unsigned long start;
unsigned long stop;
} VIPSUBWINDOWBUFFER;
/*--------------------------------------------------------*/
/* USER STRUCTURE FOR SAVING/RESTORING VIP REGISTERS */
/*--------------------------------------------------------*/
typedef struct _TAG_VIPSTATEBUFFER
{
unsigned long control1;
unsigned long control2;
unsigned long vip_int;
unsigned long current_target;
unsigned long max_address;
unsigned long taska_evenbase;
unsigned long taska_oddbase;
unsigned long taska_vbi_evenbase;
unsigned long taska_vbi_oddbase;
unsigned long taska_data_pitch;
unsigned long control3;
unsigned long taska_v_oddoffset;
unsigned long taska_u_oddoffset;
unsigned long taskb_evenbase;
unsigned long taskb_oddbase;
unsigned long taskb_vbi_evenbase;
unsigned long taskb_vbi_oddbase;
unsigned long taskb_pitch;
unsigned long taskb_voffset;
unsigned long taskb_uoffset;
unsigned long msg1_base;
unsigned long msg2_base;
unsigned long msg_size;
unsigned long page_offset;
unsigned long vert_start_stop;
unsigned long vsync_err_count;
unsigned long taska_u_evenoffset;
unsigned long taska_v_evenoffset;
Q_WORD msr_config;
Q_WORD msr_smi;
Q_WORD msr_pm;
Q_WORD msr_diag;
} VIPSTATEBUFFER;
/*--------------------------------------------------------*/
/* VIP_SET_CAPTURE_STATE USER PARAMETERS */
/*--------------------------------------------------------*/
#define VIP_STOPCAPTURE 0x0000
#define VIP_STOPCAPTUREATLINEEND 0x0001
#define VIP_STOPCAPTUREATFIELDEND 0x0002
#define VIP_STOPCAPTUREATFRAMEEND 0x0003
#define VIP_STARTCAPTUREATNEXTLINE 0x0004
#define VIP_STARTCAPTUREATNEXTFIELD 0x0005
#define VIP_STARTCAPTUREATNEXTFRAME 0x0006
#define VIP_STARTCAPTURE 0x0007
/*--------------------------------------------------------*/
/* VIP_CONFIGURE_FIFO USER PARAMETERS */
/*--------------------------------------------------------*/
#define VIP_VIDEOTHRESHOLD 0x3000
#define VIP_ANCILLARYTHRESHOLD 0x3001
#define VIP_VIDEOFLUSH 0x3002
#define VIP_ANCILLARYFLUSH 0x3003
/*--------------------------------------------------------*/
/* VIP_SET_INTERRUPT_ENABLE USER DEFINITIONS */
/*--------------------------------------------------------*/
#define VIP_INT_FIFO_ERROR 0x80000000
#define VIP_INT_FIFO_WRAP 0x40000000
#define VIP_INT_FIFO_OVERFLOW 0x20000000
#define VIP_INT_FIFO_THRESHOLD 0x10000000
#define VIP_INT_LONGLINE 0x08000000
#define VIP_INT_VERTICAL_TIMING 0x04000000
#define VIP_INT_ACTIVE_PIXELS 0x02000000
#define VIP_INT_CLOCK_INPUT 0x01000000
#define VIP_INT_ANC_CHECKSUM_PARITY 0x00800000
#define VIP_INT_MSG_BUFFER_FULL 0x00400000
#define VIP_INT_END_VBLANK 0x00200000
#define VIP_INT_START_VBLANK 0x00100000
#define VIP_INT_START_EVEN 0x00080000
#define VIP_INT_START_ODD 0x00040000
#define VIP_INT_LINE_MATCH_TARGET 0x00020000
#define VIP_ALL_INTERRUPTS 0xFFFE0000
/*--------------------------------------------------------*/
/* VIP_GET_CURRENT_FIELD RETURN VALUES */
/*--------------------------------------------------------*/
#define VIP_ODD_FIELD 1
#define VIP_EVEN_FIELD 0
/*-------------------------------------------------*/
/* USER STRUCTURE FOR QUERYING VIP CAPABILITIES */
/*-------------------------------------------------*/
typedef struct _TAG_CAPABILITIESBUFFER
{
unsigned long revision_id;
unsigned long device_id;
unsigned long n_clock_domains;
unsigned long n_smi_registers;
} VIPCAPABILITIESBUFFER;
/*-------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VIP POWER */
/*-------------------------------------------------*/
typedef struct _TAG_POWERBUFFER
{
int glink_clock_mode;
int vip_clock_mode;
} VIPPOWERBUFFER;
/*-------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VIP PRIORITIES */
/*-------------------------------------------------*/
typedef struct _TAG_PRIORITYBUFFER
{
unsigned long secondary;
unsigned long primary;
unsigned long pid;
} VIPPRIORITYBUFFER;
/*--------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VIP DEBUG OUTPUTS */
/*--------------------------------------------------*/
#define VIP_DIAG_UPPER_GLINK_MASTER 0x00010000
#define VIP_DIAG_UPPER_GLINK_SLAVE 0x00020000
#define VIP_DIAG_UPPER_GLINK_SLAVE_MMREG 0x00040000
#define VIP_DIAG_UPPER_Y_BUFFER 0x00080000
#define VIP_DIAG_UPPER_A_BUFFER 0x00100000
#define VIP_DIAG_UPPER_FIFO_OUTPUT 0x00200000
#define VIP_DIAG_UPPER_FIFO_INPUT 0x01000000
#define VIP_DIAG_UPPER_FORMATTER 0x02000000
#define VIP_DIAG_UPPER_INPUT_CONTROL 0x04000000
#define VIP_DIAG_LOWER_GLINK_MASTER 0x00000001
#define VIP_DIAG_LOWER_GLINK_SLAVE 0x00000002
#define VIP_DIAG_LOWER_GLINK_SLAVE_MMREG 0x00000004
#define VIP_DIAG_LOWER_Y_BUFFER 0x00000008
#define VIP_DIAG_LOWER_A_BUFFER 0x00000010
#define VIP_DIAG_LOWER_FIFO_OUTPUT 0x00000020
#define VIP_DIAG_LOWER_FIFO_INPUT 0x00000100
#define VIP_DIAG_LOWER_FORMATTER 0x00000200
#define VIP_DIAG_LOWER_INPUT_CONTROL 0x00000400
typedef struct _TAG_DEBUGBUFFER
{
unsigned long bist;
unsigned long enable_upper;
unsigned long select_upper;
unsigned long enable_lower;
unsigned long select_lower;
} VIPDEBUGBUFFER;
/*===================================================*/
/* VOP USER PARAMETER DEFINITIONS */
/*===================================================*/
/*------------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VBI CAPTURE */
/*------------------------------------------------------*/
typedef struct _TAG_VBIWINDOWBUFFER
{
long horz_start;
unsigned long vbi_width;
unsigned long odd_line_capture_mask;
unsigned long even_line_capture_mask;
unsigned long odd_line_offset;
unsigned long even_line_offset;
unsigned long even_address_offset;
unsigned long odd_address_offset;
unsigned long data_size;
unsigned long data_pitch;
int enable_upscale;
int horz_from_hsync;
} VOPVBIWINDOWBUFFER;
/*------------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING 601 FOR VOP */
/*------------------------------------------------------*/
#define VOP_601_INVERT_DISPE 0x00080000
#define VOP_601_INVERT_VSYNC 0x00040000
#define VOP_601_INVERT_HSYNC 0x00020000
#define VOP_VSYNC_EARLIER_BY4 0x00000000
#define VOP_VSYNC_EARLIER_BY2 0x00004000
#define VOP_VSYNC_NOSHIFT 0x00008000
#define VOP_VSYNC_LATER_BY_X 0x0000C000
#define VOP_601_YUV_8BIT 0x00000000
#define VOP_601_YUV_16BIT 0x00000001
#define VOP_601_RGB_8_8_8 0x00000002
#define VOP_601_YUV_4_4_4 0x00000003
typedef struct _TAG_VOP601
{
unsigned long flags;
unsigned long vsync_shift;
unsigned long vsync_shift_count;
unsigned long output_mode;
} VOP_601DATA;
/*------------------------------------------------------*/
/* USER STRUCTURE FOR CONFIGURING VOP OUTPUT */
/*------------------------------------------------------*/
/* VOP FLAGS */
#define VOP_FLAG_SINGLECHIPCOMPAT 0x00000001
#define VOP_FLAG_EXTENDEDSAV 0x00000002
#define VOP_FLAG_VBI 0x00000008
#define VOP_FLAG_TASK 0x00000010
#define VOP_FLAG_SWAP_UV 0x00000020
#define VOP_FLAG_SWAP_VBI 0x00000040
/* 4:4:2 TO 4:2:2 DECIMATION */
#define VOP_422MODE_COSITED 0x00000000
#define VOP_422MODE_INTERSPERSED 0x00000010
#define VOP_422MODE_ALTERNATING 0x00000020
/* VOP OPERATING MODES */
#define VOP_MODE_DISABLED 0x00000000
#define VOP_MODE_VIP11 0x00000001
#define VOP_MODE_CCIR656 0x00000002
#define VOP_MODE_VIP20_8BIT 0x00000003
#define VOP_MODE_VIP20_16BIT 0x00000004
#define VOP_MODE_601 0x00000005
/* VSYNC OUT SELECT FLAGS */
#define VOP_MB_SYNCSEL_DISABLED 0x00000000
#define VOP_MB_SYNCSEL_VG 0x00000020
#define VOP_MB_SYNCSEL_VG_INV 0x00000040
#define VOP_MB_SYNCSEL_STATREG17 0x00000060
#define VOP_MB_SYNCSEL_STATREG17_INV 0x00000080
typedef struct _TAG_VOPMODECONFIGURATIONBUFFER
{
unsigned long flags;
unsigned long mode;
unsigned long conversion_mode;
unsigned long vsync_out;
VOP_601DATA vop601;
} VOPCONFIGURATIONBUFFER;
/*--------------------------------------------------------*/
/* USER STRUCTURE FOR SAVING/RESTORING VOP REGISTERS */
/*--------------------------------------------------------*/
typedef struct _TAG_VOPSTATEBUFFER
{
unsigned long config;
} VOPSTATEBUFFER;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -