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

📄 cim_parm.h

📁 LX 800 WindowsCE 6.0 BSP
💻 H
📖 第 1 页 / 共 3 页
字号:

#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 + -