00001 #ifndef __LINUX_VIDEODEV2_H
00002 #define __LINUX_VIDEODEV2_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #define v4l2_fourcc(a,b,c,d)\
00022 (((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))
00023
00024
00025
00026
00027 enum v4l2_field {
00028 V4L2_FIELD_ANY = 0,
00029
00030
00031
00032 V4L2_FIELD_NONE = 1,
00033 V4L2_FIELD_TOP = 2,
00034 V4L2_FIELD_BOTTOM = 3,
00035 V4L2_FIELD_INTERLACED = 4,
00036 V4L2_FIELD_SEQ_TB = 5,
00037
00038 V4L2_FIELD_SEQ_BT = 6,
00039 V4L2_FIELD_ALTERNATE = 7
00040
00041 };
00042 #define V4L2_FIELD_HAS_TOP(field) \
00043 ((field) == V4L2_FIELD_TOP ||\
00044 (field) == V4L2_FIELD_INTERLACED ||\
00045 (field) == V4L2_FIELD_SEQ_TB ||\
00046 (field) == V4L2_FIELD_SEQ_BT)
00047 #define V4L2_FIELD_HAS_BOTTOM(field) \
00048 ((field) == V4L2_FIELD_BOTTOM ||\
00049 (field) == V4L2_FIELD_INTERLACED ||\
00050 (field) == V4L2_FIELD_SEQ_TB ||\
00051 (field) == V4L2_FIELD_SEQ_BT)
00052 #define V4L2_FIELD_HAS_BOTH(field) \
00053 ((field) == V4L2_FIELD_INTERLACED ||\
00054 (field) == V4L2_FIELD_SEQ_TB ||\
00055 (field) == V4L2_FIELD_SEQ_BT)
00056
00057 enum v4l2_buf_type {
00058 V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
00059 V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
00060 V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
00061 V4L2_BUF_TYPE_VBI_CAPTURE = 4,
00062 V4L2_BUF_TYPE_VBI_OUTPUT = 5,
00063 V4L2_BUF_TYPE_PRIVATE = 0x80
00064 };
00065
00066 enum v4l2_ctrl_type {
00067 V4L2_CTRL_TYPE_INTEGER = 1,
00068 V4L2_CTRL_TYPE_BOOLEAN = 2,
00069 V4L2_CTRL_TYPE_MENU = 3,
00070 V4L2_CTRL_TYPE_BUTTON = 4
00071 };
00072
00073 enum v4l2_tuner_type {
00074 V4L2_TUNER_RADIO = 1,
00075 V4L2_TUNER_ANALOG_TV = 2
00076 };
00077
00078 enum v4l2_memory {
00079 V4L2_MEMORY_MMAP = 1,
00080 V4L2_MEMORY_USERPTR = 2,
00081 V4L2_MEMORY_OVERLAY = 3
00082 };
00083
00084
00085 enum v4l2_colorspace {
00086
00087 V4L2_COLORSPACE_SMPTE170M = 1,
00088
00089
00090 V4L2_COLORSPACE_SMPTE240M = 2,
00091
00092
00093 V4L2_COLORSPACE_REC709 = 3,
00094
00095
00096 V4L2_COLORSPACE_BT878 = 4,
00097
00098
00099 V4L2_COLORSPACE_470_SYSTEM_M = 5,
00100 V4L2_COLORSPACE_470_SYSTEM_BG = 6,
00101
00102
00103
00104
00105
00106 V4L2_COLORSPACE_JPEG = 7,
00107
00108
00109 V4L2_COLORSPACE_SRGB = 8
00110 };
00111
00112 enum v4l2_priority {
00113 V4L2_PRIORITY_UNSET = 0,
00114 V4L2_PRIORITY_BACKGROUND = 1,
00115 V4L2_PRIORITY_INTERACTIVE = 2,
00116 V4L2_PRIORITY_RECORD = 3,
00117 V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE
00118 };
00119
00120 struct v4l2_rect {
00121 __s32 left;
00122 __s32 top;
00123 __s32 width;
00124 __s32 height;
00125 };
00126
00127 struct v4l2_fract {
00128 __u32 numerator;
00129 __u32 denominator;
00130 };
00131
00132
00133
00134
00135 struct v4l2_capability
00136 {
00137 __u8 driver[16];
00138 __u8 card[32];
00139 __u8 bus_info[32];
00140 __u32 version;
00141 __u32 capabilities;
00142 __u32 reserved[4];
00143 };
00144
00145
00146 #define V4L2_CAP_VIDEO_CAPTURE 0x00000001
00147 #define V4L2_CAP_VIDEO_OUTPUT 0x00000002
00148 #define V4L2_CAP_VIDEO_OVERLAY 0x00000004
00149 #define V4L2_CAP_VBI_CAPTURE 0x00000010
00150 #define V4L2_CAP_VBI_OUTPUT 0x00000020
00151 #define V4L2_CAP_RDS_CAPTURE 0x00000100
00152
00153 #define V4L2_CAP_TUNER 0x00010000
00154 #define V4L2_CAP_AUDIO 0x00020000
00155 #define V4L2_CAP_RADIO 0x00040000
00156
00157 #define V4L2_CAP_READWRITE 0x01000000
00158 #define V4L2_CAP_ASYNCIO 0x02000000
00159 #define V4L2_CAP_STREAMING 0x04000000
00160
00161
00162
00163
00164
00165 struct v4l2_pix_format
00166 {
00167 __u32 width;
00168 __u32 height;
00169 __u32 pixelformat;
00170 enum v4l2_field field;
00171 __u32 bytesperline;
00172 __u32 sizeimage;
00173 enum v4l2_colorspace colorspace;
00174 __u32 priv;
00175 };
00176
00177
00178 #define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R','G','B','1')
00179 #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R','G','B','O')
00180 #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R','G','B','P')
00181 #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R','G','B','Q')
00182 #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R','G','B','R')
00183 #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B','G','R','3')
00184 #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R','G','B','3')
00185 #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B','G','R','4')
00186 #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R','G','B','4')
00187 #define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y')
00188 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y','V','U','9')
00189 #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2')
00190 #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y','U','Y','V')
00191 #define V4L2_PIX_FMT_UYVY v4l2_fourcc('U','Y','V','Y')
00192 #define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4','2','2','P')
00193 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4','1','1','P')
00194 #define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y','4','1','P')
00195
00196
00197 #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N','V','1','2')
00198 #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N','V','2','1')
00199
00200
00201 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y','U','V','9')
00202 #define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y','U','1','2')
00203 #define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y','Y','U','V')
00204 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H','I','2','4')
00205
00206
00207 #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1')
00208
00209
00210 #define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M','J','P','G')
00211 #define V4L2_PIX_FMT_JPEG v4l2_fourcc('J','P','E','G')
00212 #define V4L2_PIX_FMT_DV v4l2_fourcc('d','v','s','d')
00213 #define V4L2_PIX_FMT_MPEG v4l2_fourcc('M','P','E','G')
00214
00215
00216 #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W','N','V','A')
00217
00218
00219
00220
00221 struct v4l2_fmtdesc
00222 {
00223 __u32 index;
00224 enum v4l2_buf_type type;
00225 __u32 flags;
00226 __u8 description[32];
00227 __u32 pixelformat;
00228 __u32 reserved[4];
00229 };
00230
00231 #define V4L2_FMT_FLAG_COMPRESSED 0x0001
00232
00233
00234
00235
00236
00237 struct v4l2_timecode
00238 {
00239 __u32 type;
00240 __u32 flags;
00241 __u8 frames;
00242 __u8 seconds;
00243 __u8 minutes;
00244 __u8 hours;
00245 __u8 userbits[4];
00246 };
00247
00248
00249 #define V4L2_TC_TYPE_24FPS 1
00250 #define V4L2_TC_TYPE_25FPS 2
00251 #define V4L2_TC_TYPE_30FPS 3
00252 #define V4L2_TC_TYPE_50FPS 4
00253 #define V4L2_TC_TYPE_60FPS 5
00254
00255
00256 #define V4L2_TC_FLAG_DROPFRAME 0x0001
00257 #define V4L2_TC_FLAG_COLORFRAME 0x0002
00258 #define V4L2_TC_USERBITS_field 0x000C
00259 #define V4L2_TC_USERBITS_USERDEFINED 0x0000
00260 #define V4L2_TC_USERBITS_8BITCHARS 0x0008
00261
00262
00263
00264
00265
00266
00267 #if 0
00268
00269
00270
00271 struct v4l2_compression
00272 {
00273 __u32 quality;
00274 __u32 keyframerate;
00275 __u32 pframerate;
00276 __u32 reserved[5];
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322 };
00323 #endif
00324
00325 struct v4l2_jpegcompression
00326 {
00327 int quality;
00328
00329 int APPn;
00330
00331 int APP_len;
00332 char APP_data[60];
00333
00334 int COM_len;
00335 char COM_data[60];
00336
00337 __u32 jpeg_markers;
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347 #define V4L2_JPEG_MARKER_DHT (1<<3)
00348 #define V4L2_JPEG_MARKER_DQT (1<<4)
00349 #define V4L2_JPEG_MARKER_DRI (1<<5)
00350 #define V4L2_JPEG_MARKER_COM (1<<6)
00351 #define V4L2_JPEG_MARKER_APP (1<<7)
00352
00353 };
00354
00355
00356
00357
00358
00359 struct v4l2_requestbuffers
00360 {
00361 __u32 count;
00362 enum v4l2_buf_type type;
00363 enum v4l2_memory memory;
00364 __u32 reserved[2];
00365 };
00366
00367 struct v4l2_buffer
00368 {
00369 __u32 index;
00370 enum v4l2_buf_type type;
00371 __u32 bytesused;
00372 __u32 flags;
00373 enum v4l2_field field;
00374 struct timeval timestamp;
00375 struct v4l2_timecode timecode;
00376 __u32 sequence;
00377
00378
00379 enum v4l2_memory memory;
00380 union {
00381 __u32 offset;
00382 unsigned long userptr;
00383 } m;
00384 __u32 length;
00385 __u32 input;
00386 __u32 reserved;
00387 };
00388
00389
00390 #define V4L2_BUF_FLAG_MAPPED 0x0001
00391 #define V4L2_BUF_FLAG_QUEUED 0x0002
00392 #define V4L2_BUF_FLAG_DONE 0x0004
00393 #define V4L2_BUF_FLAG_KEYFRAME 0x0008
00394 #define V4L2_BUF_FLAG_PFRAME 0x0010
00395 #define V4L2_BUF_FLAG_BFRAME 0x0020
00396 #define V4L2_BUF_FLAG_TIMECODE 0x0100
00397 #define V4L2_BUF_FLAG_INPUT 0x0200
00398
00399
00400
00401
00402 struct v4l2_framebuffer
00403 {
00404 __u32 capability;
00405 __u32 flags;
00406
00407
00408 void* base;
00409 struct v4l2_pix_format fmt;
00410 };
00411
00412 #define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001
00413 #define V4L2_FBUF_CAP_CHROMAKEY 0x0002
00414 #define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004
00415 #define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008
00416
00417 #define V4L2_FBUF_FLAG_PRIMARY 0x0001
00418 #define V4L2_FBUF_FLAG_OVERLAY 0x0002
00419 #define V4L2_FBUF_FLAG_CHROMAKEY 0x0004
00420
00421 struct v4l2_clip
00422 {
00423 struct v4l2_rect c;
00424 struct v4l2_clip *next;
00425 };
00426
00427 struct v4l2_window
00428 {
00429 struct v4l2_rect w;
00430 enum v4l2_field field;
00431 __u32 chromakey;
00432 struct v4l2_clip *clips;
00433 __u32 clipcount;
00434 void *bitmap;
00435 };
00436
00437
00438
00439
00440
00441 struct v4l2_captureparm
00442 {
00443 __u32 capability;
00444 __u32 capturemode;
00445 struct v4l2_fract timeperframe;
00446 __u32 extendedmode;
00447 __u32 readbuffers;
00448 __u32 reserved[4];
00449 };
00450
00451 #define V4L2_MODE_HIGHQUALITY 0x0001
00452 #define V4L2_CAP_TIMEPERFRAME 0x1000
00453
00454 struct v4l2_outputparm
00455 {
00456 __u32 capability;
00457 __u32 outputmode;
00458 struct v4l2_fract timeperframe;
00459 __u32 extendedmode;
00460 __u32 writebuffers;
00461 __u32 reserved[4];
00462 };
00463
00464
00465
00466
00467
00468 struct v4l2_cropcap {
00469 enum v4l2_buf_type type;
00470 struct v4l2_rect bounds;
00471 struct v4l2_rect defrect;
00472 struct v4l2_fract pixelaspect;
00473 };
00474
00475 struct v4l2_crop {
00476 enum v4l2_buf_type type;
00477 struct v4l2_rect c;
00478 };
00479
00480
00481
00482
00483
00484 typedef __u64 v4l2_std_id;
00485
00486
00487 #define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001)
00488 #define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002)
00489 #define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004)
00490 #define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008)
00491 #define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010)
00492 #define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020)
00493 #define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040)
00494 #define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080)
00495
00496 #define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100)
00497 #define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200)
00498 #define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400)
00499 #define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800)
00500
00501 #define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000)
00502 #define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000)
00503
00504 #define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000)
00505 #define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000)
00506 #define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000)
00507 #define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000)
00508 #define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000)
00509 #define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000)
00510 #define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000)
00511
00512
00513 #define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000)
00514 #define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000)
00515
00516
00517 #define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\
00518 V4L2_STD_PAL_B1 |\
00519 V4L2_STD_PAL_G)
00520 #define V4L2_STD_PAL_DK (V4L2_STD_PAL_D |\
00521 V4L2_STD_PAL_D1 |\
00522 V4L2_STD_PAL_K)
00523 #define V4L2_STD_PAL (V4L2_STD_PAL_BG |\
00524 V4L2_STD_PAL_DK |\
00525 V4L2_STD_PAL_H |\
00526 V4L2_STD_PAL_I)
00527 #define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\
00528 V4L2_STD_NTSC_M_JP)
00529 #define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
00530 V4L2_STD_SECAM_K |\
00531 V4L2_STD_SECAM_K1)
00532 #define V4L2_STD_SECAM (V4L2_STD_SECAM_B |\
00533 V4L2_STD_SECAM_G |\
00534 V4L2_STD_SECAM_H |\
00535 V4L2_STD_SECAM_DK |\
00536 V4L2_STD_SECAM_L)
00537
00538 #define V4L2_STD_525_60 (V4L2_STD_PAL_M |\
00539 V4L2_STD_PAL_60 |\
00540 V4L2_STD_NTSC)
00541 #define V4L2_STD_625_50 (V4L2_STD_PAL |\
00542 V4L2_STD_PAL_N |\
00543 V4L2_STD_PAL_Nc |\
00544 V4L2_STD_SECAM)
00545 #define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB |\
00546 V4L2_STD_ATSC_16_VSB)
00547
00548 #define V4L2_STD_UNKNOWN 0
00549 #define V4L2_STD_ALL (V4L2_STD_525_60 |\
00550 V4L2_STD_625_50)
00551
00552 struct v4l2_standard
00553 {
00554 __u32 index;
00555 v4l2_std_id id;
00556 __u8 name[24];
00557 struct v4l2_fract frameperiod;
00558 __u32 framelines;
00559 __u32 reserved[4];
00560 };
00561
00562
00563
00564
00565
00566 struct v4l2_input
00567 {
00568 __u32 index;
00569 __u8 name[32];
00570 __u32 type;
00571 __u32 audioset;
00572 __u32 tuner;
00573 v4l2_std_id std;
00574 __u32 status;
00575 __u32 reserved[4];
00576 };
00577
00578 #define V4L2_INPUT_TYPE_TUNER 1
00579 #define V4L2_INPUT_TYPE_CAMERA 2
00580
00581
00582 #define V4L2_IN_ST_NO_POWER 0x00000001
00583 #define V4L2_IN_ST_NO_SIGNAL 0x00000002
00584 #define V4L2_IN_ST_NO_COLOR 0x00000004
00585
00586
00587 #define V4L2_IN_ST_NO_H_LOCK 0x00000100
00588 #define V4L2_IN_ST_COLOR_KILL 0x00000200
00589
00590
00591 #define V4L2_IN_ST_NO_SYNC 0x00010000
00592 #define V4L2_IN_ST_NO_EQU 0x00020000
00593 #define V4L2_IN_ST_NO_CARRIER 0x00040000
00594
00595
00596 #define V4L2_IN_ST_MACROVISION 0x01000000
00597 #define V4L2_IN_ST_NO_ACCESS 0x02000000
00598 #define V4L2_IN_ST_VTR 0x04000000
00599
00600
00601
00602
00603 struct v4l2_output
00604 {
00605 __u32 index;
00606 __u8 name[32];
00607 __u32 type;
00608 __u32 audioset;
00609 __u32 modulator;
00610 v4l2_std_id std;
00611 __u32 reserved[4];
00612 };
00613
00614 #define V4L2_OUTPUT_TYPE_MODULATOR 1
00615 #define V4L2_OUTPUT_TYPE_ANALOG 2
00616 #define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3
00617
00618
00619
00620
00621 struct v4l2_control
00622 {
00623 __u32 id;
00624 __s32 value;
00625 };
00626
00627
00628 struct v4l2_queryctrl
00629 {
00630 __u32 id;
00631 enum v4l2_ctrl_type type;
00632 __u8 name[32];
00633 __s32 minimum;
00634 __s32 maximum;
00635 __s32 step;
00636 __s32 default_value;
00637 __u32 flags;
00638 __u32 reserved[2];
00639 };
00640
00641
00642 struct v4l2_querymenu
00643 {
00644 __u32 id;
00645 __u32 index;
00646 __u8 name[32];
00647 __u32 reserved;
00648 };
00649
00650
00651 #define V4L2_CTRL_FLAG_DISABLED 0x0001
00652 #define V4L2_CTRL_FLAG_GRABBED 0x0002
00653
00654
00655 #define V4L2_CID_BASE 0x00980900
00656
00657 #define V4L2_CID_PRIVATE_BASE 0x08000000
00658
00659 #define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
00660 #define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
00661 #define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
00662 #define V4L2_CID_HUE (V4L2_CID_BASE+3)
00663 #define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5)
00664 #define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6)
00665 #define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7)
00666 #define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8)
00667 #define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9)
00668 #define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10)
00669 #define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11)
00670 #define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12)
00671 #define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13)
00672 #define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14)
00673 #define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15)
00674 #define V4L2_CID_GAMMA (V4L2_CID_BASE+16)
00675 #define V4L2_CID_WHITENESS (V4L2_CID_GAMMA)
00676 #define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17)
00677 #define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18)
00678 #define V4L2_CID_GAIN (V4L2_CID_BASE+19)
00679 #define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
00680 #define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
00681 #define V4L2_CID_HCENTER (V4L2_CID_BASE+22)
00682 #define V4L2_CID_VCENTER (V4L2_CID_BASE+23)
00683 #define V4L2_CID_LASTP1 (V4L2_CID_BASE+24)
00684
00685
00686
00687
00688 struct v4l2_tuner
00689 {
00690 __u32 index;
00691 __u8 name[32];
00692 enum v4l2_tuner_type type;
00693 __u32 capability;
00694 __u32 rangelow;
00695 __u32 rangehigh;
00696 __u32 rxsubchans;
00697 __u32 audmode;
00698 __s32 signal;
00699 __s32 afc;
00700 __u32 reserved[4];
00701 };
00702
00703 struct v4l2_modulator
00704 {
00705 __u32 index;
00706 __u8 name[32];
00707 __u32 capability;
00708 __u32 rangelow;
00709 __u32 rangehigh;
00710 __u32 txsubchans;
00711 __u32 reserved[4];
00712 };
00713
00714
00715 #define V4L2_TUNER_CAP_LOW 0x0001
00716 #define V4L2_TUNER_CAP_NORM 0x0002
00717 #define V4L2_TUNER_CAP_STEREO 0x0010
00718 #define V4L2_TUNER_CAP_LANG2 0x0020
00719 #define V4L2_TUNER_CAP_SAP 0x0020
00720 #define V4L2_TUNER_CAP_LANG1 0x0040
00721
00722
00723 #define V4L2_TUNER_SUB_MONO 0x0001
00724 #define V4L2_TUNER_SUB_STEREO 0x0002
00725 #define V4L2_TUNER_SUB_LANG2 0x0004
00726 #define V4L2_TUNER_SUB_SAP 0x0004
00727 #define V4L2_TUNER_SUB_LANG1 0x0008
00728
00729
00730 #define V4L2_TUNER_MODE_MONO 0x0000
00731 #define V4L2_TUNER_MODE_STEREO 0x0001
00732 #define V4L2_TUNER_MODE_LANG2 0x0002
00733 #define V4L2_TUNER_MODE_SAP 0x0002
00734 #define V4L2_TUNER_MODE_LANG1 0x0003
00735
00736 struct v4l2_frequency
00737 {
00738 __u32 tuner;
00739 enum v4l2_tuner_type type;
00740 __u32 frequency;
00741 __u32 reserved[8];
00742 };
00743
00744
00745
00746
00747 struct v4l2_audio
00748 {
00749 __u32 index;
00750 __u8 name[32];
00751 __u32 capability;
00752 __u32 mode;
00753 __u32 reserved[2];
00754 };
00755
00756 #define V4L2_AUDCAP_STEREO 0x00001
00757 #define V4L2_AUDCAP_AVL 0x00002
00758
00759
00760 #define V4L2_AUDMODE_AVL 0x00001
00761
00762 struct v4l2_audioout
00763 {
00764 __u32 index;
00765 __u8 name[32];
00766 __u32 capability;
00767 __u32 mode;
00768 __u32 reserved[2];
00769 };
00770
00771
00772
00773
00774
00775
00776
00777 struct v4l2_vbi_format
00778 {
00779 __u32 sampling_rate;
00780 __u32 offset;
00781 __u32 samples_per_line;
00782 __u32 sample_format;
00783 __s32 start[2];
00784 __u32 count[2];
00785 __u32 flags;
00786 __u32 reserved[2];
00787 };
00788
00789
00790 #define V4L2_VBI_UNSYNC (1<< 0)
00791 #define V4L2_VBI_INTERLACED (1<< 1)
00792
00793
00794
00795
00796
00797
00798
00799
00800 struct v4l2_format
00801 {
00802 enum v4l2_buf_type type;
00803 union
00804 {
00805 struct v4l2_pix_format pix;
00806 struct v4l2_window win;
00807 struct v4l2_vbi_format vbi;
00808 __u8 raw_data[200];
00809 } fmt;
00810 };
00811
00812
00813
00814
00815 struct v4l2_streamparm
00816 {
00817 enum v4l2_buf_type type;
00818 union
00819 {
00820 struct v4l2_captureparm capture;
00821 struct v4l2_outputparm output;
00822 __u8 raw_data[200];
00823 } parm;
00824 };
00825
00826
00827
00828
00829
00830
00831
00832 #define VIDIOC_QUERYCAP _IOR ('V', 0, struct v4l2_capability)
00833 #define VIDIOC_RESERVED _IO ('V', 1)
00834 #define VIDIOC_ENUM_FMT _IOWR ('V', 2, struct v4l2_fmtdesc)
00835 #define VIDIOC_G_FMT _IOWR ('V', 4, struct v4l2_format)
00836 #define VIDIOC_S_FMT _IOWR ('V', 5, struct v4l2_format)
00837 #if 0
00838 #define VIDIOC_G_COMP _IOR ('V', 6, struct v4l2_compression)
00839 #define VIDIOC_S_COMP _IOW ('V', 7, struct v4l2_compression)
00840 #endif
00841 #define VIDIOC_REQBUFS _IOWR ('V', 8, struct v4l2_requestbuffers)
00842 #define VIDIOC_QUERYBUF _IOWR ('V', 9, struct v4l2_buffer)
00843 #define VIDIOC_G_FBUF _IOR ('V', 10, struct v4l2_framebuffer)
00844 #define VIDIOC_S_FBUF _IOW ('V', 11, struct v4l2_framebuffer)
00845 #define VIDIOC_OVERLAY _IOW ('V', 14, int)
00846 #define VIDIOC_QBUF _IOWR ('V', 15, struct v4l2_buffer)
00847 #define VIDIOC_DQBUF _IOWR ('V', 17, struct v4l2_buffer)
00848 #define VIDIOC_STREAMON _IOW ('V', 18, int)
00849 #define VIDIOC_STREAMOFF _IOW ('V', 19, int)
00850 #define VIDIOC_G_PARM _IOWR ('V', 21, struct v4l2_streamparm)
00851 #define VIDIOC_S_PARM _IOWR ('V', 22, struct v4l2_streamparm)
00852 #define VIDIOC_G_STD _IOR ('V', 23, v4l2_std_id)
00853 #define VIDIOC_S_STD _IOW ('V', 24, v4l2_std_id)
00854 #define VIDIOC_ENUMSTD _IOWR ('V', 25, struct v4l2_standard)
00855 #define VIDIOC_ENUMINPUT _IOWR ('V', 26, struct v4l2_input)
00856 #define VIDIOC_G_CTRL _IOWR ('V', 27, struct v4l2_control)
00857 #define VIDIOC_S_CTRL _IOWR ('V', 28, struct v4l2_control)
00858 #define VIDIOC_G_TUNER _IOWR ('V', 29, struct v4l2_tuner)
00859 #define VIDIOC_S_TUNER _IOW ('V', 30, struct v4l2_tuner)
00860 #define VIDIOC_G_AUDIO _IOR ('V', 33, struct v4l2_audio)
00861 #define VIDIOC_S_AUDIO _IOW ('V', 34, struct v4l2_audio)
00862 #define VIDIOC_QUERYCTRL _IOWR ('V', 36, struct v4l2_queryctrl)
00863 #define VIDIOC_QUERYMENU _IOWR ('V', 37, struct v4l2_querymenu)
00864 #define VIDIOC_G_INPUT _IOR ('V', 38, int)
00865 #define VIDIOC_S_INPUT _IOWR ('V', 39, int)
00866 #define VIDIOC_G_OUTPUT _IOR ('V', 46, int)
00867 #define VIDIOC_S_OUTPUT _IOWR ('V', 47, int)
00868 #define VIDIOC_ENUMOUTPUT _IOWR ('V', 48, struct v4l2_output)
00869 #define VIDIOC_G_AUDOUT _IOR ('V', 49, struct v4l2_audioout)
00870 #define VIDIOC_S_AUDOUT _IOW ('V', 50, struct v4l2_audioout)
00871 #define VIDIOC_G_MODULATOR _IOWR ('V', 54, struct v4l2_modulator)
00872 #define VIDIOC_S_MODULATOR _IOW ('V', 55, struct v4l2_modulator)
00873 #define VIDIOC_G_FREQUENCY _IOWR ('V', 56, struct v4l2_frequency)
00874 #define VIDIOC_S_FREQUENCY _IOW ('V', 57, struct v4l2_frequency)
00875 #define VIDIOC_CROPCAP _IOWR ('V', 58, struct v4l2_cropcap)
00876 #define VIDIOC_G_CROP _IOWR ('V', 59, struct v4l2_crop)
00877 #define VIDIOC_S_CROP _IOW ('V', 60, struct v4l2_crop)
00878 #define VIDIOC_G_JPEGCOMP _IOR ('V', 61, struct v4l2_jpegcompression)
00879 #define VIDIOC_S_JPEGCOMP _IOW ('V', 62, struct v4l2_jpegcompression)
00880 #define VIDIOC_QUERYSTD _IOR ('V', 63, v4l2_std_id)
00881 #define VIDIOC_TRY_FMT _IOWR ('V', 64, struct v4l2_format)
00882 #define VIDIOC_ENUMAUDIO _IOWR ('V', 65, struct v4l2_audio)
00883 #define VIDIOC_ENUMAUDOUT _IOWR ('V', 66, struct v4l2_audioout)
00884 #define VIDIOC_G_PRIORITY _IOR ('V', 67, enum v4l2_priority)
00885 #define VIDIOC_S_PRIORITY _IOW ('V', 68, enum v4l2_priority)
00886
00887
00888 #define VIDIOC_OVERLAY_OLD _IOWR ('V', 14, int)
00889 #define VIDIOC_S_PARM_OLD _IOW ('V', 22, struct v4l2_streamparm)
00890 #define VIDIOC_S_CTRL_OLD _IOW ('V', 28, struct v4l2_control)
00891 #define VIDIOC_G_AUDIO_OLD _IOWR ('V', 33, struct v4l2_audio)
00892 #define VIDIOC_G_AUDOUT_OLD _IOWR ('V', 49, struct v4l2_audioout)
00893 #define VIDIOC_CROPCAP_OLD _IOR ('V', 58, struct v4l2_cropcap)
00894
00895 #define BASE_VIDIOC_PRIVATE 192
00896
00897 #endif
00898
00899
00900
00901
00902
00903