📄 videodev2.h
字号:
{ __u32 x; __u32 y; __u32 width; __u32 height; __u32 reserved;};/* * A N A L O G V I D E O S T A N D A R D */struct v4l2_standard{ __u8 name[24]; struct { __u32 numerator; __u32 denominator; /* >= 1 */ } framerate; /* Frames, not fields */ __u32 framelines; __u32 reserved1; __u32 colorstandard; union { struct { __u32 colorsubcarrier; /* Hz */ } pal; struct { __u32 colorsubcarrier; /* Hz */ } ntsc; struct { __u32 f0b; /* Hz (blue) */ __u32 f0r; /* Hz (red) */ } secam; __u8 reserved[12]; } colorstandard_data; __u32 transmission; /* Bit field. Must be zero for non-modulators/demodulators. */ __u32 reserved2; /* Must be set to zero */};/* Values for the 'colorstandard' field */#define V4L2_COLOR_STD_PAL 1#define V4L2_COLOR_STD_NTSC 2#define V4L2_COLOR_STD_SECAM 3/* Values for the color subcarrier fields */#define V4L2_COLOR_SUBC_PAL 4433619 /* PAL BGHI, NTSC-44 */#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 port; __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 ) */struct v4l2_vbi_format{ __u32 sampling_rate; /* in 1 Hz */ __u32 reserved1; /* must be zero */ __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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -