📄 videodev2.h
字号:
#define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4)#define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5)#define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6)#define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7)#define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8)#define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9)#define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10)#define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11)#define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12)/* * T U N I N G */struct v4l2_tuner { __u32 index; __u8 name[32]; enum v4l2_tuner_type type; __u32 capability; __u32 rangelow; __u32 rangehigh; __u32 rxsubchans; __u32 audmode; __s32 signal; __s32 afc; __u32 reserved[4];};struct v4l2_modulator { __u32 index; __u8 name[32]; __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 0x0003#define V4L2_TUNER_MODE_LANG1_LANG2 0x0004struct v4l2_frequency { __u32 tuner; enum v4l2_tuner_type type; __u32 frequency; __u32 reserved[8];};struct v4l2_hw_freq_seek { __u32 tuner; enum v4l2_tuner_type type; __u32 seek_upward; __u32 wrap_around; __u32 reserved[8];};/* * A U D I O */struct v4l2_audio { __u32 index; __u8 name[32]; __u32 capability; __u32 mode; __u32 reserved[2];};/* Flags for the 'capability' field */#define V4L2_AUDCAP_STEREO 0x00001#define V4L2_AUDCAP_AVL 0x00002/* Flags for the 'mode' field */#define V4L2_AUDMODE_AVL 0x00001struct v4l2_audioout { __u32 index; __u8 name[32]; __u32 capability; __u32 mode; __u32 reserved[2];};/* * M P E G S E R V I C E S * * NOTE: EXPERIMENTAL API */#if 1 /*KEEP*/#define V4L2_ENC_IDX_FRAME_I (0)#define V4L2_ENC_IDX_FRAME_P (1)#define V4L2_ENC_IDX_FRAME_B (2)#define V4L2_ENC_IDX_FRAME_MASK (0xf)struct v4l2_enc_idx_entry { __u64 offset; __u64 pts; __u32 length; __u32 flags; __u32 reserved[2];};#define V4L2_ENC_IDX_ENTRIES (64)struct v4l2_enc_idx { __u32 entries; __u32 entries_cap; __u32 reserved[4]; struct v4l2_enc_idx_entry entry[V4L2_ENC_IDX_ENTRIES];};#define V4L2_ENC_CMD_START (0)#define V4L2_ENC_CMD_STOP (1)#define V4L2_ENC_CMD_PAUSE (2)#define V4L2_ENC_CMD_RESUME (3)/* Flags for V4L2_ENC_CMD_STOP */#define V4L2_ENC_CMD_STOP_AT_GOP_END (1 << 0)struct v4l2_encoder_cmd { __u32 cmd; __u32 flags; union { struct { __u32 data[8]; } raw; };};#endif/* * D A T A S E R V I C E S ( V B I ) * * Data services API by Michael Schimek *//* Raw VBI */struct v4l2_vbi_format { __u32 sampling_rate; /* in 1 Hz */ __u32 offset; __u32 samples_per_line; __u32 sample_format; /* V4L2_PIX_FMT_* */ __s32 start[2]; __u32 count[2]; __u32 flags; /* V4L2_VBI_* */ __u32 reserved[2]; /* must be zero */};/* VBI flags */#define V4L2_VBI_UNSYNC (1 << 0)#define V4L2_VBI_INTERLACED (1 << 1)/* Sliced VBI * * This implements is a proposal V4L2 API to allow SLICED VBI * required for some hardware encoders. It should change without * notice in the definitive implementation. */struct v4l2_sliced_vbi_format { __u16 service_set; /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field (equals frame lines 313-336 for 625 line video standards, 263-286 for 525 line standards) */ __u16 service_lines[2][24]; __u32 io_size; __u32 reserved[2]; /* must be zero */};/* Teletext World System Teletext (WST), defined on ITU-R BT.653-2 */#define V4L2_SLICED_TELETEXT_B (0x0001)/* Video Program System, defined on ETS 300 231*/#define V4L2_SLICED_VPS (0x0400)/* Closed Caption, defined on EIA-608 */#define V4L2_SLICED_CAPTION_525 (0x1000)/* Wide Screen System, defined on ITU-R BT1119.1 */#define V4L2_SLICED_WSS_625 (0x4000)#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525)#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)struct v4l2_sliced_vbi_cap { __u16 service_set; /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field (equals frame lines 313-336 for 625 line video standards, 263-286 for 525 line standards) */ __u16 service_lines[2][24]; enum v4l2_buf_type type; __u32 reserved[3]; /* must be 0 */};struct v4l2_sliced_vbi_data { __u32 id; __u32 field; /* 0: first field, 1: second field */ __u32 line; /* 1-23 */ __u32 reserved; /* must be 0 */ __u8 data[48];};/* * 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 { enum v4l2_buf_type type; union { struct v4l2_pix_format pix; /* V4L2_BUF_TYPE_VIDEO_CAPTURE */ struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */ struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ __u8 raw_data[200]; /* user-defined */ } fmt;};/* Stream type-dependent parameters */struct v4l2_streamparm { enum v4l2_buf_type type; union { struct v4l2_captureparm capture; struct v4l2_outputparm output; __u8 raw_data[200]; /* user-defined */ } parm;};/* * A D V A N C E D D E B U G G I N G * * NOTE: EXPERIMENTAL API *//* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */#define V4L2_CHIP_MATCH_HOST 0 /* Match against chip ID on host (0 for the host) */#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver ID */#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */struct v4l2_register { __u32 match_type; /* Match type */ __u32 match_chip; /* Match this chip, meaning determined by match_type */ __u64 reg; __u64 val;};/* VIDIOC_G_CHIP_IDENT */struct v4l2_chip_ident { __u32 match_type; /* Match type */ __u32 match_chip; /* Match this chip, meaning determined by match_type */ __u32 ident; /* chip identifier as specified in <media/v4l2-chip-ident.h> */ __u32 revision; /* chip revision, chip specific */};/* * 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_FMT _IOWR('V', 2, 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_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_OVERLAY _IOW('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_PARM _IOWR('V', 21, struct v4l2_streamparm)#define VIDIOC_S_PARM _IOWR('V', 22, struct v4l2_streamparm)#define VIDIOC_G_STD _IOR('V', 23, v4l2_std_id)#define VIDIOC_S_STD _IOW('V', 24, v4l2_std_id)#define VIDIOC_ENUMSTD _IOWR('V', 25, struct v4l2_standard)#define VIDIOC_ENUMINPUT _IOWR('V', 26, struct v4l2_input)#define VIDIOC_G_CTRL _IOWR('V', 27, struct v4l2_control)#define VIDIOC_S_CTRL _IOWR('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_AUDIO _IOR('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_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 _IOR('V', 49, struct v4l2_audioout)#define VIDIOC_S_AUDOUT _IOW('V', 50, struct v4l2_audioout)#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_CROPCAP _IOWR('V', 58, struct v4l2_cropcap)#define VIDIOC_G_CROP _IOWR('V', 59, struct v4l2_crop)#define VIDIOC_S_CROP _IOW('V', 60, struct v4l2_crop)#define VIDIOC_G_JPEGCOMP _IOR('V', 61, struct v4l2_jpegcompression)#define VIDIOC_S_JPEGCOMP _IOW('V', 62, struct v4l2_jpegcompression)#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id)#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format)#define VIDIOC_ENUMAUDIO _IOWR('V', 65, struct v4l2_audio)#define VIDIOC_ENUMAUDOUT _IOWR('V', 66, struct v4l2_audioout)#define VIDIOC_G_PRIORITY _IOR('V', 67, enum v4l2_priority)#define VIDIOC_S_PRIORITY _IOW('V', 68, enum v4l2_priority)#define VIDIOC_G_SLICED_VBI_CAP _IOWR('V', 69, struct v4l2_sliced_vbi_cap)#define VIDIOC_LOG_STATUS _IO('V', 70)#define VIDIOC_G_EXT_CTRLS _IOWR('V', 71, struct v4l2_ext_controls)#define VIDIOC_S_EXT_CTRLS _IOWR('V', 72, struct v4l2_ext_controls)#define VIDIOC_TRY_EXT_CTRLS _IOWR('V', 73, struct v4l2_ext_controls)#if 1 /*KEEP*/#define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct v4l2_frmsizeenum)#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum)#define VIDIOC_G_ENC_INDEX _IOR('V', 76, struct v4l2_enc_idx)#define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd)#define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd)/* Experimental, only implemented if CONFIG_VIDEO_ADV_DEBUG is defined */#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_register)#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_register)#define VIDIOC_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_chip_ident)#endif#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)#ifdef __OLD_VIDIOC_/* for compatibility, will go away some day */#define VIDIOC_OVERLAY_OLD _IOWR('V', 14, int)#define VIDIOC_S_PARM_OLD _IOW('V', 22, struct v4l2_streamparm)#define VIDIOC_S_CTRL_OLD _IOW('V', 28, struct v4l2_control)#define VIDIOC_G_AUDIO_OLD _IOWR('V', 33, struct v4l2_audio)#define VIDIOC_G_AUDOUT_OLD _IOWR('V', 49, struct v4l2_audioout)#define VIDIOC_CROPCAP_OLD _IOR('V', 58, struct v4l2_cropcap)#endif#define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */#endif /* __LINUX_VIDEODEV2_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -