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

📄 videodev.h

📁 2440mmc-and-camera-linux-driver 2440mmc-and-camera-linux-driver
💻 H
📖 第 1 页 / 共 3 页
字号:
#define V4L2_COLOR_SUBC_PAL_M	3575611		/* PAL M (Brazil) */#define V4L2_COLOR_SUBC_PAL_N	3582056		/* PAL N */#define V4L2_COLOR_SUBC_NTSC	3579545		/* NTSC M, NTSC-Japan */#define V4L2_COLOR_SUBC_SECAMB	4250000		/* SECAM B - Y carrier */#define V4L2_COLOR_SUBC_SECAMR	4406250		/* SECAM R - Y carrier *//*  Flags for the 'transmission' field  */#define V4L2_TRANSM_STD_B		(1<<1)#define V4L2_TRANSM_STD_D		(1<<3)#define V4L2_TRANSM_STD_G		(1<<6)#define V4L2_TRANSM_STD_H		(1<<7)#define V4L2_TRANSM_STD_I		(1<<8)#define V4L2_TRANSM_STD_K		(1<<10)#define V4L2_TRANSM_STD_K1		(1<<11)#define V4L2_TRANSM_STD_L		(1<<12)#define V4L2_TRANSM_STD_M		(1<<13)#define V4L2_TRANSM_STD_N		(1<<14)/*  Used in the VIDIOC_ENUMSTD ioctl for querying supported standards  */struct v4l2_enumstd{	int			index;	struct v4l2_standard	std;	__u32			inputs;  /* set of inputs that */					 /* support this standard */	__u32			outputs; /* set of outputs that */					 /* support this standard */	__u32			reserved[2];};/* *	V I D E O   I N P U T S */struct v4l2_input{	int	index;		/*  Which input */	char	name[32];	/*  Label */	int	type;		/*  Type of input */	__u32	capability;	/*  Capability flags */	int	assoc_audio;	/*  Associated audio input */	__u32	reserved[4];};/*  Values for the 'type' field */#define V4L2_INPUT_TYPE_TUNER		1#define V4L2_INPUT_TYPE_CAMERA		2/*  Flags for the 'capability' field */#define V4L2_INPUT_CAP_AUDIO		0x0001	/* assoc_audio *//* *	V I D E O   O U T P U T S */struct v4l2_output{	int	index;		/*  Which output */	char	name[32];	/*  Label */	int	type;		/*  Type of output */	__u32	capability;	/*  Capability flags */	int	assoc_audio;	/*  Associated audio */	__u32	reserved[4];};/*  Values for the 'type' field */#define V4L2_OUTPUT_TYPE_MODULATOR		1#define V4L2_OUTPUT_TYPE_ANALOG			2#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY	3/*  Flags for the 'capability' field */#define V4L2_OUTPUT_CAP_AUDIO		0x0001	/* assoc_audio *//* *	C O N T R O L S */struct v4l2_control{	__u32		id;	int		value;};/*  Used in the VIDIOC_QUERYCTRL ioctl for querying controls */struct v4l2_queryctrl{	__u32		id;	__u8		name[32];	/* Whatever */	int		minimum;	/* Note signedness */	int		maximum;	unsigned int	step;	int		default_value;	__u32		type;	__u32		flags;	__u32		category;	/* Automatically filled in by V4L2 */	__u8		group[32];	/*   for pre-defined controls      */	__u32		reserved[2];};/*  Used in the VIDIOC_QUERYMENU ioctl for querying menu items */struct v4l2_querymenu{	__u32		id;	int		index;	__u8		name[32];	/* Whatever */	int		reserved;};/*  Used in V4L2_BUF_TYPE_FXCONTROL buffers  */struct v4l2_fxcontrol{	__u32	id;	__u32	value;};/*  Control types  */#define V4L2_CTRL_TYPE_INTEGER		0#define V4L2_CTRL_TYPE_BOOLEAN		1#define V4L2_CTRL_TYPE_MENU		2#define V4L2_CTRL_TYPE_BUTTON		3/*  Control flags  */#define V4L2_CTRL_FLAG_DISABLED		0x0001#define V4L2_CTRL_FLAG_GRABBED		0x0002/*  Control categories	*/#define V4L2_CTRL_CAT_VIDEO		1  /*  "Video"   */#define V4L2_CTRL_CAT_AUDIO		2  /*  "Audio"   */#define V4L2_CTRL_CAT_EFFECT		3  /*  "Effect"  *//*  Control IDs defined by V4L2 */#define V4L2_CID_BASE			0x00980900/*  IDs reserved for driver specific controls */#define V4L2_CID_PRIVATE_BASE		0x08000000/*  IDs reserved for effect-specific controls on effects devices  */#define V4L2_CID_EFFECT_BASE		0x0A00B000#define V4L2_CID_BRIGHTNESS		(V4L2_CID_BASE+0)#define V4L2_CID_CONTRAST		(V4L2_CID_BASE+1)#define V4L2_CID_SATURATION		(V4L2_CID_BASE+2)#define V4L2_CID_HUE			(V4L2_CID_BASE+3)#define V4L2_CID_AUDIO_VOLUME		(V4L2_CID_BASE+5)#define V4L2_CID_AUDIO_BALANCE		(V4L2_CID_BASE+6)#define V4L2_CID_AUDIO_BASS		(V4L2_CID_BASE+7)#define V4L2_CID_AUDIO_TREBLE		(V4L2_CID_BASE+8)#define V4L2_CID_AUDIO_MUTE		(V4L2_CID_BASE+9)#define V4L2_CID_AUDIO_LOUDNESS		(V4L2_CID_BASE+10)#define V4L2_CID_BLACK_LEVEL		(V4L2_CID_BASE+11)#define V4L2_CID_AUTO_WHITE_BALANCE	(V4L2_CID_BASE+12)#define V4L2_CID_DO_WHITE_BALANCE	(V4L2_CID_BASE+13)#define V4L2_CID_RED_BALANCE		(V4L2_CID_BASE+14)#define V4L2_CID_BLUE_BALANCE		(V4L2_CID_BASE+15)#define V4L2_CID_GAMMA			(V4L2_CID_BASE+16)#define V4L2_CID_WHITENESS		(V4L2_CID_GAMMA) /* ? Not sure */#define V4L2_CID_EXPOSURE		(V4L2_CID_BASE+17)#define V4L2_CID_AUTOGAIN		(V4L2_CID_BASE+18)#define V4L2_CID_GAIN			(V4L2_CID_BASE+19)#define V4L2_CID_HFLIP			(V4L2_CID_BASE+20)#define V4L2_CID_VFLIP			(V4L2_CID_BASE+21)#define V4L2_CID_HCENTER		(V4L2_CID_BASE+22)#define V4L2_CID_VCENTER		(V4L2_CID_BASE+23)#define V4L2_CID_LASTP1			(V4L2_CID_BASE+24) /* last CID + 1 *//*  Remember to change fill_ctrl_category() in videodev.c  *//* *	T U N I N G */struct v4l2_tuner{	int			input;	char			name[32];	struct v4l2_standard	std;	__u32			capability;	__u32			rangelow;	__u32			rangehigh;	__u32			rxsubchans;	__u32			audmode;	int			signal;	int			afc;	__u32			reserved[4];};struct v4l2_modulator{	int			output;	char			name[32];	struct v4l2_standard	std;	__u32			capability;	__u32			rangelow;	__u32			rangehigh;	__u32			txsubchans;	__u32			reserved[4];};/*  Flags for the 'capability' field */#define V4L2_TUNER_CAP_LOW		0x0001#define V4L2_TUNER_CAP_NORM		0x0002#define V4L2_TUNER_CAP_STEREO		0x0010#define V4L2_TUNER_CAP_LANG2		0x0020#define V4L2_TUNER_CAP_SAP		0x0020#define V4L2_TUNER_CAP_LANG1		0x0040/*  Flags for the 'rxsubchans' field */#define V4L2_TUNER_SUB_MONO		0x0001#define V4L2_TUNER_SUB_STEREO		0x0002#define V4L2_TUNER_SUB_LANG2		0x0004#define V4L2_TUNER_SUB_SAP		0x0004#define V4L2_TUNER_SUB_LANG1		0x0008/*  Values for the 'audmode' field */#define V4L2_TUNER_MODE_MONO		0x0000#define V4L2_TUNER_MODE_STEREO		0x0001#define V4L2_TUNER_MODE_LANG2		0x0002#define V4L2_TUNER_MODE_SAP		0x0002#define V4L2_TUNER_MODE_LANG1		0x0003struct v4l2_frequency{	int	input;	__u32	frequency;	__u32	reserved[2];};/* *	A U D I O */struct v4l2_audio{	int	audio;	char	name[32];	__u32	capability;	__u32	mode;	__u32	reserved[2];};/*  Flags for the 'capability' field */#define V4L2_AUDCAP_EFFECTS		0x0020#define V4L2_AUDCAP_LOUDNESS		0x0040#define V4L2_AUDCAP_AVL			0x0080/*  Flags for the 'mode' field */#define V4L2_AUDMODE_LOUDNESS		0x00002#define V4L2_AUDMODE_AVL		0x00004#define V4L2_AUDMODE_STEREO_field	0x0FF00#define V4L2_AUDMODE_STEREO_LINEAR	0x00100#define V4L2_AUDMODE_STEREO_PSEUDO	0x00200#define V4L2_AUDMODE_STEREO_SPATIAL30	0x00300#define V4L2_AUDMODE_STEREO_SPATIAL50	0x00400struct v4l2_audioout{	int	audio;	char	name[32];	__u32	capability;	__u32	mode;	__u32	reserved[2];};/* *	D A T A   S E R V I C E S   ( V B I ) * *	Data services API by Michael Schimek */struct v4l2_vbi_format{	__u32	sampling_rate;		/* in 1 Hz */	__u32	offset;	__u32	samples_per_line;	__u32	sample_format;		/* V4L2_VBI_SF_* */	__s32	start[2];	__u32	count[2];	__u32	flags;			/* V4L2_VBI_* */	__u32	reserved2;		/* must be zero */};/*  VBI sampling formats */#define V4L2_VBI_SF_UBYTE	1/*  VBI flags  */#define V4L2_VBI_UNSYNC		(1<< 0)#define V4L2_VBI_INTERLACED	(1<< 1)/* *	A G G R E G A T E   S T R U C T U R E S *//*	Stream data format */struct v4l2_format{	__u32	type;	union	{		struct v4l2_pix_format	pix;	/*  image format  */		struct v4l2_vbi_format	vbi;	/*  VBI data  */		/*  add more  */		__u8	raw_data[200];  /* user-defined */	} fmt;};/*	Stream type-dependent parameters */struct v4l2_streamparm{	__u32	type;	union	{		struct v4l2_captureparm	capture;		struct v4l2_outputparm	output;		/*  add more  */		__u8	raw_data[200];  /* user-defined */	} parm;};/* *	I O C T L   C O D E S   F O R   V I D E O   D E V I C E S * */#define VIDIOC_QUERYCAP		_IOR  ('V',  0, struct v4l2_capability)#define VIDIOC_RESERVED		_IO   ('V',  1)#define VIDIOC_ENUM_PIXFMT	_IOWR ('V',  2, struct v4l2_fmtdesc)#define VIDIOC_ENUM_FBUFFMT	_IOWR ('V',  3, struct v4l2_fmtdesc)#define VIDIOC_G_FMT		_IOWR ('V',  4, struct v4l2_format)#define VIDIOC_S_FMT		_IOWR ('V',  5, struct v4l2_format)#define VIDIOC_G_COMP		_IOR  ('V',  6, struct v4l2_compression)#define VIDIOC_S_COMP		_IOW  ('V',  7, struct v4l2_compression)#define VIDIOC_REQBUFS		_IOWR ('V',  8, struct v4l2_requestbuffers)#define VIDIOC_QUERYBUF		_IOWR ('V',  9, struct v4l2_buffer)#define VIDIOC_G_FBUF		_IOR  ('V', 10, struct v4l2_framebuffer)#define VIDIOC_S_FBUF		_IOW  ('V', 11, struct v4l2_framebuffer)#define VIDIOC_G_WIN		_IOR  ('V', 12, struct v4l2_window)#define VIDIOC_S_WIN		_IOW  ('V', 13, struct v4l2_window)#define VIDIOC_PREVIEW		_IOWR ('V', 14, int)#define VIDIOC_QBUF		_IOWR ('V', 15, struct v4l2_buffer)#define VIDIOC_DQBUF		_IOWR ('V', 17, struct v4l2_buffer)#define VIDIOC_STREAMON		_IOW  ('V', 18, int)#define VIDIOC_STREAMOFF	_IOW  ('V', 19, int)#define VIDIOC_G_PERF		_IOR  ('V', 20, struct v4l2_performance)#define VIDIOC_G_PARM		_IOWR ('V', 21, struct v4l2_streamparm)#define VIDIOC_S_PARM		_IOW  ('V', 22, struct v4l2_streamparm)#define VIDIOC_G_STD		_IOR  ('V', 23, struct v4l2_standard)#define VIDIOC_S_STD		_IOW  ('V', 24, struct v4l2_standard)#define VIDIOC_ENUMSTD		_IOWR ('V', 25, struct v4l2_enumstd)#define VIDIOC_ENUMINPUT	_IOWR ('V', 26, struct v4l2_input)#define VIDIOC_G_CTRL		_IOWR ('V', 27, struct v4l2_control)#define VIDIOC_S_CTRL		_IOW  ('V', 28, struct v4l2_control)#define VIDIOC_G_TUNER		_IOWR ('V', 29, struct v4l2_tuner)#define VIDIOC_S_TUNER		_IOW  ('V', 30, struct v4l2_tuner)#define VIDIOC_G_FREQ		_IOR  ('V', 31, int) /* depricated */#define VIDIOC_S_FREQ		_IOWR ('V', 32, int) /* depricated */#define VIDIOC_G_AUDIO		_IOWR ('V', 33, struct v4l2_audio)#define VIDIOC_S_AUDIO		_IOW  ('V', 34, struct v4l2_audio)#define VIDIOC_QUERYCTRL	_IOWR ('V', 36, struct v4l2_queryctrl)#define VIDIOC_QUERYMENU	_IOWR ('V', 37, struct v4l2_querymenu)#define VIDIOC_G_INPUT		_IOR  ('V', 38, int)#define VIDIOC_S_INPUT		_IOWR ('V', 39, int)#define VIDIOC_ENUMCVT		_IOWR ('V', 40, struct v4l2_cvtdesc)#define VIDIOC_G_OUTPUT		_IOR  ('V', 46, int)#define VIDIOC_S_OUTPUT		_IOWR ('V', 47, int)#define VIDIOC_ENUMOUTPUT	_IOWR ('V', 48, struct v4l2_output)#define VIDIOC_G_AUDOUT		_IOWR ('V', 49, struct v4l2_audioout)#define VIDIOC_S_AUDOUT		_IOW  ('V', 50, struct v4l2_audioout)#define VIDIOC_ENUMFX		_IOWR ('V', 51, struct v4l2_fxdesc)#define VIDIOC_G_EFFECT		_IOR  ('V', 52, int)#define VIDIOC_S_EFFECT		_IOWR ('V', 53, int)#define VIDIOC_G_MODULATOR	_IOWR ('V', 54, struct v4l2_modulator)#define VIDIOC_S_MODULATOR	_IOW  ('V', 55, struct v4l2_modulator)#define VIDIOC_G_FREQUENCY	_IOWR ('V', 56, struct v4l2_frequency)#define VIDIOC_S_FREQUENCY	_IOW  ('V', 57, struct v4l2_frequency)#define VIDIOC_ENUM_CAPFMT	VIDIOC_ENUM_PIXFMT#define VIDIOC_ENUM_OUTFMT	VIDIOC_ENUM_PIXFMT#define VIDIOC_ENUM_SRCFMT	VIDIOC_ENUM_PIXFMT#define VIDIOC_ENUMFMT		VIDIOC_ENUM_PIXFMT#define BASE_VIDIOC_PRIVATE	192		/* 192-255 are private */#ifdef __KERNEL__/* *	These things are used only by drivers. */extern int videodev_init(void);/* * *	V 4 L 2   D R I V E R   H E L P E R   A P I * *	Some commonly needed functions for drivers. */extern void v4l2_version(int *major, int *minor);extern int v4l2_major_number(void);/*  Memory management  */extern unsigned long v4l2_vmalloc_to_bus(void *virt);#if  LINUX_VERSION_CODE >= 0x020300extern struct page *v4l2_vmalloc_to_page(void *virt);#elseextern unsigned long v4l2_vmalloc_to_page(void *virt);#endif/*  Simple queue management  */struct v4l2_q_node{	struct v4l2_q_node 	*forw, *back;};struct v4l2_queue{	struct v4l2_q_node	*forw, *back;	rwlock_t		qlock;};extern void  v4l2_q_init(struct v4l2_queue *q);extern void  v4l2_q_add_head(struct v4l2_queue *q, struct v4l2_q_node *node);extern void  v4l2_q_add_tail(struct v4l2_queue *q, struct v4l2_q_node *node);extern void *v4l2_q_del_head(struct v4l2_queue *q);extern void *v4l2_q_del_tail(struct v4l2_queue *q);extern void *v4l2_q_peek_head(struct v4l2_queue *q);extern void *v4l2_q_peek_tail(struct v4l2_queue *q);extern void *v4l2_q_yank_node(struct v4l2_queue *q, struct v4l2_q_node *node);extern int   v4l2_q_last(struct v4l2_queue *q);/*  Math functions  */extern u32 v4l2_math_div6432(u64 a, u32 d, u32 *r);/*  Time functions  */extern unsigned long v4l2_timestamp_divide(stamp_t t,					   unsigned long p_100ns);extern unsigned long v4l2_timestamp_correct(stamp_t *t,					    unsigned long p_100ns);/*  Master Clock functions  */struct v4l2_clock{	void	(*gettime)(stamp_t *);};extern int  v4l2_masterclock_register(struct v4l2_clock *clock);extern void v4l2_masterclock_unregister(struct v4l2_clock *clock);extern void v4l2_masterclock_gettime(stamp_t *curr);/*  Video standard functions  */extern unsigned int v4l2_video_std_fps(struct v4l2_standard *vs);extern unsigned long v4l2_video_std_tpf(struct v4l2_standard *vs);extern int v4l2_video_std_confirm(struct v4l2_standard *vs);extern int v4l2_video_std_construct(struct v4l2_standard *vs,				    int id, __u32 transmission);#define V4L2_STD_PAL		1	/* PAL B, G, H, I (...) */#define V4L2_STD_PAL_M		5	/* (Brazil) */#define V4L2_STD_PAL_N		6	/* (Argentina, Paraguay, Uruguay) */#define V4L2_STD_PAL_60		10	/* PAL/NTSC hybrid */#define V4L2_STD_NTSC		11	/* NTSC M (USA, ...) */#define V4L2_STD_NTSC_N		12	/* (Barbados, Bolivia, Colombia, 					   S. Korea) */#define V4L2_STD_NTSC_44	15	/* PAL/NTSC hybrid */#define V4L2_STD_SECAM		21	/* SECAM B, D, G, K, K1 (...) *///#define V4L2_STD_SECAM_H	27	/* (Greece, Iran, Morocco) */ //#define V4L2_STD_SECAM_L	28	/* (France, Luxembourg, Monaco) *///#define V4L2_STD_SECAM_M	29	/* (Jamaica) *//* *	D E V I C E   D R I V E R   R E G I S T R A T I O N * */

⌨️ 快捷键说明

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