📄 videodev2.h
字号:
V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7, V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8, V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9, V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10, V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11, V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13,};#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)enum v4l2_mpeg_audio_l2_bitrate { V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0, V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1, V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2, V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3, V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4, V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5, V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6, V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7, V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8, V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9, V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10, V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11, V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13,};#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)enum v4l2_mpeg_audio_l3_bitrate { V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2, V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3, V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4, V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5, V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6, V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7, V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8, V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9, V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10, V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11, V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13,};#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)enum v4l2_mpeg_audio_mode { V4L2_MPEG_AUDIO_MODE_STEREO = 0, V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, V4L2_MPEG_AUDIO_MODE_DUAL = 2, V4L2_MPEG_AUDIO_MODE_MONO = 3,};#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)enum v4l2_mpeg_audio_mode_extension { V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3,};#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)enum v4l2_mpeg_audio_emphasis { V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2,};#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)enum v4l2_mpeg_audio_crc { V4L2_MPEG_AUDIO_CRC_NONE = 0, V4L2_MPEG_AUDIO_CRC_CRC16 = 1,};/* MPEG video */#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)enum v4l2_mpeg_video_encoding { V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,};#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)enum v4l2_mpeg_video_aspect { V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, V4L2_MPEG_VIDEO_ASPECT_221x100 = 3,};#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)enum v4l2_mpeg_video_bitrate_mode { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1,};#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209)/* MPEG-class control IDs specific to the CX2584x driver as defined by V4L2 */#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1,};#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0, V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2, V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3, V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4,};#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0, V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,};#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)enum v4l2_mpeg_cx2341x_video_temporal_filter_mode { V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1,};#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)enum v4l2_mpeg_cx2341x_video_median_filter_type { V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0, V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1, V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2, V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4,};#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9)#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)/* * 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];};/* * 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];};/* * 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)#if 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];};#endif/* * 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#if 1 struct v4l2_sliced_vbi_format sliced; // V4L2_BUF_TYPE_SLICED_VBI_CAPTURE#endif __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;};/* * 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)#if 1#define VIDIOC_G_SLICED_VBI_CAP _IOWR ('V', 69, struct v4l2_sliced_vbi_cap)#endif#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#define VIDIOC_ENUM_FRAMESIZES _IOWR ('V', 74, struct v4l2_frmsizeenum)#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR ('V', 75, struct v4l2_frmivalenum)#endif#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 *//* * Local variables: * c-basic-offset: 8 * End: */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -