00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __LINUX_VIDEODEV_H
00013 #define __LINUX_VIDEODEV_H
00014
00015 #if (LINUX_VERSION_CODE >= 0x020300) && (LINUX_VERSION_CODE < 0x020400)
00016 #warning Due to the changes in the 2.3.x kernel series, this version of videodev.h \
00017 may not work correctly for your kernel.
00018 #endif
00019
00020 #include <linux/types.h>
00021 #include <linux/version.h>
00022
00023 #ifdef __KERNEL__
00024 #include <linux/poll.h>
00025 #if (LINUX_VERSION_CODE >= 0x020300) || defined(CONFIG_FS_DEVFS)
00026 #include <linux/devfs_fs_kernel.h>
00027 #endif
00028 #endif
00029
00030 #define V4L2_MAJOR_VERSION 0
00031 #define V4L2_MINOR_VERSION 20
00032
00033
00034
00035
00036
00037
00038
00039 #define v4l2_fourcc(a,b,c,d)\
00040 (((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24))
00041
00042
00043 #define O_NONCAP O_TRUNC
00044 #define O_NOIO O_TRUNC
00045
00046
00047 #ifndef STAMP_T
00048 #define STAMP_T
00049 typedef __s64 stamp_t;
00050 #endif
00051
00052
00053
00054
00055 struct v4l2_capability
00056 {
00057 char name[32];
00058 int type;
00059 int inputs;
00060 int outputs;
00061 int audios;
00062 int maxwidth;
00063 int maxheight;
00064 int minwidth;
00065 int minheight;
00066 int maxframerate;
00067 __u32 flags;
00068 __u32 reserved[4];
00069 };
00070
00071 #define V4L2_TYPE_CAPTURE 0
00072 #define V4L2_TYPE_CODEC 1
00073 #define V4L2_TYPE_OUTPUT 2
00074 #define V4L2_TYPE_FX 3
00075 #define V4L2_TYPE_VBI 4
00076 #define V4L2_TYPE_VTR 5
00077 #define V4L2_TYPE_VTX 6
00078 #define V4L2_TYPE_RADIO 7
00079 #define V4L2_TYPE_VBI_INPUT 4
00080 #define V4L2_TYPE_VBI_OUTPUT 9
00081 #define V4L2_TYPE_PRIVATE 1000
00082
00083 #define V4L2_FLAG_READ 0x00001
00084 #define V4L2_FLAG_WRITE 0x00002
00085 #define V4L2_FLAG_STREAMING 0x00004
00086 #define V4L2_FLAG_PREVIEW 0x00008
00087 #define V4L2_FLAG_SELECT 0x00010
00088 #define V4L2_FLAG_TUNER 0x00020
00089 #define V4L2_FLAG_MONOCHROME 0x00040
00090 #define V4L2_FLAG_DATA_SERVICE 0x00080
00091
00092
00093
00094
00095
00096 struct v4l2_pix_format
00097 {
00098 __u32 width;
00099 __u32 height;
00100 __u32 depth;
00101 __u32 pixelformat;
00102 __u32 flags;
00103 __u32 bytesperline;
00104 __u32 sizeimage;
00105 __u32 priv;
00106 };
00107
00108 #define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R','G','B','1')
00109 #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R','G','B','O')
00110 #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R','G','B','P')
00111 #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R','G','B','Q')
00112 #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R','G','B','R')
00113 #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B','G','R','3')
00114 #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R','G','B','3')
00115 #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B','G','R','4')
00116 #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R','G','B','4')
00117 #define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y')
00118 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y','V','U','9')
00119 #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2')
00120 #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y','U','Y','V')
00121 #define V4L2_PIX_FMT_YUY2 v4l2_fourcc('Y','U','Y','2')
00122 #define V4L2_PIX_FMT_UYVY v4l2_fourcc('U','Y','V','Y')
00123 #define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y','4','1','P')
00124 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y','U','V','9')
00125 #define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y','U','1','2')
00126 #define V4L2_PIX_FMT_YUV422P v4l2_fourcc('P','4','2','2')
00127 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('P','4','1','1')
00128 #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N','V','1','2')
00129
00130
00131 #define V4L2_PIX_FMT_YVU422P v4l2_fourcc('4','2','2','P')
00132 #define V4L2_PIX_FMT_YVU411P v4l2_fourcc('4','1','1','P')
00133 #define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y','Y','U','V')
00134 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H','I','2','4')
00135 #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N','V','2','1')
00136
00137
00138 #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W','N','V','A')
00139
00140
00141
00142 #define V4L2_FMT_FLAG_COMPRESSED 0x0001
00143 #define V4L2_FMT_FLAG_BYTESPERLINE 0x0002
00144 #define V4L2_FMT_FLAG_NOT_INTERLACED 0x0000
00145 #define V4L2_FMT_FLAG_INTERLACED 0x0004
00146 #define V4L2_FMT_FLAG_TOPFIELD 0x0008
00147 #define V4L2_FMT_FLAG_BOTFIELD 0x0010
00148 #define V4L2_FMT_FLAG_ODDFIELD V4L2_FMT_FLAG_TOPFIELD
00149 #define V4L2_FMT_FLAG_EVENFIELD V4L2_FMT_FLAG_BOTFIELD
00150 #define V4L2_FMT_FLAG_COMBINED V4L2_FMT_FLAG_INTERLACED
00151 #define V4L2_FMT_FLAG_FIELD_field 0x001C
00152 #define V4L2_FMT_CS_field 0xF000
00153 #define V4L2_FMT_CS_601YUV 0x1000
00154 #define V4L2_FMT_FLAG_SWCONVERSION 0x0800
00155
00156
00157
00158
00159
00160
00161
00162 struct v4l2_fmtdesc
00163 {
00164 int index;
00165 char description[32];
00166 __u32 pixelformat;
00167 __u32 flags;
00168 __u32 depth;
00169 __u32 reserved[2];
00170 };
00171
00172 struct v4l2_cvtdesc
00173 {
00174 int index;
00175 struct
00176 {
00177 __u32 pixelformat;
00178 __u32 flags;
00179 __u32 depth;
00180 __u32 reserved[2];
00181 } in, out;
00182 };
00183
00184 struct v4l2_fxdesc
00185 {
00186 int index;
00187 char name[32];
00188 __u32 flags;
00189 __u32 inputs;
00190 __u32 controls;
00191 __u32 reserved[2];
00192 };
00193
00194
00195
00196
00197
00198 struct v4l2_timecode
00199 {
00200 __u8 frames;
00201 __u8 seconds;
00202 __u8 minutes;
00203 __u8 hours;
00204 __u8 userbits[4];
00205 __u32 flags;
00206 __u32 type;
00207 };
00208
00209 #define V4L2_TC_TYPE_24FPS 1
00210 #define V4L2_TC_TYPE_25FPS 2
00211 #define V4L2_TC_TYPE_30FPS 3
00212 #define V4L2_TC_TYPE_50FPS 4
00213 #define V4L2_TC_TYPE_60FPS 5
00214
00215
00216
00217 #define V4L2_TC_FLAG_DROPFRAME 0x0001
00218 #define V4L2_TC_FLAG_COLORFRAME 0x0002
00219 #define V4L2_TC_USERBITS_field 0x000C
00220 #define V4L2_TC_USERBITS_USERDEFINED 0x0000
00221 #define V4L2_TC_USERBITS_8BITCHARS 0x0008
00222
00223
00224
00225
00226
00227
00228 struct v4l2_compression
00229 {
00230 int quality;
00231 int keyframerate;
00232 int pframerate;
00233 __u32 reserved[5];
00234 };
00235
00236
00237
00238
00239
00240 struct v4l2_requestbuffers
00241 {
00242 int count;
00243 __u32 type;
00244 __u32 reserved[2];
00245 };
00246 struct v4l2_buffer
00247 {
00248 int index;
00249 __u32 type;
00250 __u32 offset;
00251 __u32 length;
00252 __u32 bytesused;
00253 __u32 flags;
00254 stamp_t timestamp;
00255 struct v4l2_timecode timecode;
00256 __u32 sequence;
00257 __u32 reserved[3];
00258 };
00259
00260 #define V4L2_BUF_TYPE_field 0x00001FFF
00261 #define V4L2_BUF_TYPE_CAPTURE 0x00000001
00262 #define V4L2_BUF_TYPE_CODECIN 0x00000002
00263 #define V4L2_BUF_TYPE_CODECOUT 0x00000003
00264 #define V4L2_BUF_TYPE_EFFECTSIN 0x00000004
00265 #define V4L2_BUF_TYPE_EFFECTSIN2 0x00000005
00266 #define V4L2_BUF_TYPE_EFFECTSOUT 0x00000006
00267 #define V4L2_BUF_TYPE_VIDEOOUT 0x00000007
00268 #define V4L2_BUF_TYPE_FXCONTROL 0x00000008
00269 #define V4L2_BUF_TYPE_VBI 0x00000009
00270
00271
00272 #define V4L2_BUF_TYPE_PRIVATE 0x00001000
00273
00274 #define V4L2_BUF_ATTR_DEVICEMEM 0x00010000
00275
00276
00277 #define V4L2_BUF_REQ_field 0xF0000000
00278 #define V4L2_BUF_REQ_CONTIG 0x10000000
00279
00280
00281
00282
00283 #define V4L2_BUF_FLAG_MAPPED 0x0001
00284 #define V4L2_BUF_FLAG_QUEUED 0x0002
00285 #define V4L2_BUF_FLAG_DONE 0x0004
00286 #define V4L2_BUF_FLAG_KEYFRAME 0x0008
00287 #define V4L2_BUF_FLAG_PFRAME 0x0010
00288 #define V4L2_BUF_FLAG_BFRAME 0x0020
00289 #define V4L2_BUF_FLAG_TOPFIELD 0x0040
00290 #define V4L2_BUF_FLAG_BOTFIELD 0x0080
00291 #define V4L2_BUF_FLAG_ODDFIELD V4L2_BUF_FLAG_TOPFIELD
00292 #define V4L2_BUF_FLAG_EVENFIELD V4L2_BUF_FLAG_BOTFIELD
00293 #define V4L2_BUF_FLAG_TIMECODE 0x0100
00294
00295
00296
00297
00298 struct v4l2_framebuffer
00299 {
00300 __u32 capability;
00301 __u32 flags;
00302 void *base[3];
00303 struct v4l2_pix_format fmt;
00304 };
00305
00306 #define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001
00307 #define V4L2_FBUF_CAP_CHROMAKEY 0x0002
00308 #define V4L2_FBUF_CAP_CLIPPING 0x0004
00309 #define V4L2_FBUF_CAP_SCALEUP 0x0008
00310 #define V4L2_FBUF_CAP_SCALEDOWN 0x0010
00311 #define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0020
00312
00313 #define V4L2_FBUF_FLAG_PRIMARY 0x0001
00314 #define V4L2_FBUF_FLAG_OVERLAY 0x0002
00315 #define V4L2_FBUF_FLAG_CHROMAKEY 0x0004
00316
00317 struct v4l2_clip
00318 {
00319 int x;
00320 int y;
00321 int width;
00322 int height;
00323 struct v4l2_clip *next;
00324 };
00325 struct v4l2_window
00326 {
00327 int x;
00328 int y;
00329 int width;
00330 int height;
00331 __u32 chromakey;
00332 struct v4l2_clip *clips;
00333 int clipcount;
00334 void *bitmap;
00335 };
00336
00337
00338
00339
00340
00341 struct v4l2_performance
00342 {
00343 int frames;
00344 int framesdropped;
00345 __u64 bytesin;
00346 __u64 bytesout;
00347 __u32 reserved[4];
00348 };
00349
00350
00351
00352
00353 struct v4l2_captureparm
00354 {
00355 __u32 capability;
00356 __u32 capturemode;
00357 unsigned long timeperframe;
00358 __u32 extendedmode;
00359 __u32 reserved[4];
00360 };
00361
00362 #define V4L2_MODE_HIGHQUALITY 0x0001
00363
00364
00365 #define V4L2_CAP_TIMEPERFRAME 0x1000
00366
00367 struct v4l2_outputparm
00368 {
00369 __u32 capability;
00370 __u32 outputmode;
00371 unsigned long timeperframe;
00372 __u32 extendedmode;
00373 __u32 reserved[4];
00374 };
00375
00376
00377
00378
00379 struct v4l2_cropcap
00380 {
00381 __u32 capability;
00382 int min_x;
00383 int min_y;
00384 int max_x;
00385 int max_y;
00386 int default_left;
00387 int default_top;
00388 int default_right;
00389 int default_bottom;
00390 __u32 reserved[2];
00391 };
00392 struct v4l2_crop
00393 {
00394 int left;
00395 int top;
00396 int right;
00397 int bottom;
00398 __u32 reserved;
00399 };
00400
00401
00402
00403
00404 struct v4l2_zoomcap
00405 {
00406 __u32 capability;
00407 __u32 maxwidth;
00408 __u32 maxheight;
00409 __u32 minwidth;
00410 __u32 minheight;
00411 __u32 reserved[2];
00412 };
00413
00414 #define V4L2_ZOOM_NONCAP 0x0001
00415 #define V4L2_ZOOM_WHILESTREAMING 0x0002
00416
00417 struct v4l2_zoom
00418 {
00419 __u32 x;
00420 __u32 y;
00421 __u32 width;
00422 __u32 height;
00423 __u32 reserved;
00424 };
00425
00426
00427
00428
00429
00430 struct v4l2_standard
00431 {
00432 __u8 name[24];
00433 struct {
00434 __u32 numerator;
00435 __u32 denominator;
00436 } framerate;
00437 __u32 framelines;
00438 __u32 reserved1;
00439 __u32 colorstandard;
00440 union {
00441 struct {
00442 __u32 colorsubcarrier;
00443 } pal;
00444 struct {
00445 __u32 colorsubcarrier;
00446 } ntsc;
00447 struct {
00448 __u32 f0b;
00449 __u32 f0r;
00450 } secam;
00451 __u8 reserved[12];
00452 } colorstandard_data;
00453 __u32 transmission;
00454
00455 __u32 reserved2;
00456 };
00457
00458
00459 #define V4L2_COLOR_STD_PAL 1
00460 #define V4L2_COLOR_STD_NTSC 2
00461 #define V4L2_COLOR_STD_SECAM 3
00462
00463
00464 #define V4L2_COLOR_SUBC_PAL 4433619
00465 #define V4L2_COLOR_SUBC_PAL_M 3575611
00466 #define V4L2_COLOR_SUBC_PAL_N 3582056
00467 #define V4L2_COLOR_SUBC_NTSC 3579545
00468 #define V4L2_COLOR_SUBC_SECAMB 4250000
00469 #define V4L2_COLOR_SUBC_SECAMR 4406250
00470
00471
00472 #define V4L2_TRANSM_STD_B (1<<1)
00473 #define V4L2_TRANSM_STD_D (1<<3)
00474 #define V4L2_TRANSM_STD_G (1<<6)
00475 #define V4L2_TRANSM_STD_H (1<<7)
00476 #define V4L2_TRANSM_STD_I (1<<8)
00477 #define V4L2_TRANSM_STD_K (1<<10)
00478 #define V4L2_TRANSM_STD_K1 (1<<11)
00479 #define V4L2_TRANSM_STD_L (1<<12)
00480 #define V4L2_TRANSM_STD_M (1<<13)
00481 #define V4L2_TRANSM_STD_N (1<<14)
00482
00483
00484
00485 struct v4l2_enumstd
00486 {
00487 int index;
00488 struct v4l2_standard std;
00489 __u32 inputs;
00490
00491 __u32 outputs;
00492
00493 __u32 reserved[2];
00494 };
00495
00496
00497
00498
00499
00500 struct v4l2_input
00501 {
00502 int index;
00503 char name[32];
00504 int type;
00505 __u32 capability;
00506 int assoc_audio;
00507 __u32 reserved[4];
00508 };
00509
00510 #define V4L2_INPUT_TYPE_TUNER 1
00511 #define V4L2_INPUT_TYPE_CAMERA 2
00512
00513
00514 #define V4L2_INPUT_CAP_AUDIO 0x0001
00515
00516
00517
00518
00519
00520 struct v4l2_output
00521 {
00522 int index;
00523 char name[32];
00524 int type;
00525 __u32 capability;
00526 int assoc_audio;
00527 __u32 reserved[4];
00528 };
00529
00530 #define V4L2_OUTPUT_TYPE_MODULATOR 1
00531 #define V4L2_OUTPUT_TYPE_ANALOG 2
00532 #define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3
00533
00534
00535 #define V4L2_OUTPUT_CAP_AUDIO 0x0001
00536
00537
00538
00539
00540
00541 struct v4l2_control
00542 {
00543 __u32 id;
00544 int value;
00545 };
00546
00547
00548 struct v4l2_queryctrl
00549 {
00550 __u32 id;
00551 __u8 name[32];
00552 int minimum;
00553 int maximum;
00554 unsigned int step;
00555 int default_value;
00556 __u32 type;
00557 __u32 flags;
00558 __u32 category;
00559 __u8 group[32];
00560 __u32 reserved[2];
00561 };
00562
00563
00564 struct v4l2_querymenu
00565 {
00566 __u32 id;
00567 int index;
00568 __u8 name[32];
00569 int reserved;
00570 };
00571
00572
00573 struct v4l2_fxcontrol
00574 {
00575 __u32 id;
00576 __u32 value;
00577 };
00578
00579
00580 #define V4L2_CTRL_TYPE_INTEGER 0
00581 #define V4L2_CTRL_TYPE_BOOLEAN 1
00582 #define V4L2_CTRL_TYPE_MENU 2
00583 #define V4L2_CTRL_TYPE_BUTTON 3
00584
00585
00586 #define V4L2_CTRL_FLAG_DISABLED 0x0001
00587 #define V4L2_CTRL_FLAG_GRABBED 0x0002
00588
00589
00590 #define V4L2_CTRL_CAT_VIDEO 1
00591 #define V4L2_CTRL_CAT_AUDIO 2
00592 #define V4L2_CTRL_CAT_EFFECT 3
00593
00594
00595 #define V4L2_CID_BASE 0x00980900
00596
00597 #define V4L2_CID_PRIVATE_BASE 0x08000000
00598
00599 #define V4L2_CID_EFFECT_BASE 0x0A00B000
00600
00601 #define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
00602 #define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
00603 #define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
00604 #define V4L2_CID_HUE (V4L2_CID_BASE+3)
00605 #define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5)
00606 #define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6)
00607 #define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7)
00608 #define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8)
00609 #define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9)
00610 #define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10)
00611 #define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11)
00612 #define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12)
00613 #define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13)
00614 #define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14)
00615 #define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15)
00616 #define V4L2_CID_GAMMA (V4L2_CID_BASE+16)
00617 #define V4L2_CID_WHITENESS (V4L2_CID_GAMMA)
00618 #define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17)
00619 #define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18)
00620 #define V4L2_CID_GAIN (V4L2_CID_BASE+19)
00621 #define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
00622 #define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
00623 #define V4L2_CID_HCENTER (V4L2_CID_BASE+22)
00624 #define V4L2_CID_VCENTER (V4L2_CID_BASE+23)
00625 #define V4L2_CID_LASTP1 (V4L2_CID_BASE+24)
00626
00627
00628
00629
00630
00631 struct v4l2_tuner
00632 {
00633 int input;
00634 char name[32];
00635 struct v4l2_standard std;
00636 __u32 capability;
00637 __u32 rangelow;
00638 __u32 rangehigh;
00639 __u32 rxsubchans;
00640 __u32 audmode;
00641 int signal;
00642 int afc;
00643 __u32 reserved[4];
00644 };
00645 struct v4l2_modulator
00646 {
00647 int output;
00648 char name[32];
00649 struct v4l2_standard std;
00650 __u32 capability;
00651 __u32 rangelow;
00652 __u32 rangehigh;
00653 __u32 txsubchans;
00654 __u32 reserved[4];
00655 };
00656
00657 #define V4L2_TUNER_CAP_LOW 0x0001
00658 #define V4L2_TUNER_CAP_NORM 0x0002
00659 #define V4L2_TUNER_CAP_STEREO 0x0010
00660 #define V4L2_TUNER_CAP_LANG2 0x0020
00661 #define V4L2_TUNER_CAP_SAP 0x0020
00662 #define V4L2_TUNER_CAP_LANG1 0x0040
00663
00664
00665 #define V4L2_TUNER_SUB_MONO 0x0001
00666 #define V4L2_TUNER_SUB_STEREO 0x0002
00667 #define V4L2_TUNER_SUB_LANG2 0x0004
00668 #define V4L2_TUNER_SUB_SAP 0x0004
00669 #define V4L2_TUNER_SUB_LANG1 0x0008
00670
00671
00672 #define V4L2_TUNER_MODE_MONO 0x0000
00673 #define V4L2_TUNER_MODE_STEREO 0x0001
00674 #define V4L2_TUNER_MODE_LANG2 0x0002
00675 #define V4L2_TUNER_MODE_SAP 0x0002
00676 #define V4L2_TUNER_MODE_LANG1 0x0003
00677
00678 struct v4l2_frequency
00679 {
00680 int input;
00681 __u32 frequency;
00682 __u32 reserved[2];
00683 };
00684
00685
00686
00687
00688 struct v4l2_audio
00689 {
00690 int audio;
00691 char name[32];
00692 __u32 capability;
00693 __u32 mode;
00694 __u32 reserved[2];
00695 };
00696
00697 #define V4L2_AUDCAP_EFFECTS 0x0020
00698 #define V4L2_AUDCAP_LOUDNESS 0x0040
00699 #define V4L2_AUDCAP_AVL 0x0080
00700
00701
00702 #define V4L2_AUDMODE_LOUDNESS 0x00002
00703 #define V4L2_AUDMODE_AVL 0x00004
00704 #define V4L2_AUDMODE_STEREO_field 0x0FF00
00705 #define V4L2_AUDMODE_STEREO_LINEAR 0x00100
00706 #define V4L2_AUDMODE_STEREO_PSEUDO 0x00200
00707 #define V4L2_AUDMODE_STEREO_SPATIAL30 0x00300
00708 #define V4L2_AUDMODE_STEREO_SPATIAL50 0x00400
00709
00710 struct v4l2_audioout
00711 {
00712 int audio;
00713 char name[32];
00714 __u32 capability;
00715 __u32 mode;
00716 __u32 reserved[2];
00717 };
00718
00719
00720
00721
00722
00723
00724
00725 struct v4l2_vbi_format
00726 {
00727 __u32 sampling_rate;
00728 __u32 offset;
00729 __u32 samples_per_line;
00730 __u32 sample_format;
00731 __s32 start[2];
00732 __u32 count[2];
00733 __u32 flags;
00734 __u32 reserved2;
00735 };
00736
00737
00738 #define V4L2_VBI_SF_UBYTE 1
00739
00740
00741 #define V4L2_VBI_UNSYNC (1<< 0)
00742 #define V4L2_VBI_INTERLACED (1<< 1)
00743
00744
00745
00746
00747
00748
00749
00750
00751 struct v4l2_format
00752 {
00753 __u32 type;
00754 union
00755 {
00756 struct v4l2_pix_format pix;
00757 struct v4l2_vbi_format vbi;
00758
00759 __u8 raw_data[200];
00760 } fmt;
00761 };
00762
00763
00764
00765
00766 struct v4l2_streamparm
00767 {
00768 __u32 type;
00769 union
00770 {
00771 struct v4l2_captureparm capture;
00772 struct v4l2_outputparm output;
00773
00774 __u8 raw_data[200];
00775 } parm;
00776 };
00777
00778
00779
00780
00781
00782
00783
00784 #define VIDIOC_QUERYCAP _IOR ('V', 0, struct v4l2_capability)
00785 #define VIDIOC_RESERVED _IO ('V', 1)
00786 #define VIDIOC_ENUM_PIXFMT _IOWR ('V', 2, struct v4l2_fmtdesc)
00787 #define VIDIOC_ENUM_FBUFFMT _IOWR ('V', 3, struct v4l2_fmtdesc)
00788 #define VIDIOC_G_FMT _IOWR ('V', 4, struct v4l2_format)
00789 #define VIDIOC_S_FMT _IOWR ('V', 5, struct v4l2_format)
00790 #define VIDIOC_G_COMP _IOR ('V', 6, struct v4l2_compression)
00791 #define VIDIOC_S_COMP _IOW ('V', 7, struct v4l2_compression)
00792 #define VIDIOC_REQBUFS _IOWR ('V', 8, struct v4l2_requestbuffers)
00793 #define VIDIOC_QUERYBUF _IOWR ('V', 9, struct v4l2_buffer)
00794 #define VIDIOC_G_FBUF _IOR ('V', 10, struct v4l2_framebuffer)
00795 #define VIDIOC_S_FBUF _IOW ('V', 11, struct v4l2_framebuffer)
00796 #define VIDIOC_G_WIN _IOR ('V', 12, struct v4l2_window)
00797 #define VIDIOC_S_WIN _IOW ('V', 13, struct v4l2_window)
00798 #define VIDIOC_PREVIEW _IOWR ('V', 14, int)
00799 #define VIDIOC_QBUF _IOWR ('V', 15, struct v4l2_buffer)
00800 #define VIDIOC_DQBUF _IOWR ('V', 17, struct v4l2_buffer)
00801 #define VIDIOC_STREAMON _IOW ('V', 18, int)
00802 #define VIDIOC_STREAMOFF _IOW ('V', 19, int)
00803 #define VIDIOC_G_PERF _IOR ('V', 20, struct v4l2_performance)
00804 #define VIDIOC_G_PARM _IOWR ('V', 21, struct v4l2_streamparm)
00805 #define VIDIOC_S_PARM _IOW ('V', 22, struct v4l2_streamparm)
00806 #define VIDIOC_G_STD _IOR ('V', 23, struct v4l2_standard)
00807 #define VIDIOC_S_STD _IOW ('V', 24, struct v4l2_standard)
00808 #define VIDIOC_ENUMSTD _IOWR ('V', 25, struct v4l2_enumstd)
00809 #define VIDIOC_ENUMINPUT _IOWR ('V', 26, struct v4l2_input)
00810 #define VIDIOC_G_CTRL _IOWR ('V', 27, struct v4l2_control)
00811 #define VIDIOC_S_CTRL _IOW ('V', 28, struct v4l2_control)
00812 #define VIDIOC_G_TUNER _IOWR ('V', 29, struct v4l2_tuner)
00813 #define VIDIOC_S_TUNER _IOW ('V', 30, struct v4l2_tuner)
00814 #define VIDIOC_G_FREQ _IOR ('V', 31, int)
00815 #define VIDIOC_S_FREQ _IOWR ('V', 32, int)
00816 #define VIDIOC_G_AUDIO _IOWR ('V', 33, struct v4l2_audio)
00817 #define VIDIOC_S_AUDIO _IOW ('V', 34, struct v4l2_audio)
00818 #define VIDIOC_QUERYCTRL _IOWR ('V', 36, struct v4l2_queryctrl)
00819 #define VIDIOC_QUERYMENU _IOWR ('V', 37, struct v4l2_querymenu)
00820 #define VIDIOC_G_INPUT _IOR ('V', 38, int)
00821 #define VIDIOC_S_INPUT _IOWR ('V', 39, int)
00822 #define VIDIOC_ENUMCVT _IOWR ('V', 40, struct v4l2_cvtdesc)
00823 #define VIDIOC_G_OUTPUT _IOR ('V', 46, int)
00824 #define VIDIOC_S_OUTPUT _IOWR ('V', 47, int)
00825 #define VIDIOC_ENUMOUTPUT _IOWR ('V', 48, struct v4l2_output)
00826 #define VIDIOC_G_AUDOUT _IOWR ('V', 49, struct v4l2_audioout)
00827 #define VIDIOC_S_AUDOUT _IOW ('V', 50, struct v4l2_audioout)
00828 #define VIDIOC_ENUMFX _IOWR ('V', 51, struct v4l2_fxdesc)
00829 #define VIDIOC_G_EFFECT _IOR ('V', 52, int)
00830 #define VIDIOC_S_EFFECT _IOWR ('V', 53, int)
00831 #define VIDIOC_G_MODULATOR _IOWR ('V', 54, struct v4l2_modulator)
00832 #define VIDIOC_S_MODULATOR _IOW ('V', 55, struct v4l2_modulator)
00833 #define VIDIOC_G_FREQUENCY _IOWR ('V', 56, struct v4l2_frequency)
00834 #define VIDIOC_S_FREQUENCY _IOW ('V', 57, struct v4l2_frequency)
00835
00836 #define VIDIOC_ENUM_CAPFMT VIDIOC_ENUM_PIXFMT
00837 #define VIDIOC_ENUM_OUTFMT VIDIOC_ENUM_PIXFMT
00838 #define VIDIOC_ENUM_SRCFMT VIDIOC_ENUM_PIXFMT
00839 #define VIDIOC_ENUMFMT VIDIOC_ENUM_PIXFMT
00840
00841 #define BASE_VIDIOC_PRIVATE 192
00842
00843
00844 #ifdef __KERNEL__
00845
00846
00847
00848
00849 extern int videodev_init(void);
00850
00851
00852
00853
00854
00855
00856
00857
00858 extern void v4l2_version(int *major, int *minor);
00859 extern int v4l2_major_number(void);
00860
00861
00862 extern unsigned long v4l2_vmalloc_to_bus(void *virt);
00863 #if LINUX_VERSION_CODE >= 0x020300
00864 extern struct page *v4l2_vmalloc_to_page(void *virt);
00865 #else
00866 extern unsigned long v4l2_vmalloc_to_page(void *virt);
00867 #endif
00868
00869
00870 struct v4l2_q_node
00871 {
00872 struct v4l2_q_node *forw, *back;
00873 };
00874 struct v4l2_queue
00875 {
00876 struct v4l2_q_node *forw, *back;
00877 rwlock_t qlock;
00878 };
00879 extern void v4l2_q_init(struct v4l2_queue *q);
00880 extern void v4l2_q_add_head(struct v4l2_queue *q, struct v4l2_q_node *node);
00881 extern void v4l2_q_add_tail(struct v4l2_queue *q, struct v4l2_q_node *node);
00882 extern void *v4l2_q_del_head(struct v4l2_queue *q);
00883 extern void *v4l2_q_del_tail(struct v4l2_queue *q);
00884 extern void *v4l2_q_peek_head(struct v4l2_queue *q);
00885 extern void *v4l2_q_peek_tail(struct v4l2_queue *q);
00886 extern void *v4l2_q_yank_node(struct v4l2_queue *q, struct v4l2_q_node *node);
00887 extern int v4l2_q_last(struct v4l2_queue *q);
00888
00889
00890 extern u32 v4l2_math_div6432(u64 a, u32 d, u32 *r);
00891
00892
00893 extern unsigned long v4l2_timestamp_divide(stamp_t t,
00894 unsigned long p_100ns);
00895 extern unsigned long v4l2_timestamp_correct(stamp_t *t,
00896 unsigned long p_100ns);
00897
00898
00899 struct v4l2_clock
00900 {
00901 void (*gettime)(stamp_t *);
00902 };
00903 extern int v4l2_masterclock_register(struct v4l2_clock *clock);
00904 extern void v4l2_masterclock_unregister(struct v4l2_clock *clock);
00905 extern void v4l2_masterclock_gettime(stamp_t *curr);
00906
00907
00908 extern unsigned int v4l2_video_std_fps(struct v4l2_standard *vs);
00909 extern unsigned long v4l2_video_std_tpf(struct v4l2_standard *vs);
00910 extern int v4l2_video_std_confirm(struct v4l2_standard *vs);
00911 extern int v4l2_video_std_construct(struct v4l2_standard *vs,
00912 int id, __u32 transmission);
00913
00914 #define V4L2_STD_PAL 1
00915 #define V4L2_STD_PAL_M 5
00916 #define V4L2_STD_PAL_N 6
00917 #define V4L2_STD_PAL_60 10
00918 #define V4L2_STD_NTSC 11
00919 #define V4L2_STD_NTSC_N 12
00920
00921 #define V4L2_STD_NTSC_44 15
00922 #define V4L2_STD_SECAM 21
00923
00924
00925
00926
00927
00928
00929
00930
00931 struct v4l2_device
00932 {
00933 char name[32];
00934 int type;
00935 int minor;
00936
00937 int (*open)(struct v4l2_device *v,
00938 int flags, void **idptr);
00939 void (*close)(void *id);
00940 long (*read)(void *id,
00941 char *buf, unsigned long count, int noblock);
00942 long (*write)(void *id,
00943 const char *buf, unsigned long count, int noblock);
00944 int (*ioctl)(void *id,
00945 unsigned int cmd, void *arg);
00946 int (*mmap)(void *id,
00947 struct vm_area_struct *vma);
00948 int (*poll)(void *id,
00949 struct file *file, poll_table *table);
00950
00951 int (*initialize)(struct v4l2_device *v);
00952 void *priv;
00953
00954 int busy;
00955 void *v4l2_priv;
00956 int v4l2_reserved[4];
00957 #if (LINUX_VERSION_CODE >= 0x020300) || defined(CONFIG_FS_DEVFS)
00958 devfs_handle_t devfs_handle;
00959 char devfs_devname[16];
00960 #endif
00961 };
00962
00963
00964 #define V4L2_MAX_IOCTL_SIZE 256
00965
00966 extern int v4l2_register_device(struct v4l2_device *);
00967 extern void v4l2_unregister_device(struct v4l2_device *);
00968
00969
00970 extern struct v4l2_device *v4l2_device_from_file(struct file *file);
00971 extern void *v4l2_openid_from_file(struct file *file);
00972
00973 #endif
00974
00975
00976
00977
00978
00979
00980
00981
00982
00983
00984
00985
00986 #ifdef __KERNEL__
00987
00988 struct v4l2_v4l_compat
00989 {
00990 int (*translate_ioctl)(struct file *file,
00991 struct v4l2_device *vfl,
00992 void *per_open_data,
00993 int cmd,
00994 void *arg);
00995 void (*fix_offset)(struct file *file,
00996 struct v4l2_device *vfl,
00997 struct vm_area_struct *vma);
00998 };
00999 extern int v4l2_v4l_compat_register(struct v4l2_v4l_compat *);
01000 extern void v4l2_v4l_compat_unregister(struct v4l2_v4l_compat *);
01001 #endif
01002
01003
01004 #define VID_TYPE_CAPTURE 1
01005 #define VID_TYPE_TUNER 2
01006 #define VID_TYPE_TELETEXT 4
01007 #define VID_TYPE_OVERLAY 8
01008 #define VID_TYPE_CHROMAKEY 16
01009 #define VID_TYPE_CLIPPING 32
01010 #define VID_TYPE_FRAMERAM 64
01011 #define VID_TYPE_SCALES 128
01012 #define VID_TYPE_MONOCHROME 256
01013 #define VID_TYPE_SUBCAPTURE 512
01014 #define VID_TYPE_MPEG_DECODER 1024
01015 #define VID_TYPE_MPEG_ENCODER 2048
01016 #define VID_TYPE_MJPEG_DECODER 4096
01017 #define VID_TYPE_MJPEG_ENCODER 8192
01018
01019 struct video_capability
01020 {
01021 char name[32];
01022 int type;
01023 int channels;
01024 int audios;
01025 int maxwidth;
01026 int maxheight;
01027 int minwidth;
01028 int minheight;
01029 };
01030
01031
01032 struct video_channel
01033 {
01034 int channel;
01035 char name[32];
01036 int tuners;
01037 __u32 flags;
01038 #define VIDEO_VC_TUNER 1
01039 #define VIDEO_VC_AUDIO 2
01040 __u16 type;
01041 #define VIDEO_TYPE_TV 1
01042 #define VIDEO_TYPE_CAMERA 2
01043 __u16 norm;
01044 };
01045
01046 struct video_tuner
01047 {
01048 int tuner;
01049 char name[32];
01050 ulong rangelow, rangehigh;
01051 __u32 flags;
01052 #define VIDEO_TUNER_PAL 1
01053 #define VIDEO_TUNER_NTSC 2
01054 #define VIDEO_TUNER_SECAM 4
01055 #define VIDEO_TUNER_LOW 8
01056 #define VIDEO_TUNER_NORM 16
01057 #define VIDEO_TUNER_STEREO_ON 128
01058 #define VIDEO_TUNER_RDS_ON 256
01059 #define VIDEO_TUNER_MBS_ON 512
01060 __u16 mode;
01061 #define VIDEO_MODE_PAL 0
01062 #define VIDEO_MODE_NTSC 1
01063 #define VIDEO_MODE_SECAM 2
01064 #define VIDEO_MODE_AUTO 3
01065 __u16 signal;
01066 };
01067
01068 struct video_picture
01069 {
01070 __u16 brightness;
01071 __u16 hue;
01072 __u16 colour;
01073 __u16 contrast;
01074 __u16 whiteness;
01075 __u16 depth;
01076 __u16 palette;
01077 #define VIDEO_PALETTE_GREY 1
01078 #define VIDEO_PALETTE_HI240 2
01079 #define VIDEO_PALETTE_RGB565 3
01080 #define VIDEO_PALETTE_RGB24 4
01081 #define VIDEO_PALETTE_RGB32 5
01082 #define VIDEO_PALETTE_RGB555 6
01083 #define VIDEO_PALETTE_YUV422 7
01084 #define VIDEO_PALETTE_YUYV 8
01085 #define VIDEO_PALETTE_UYVY 9
01086 #define VIDEO_PALETTE_YUV420 10
01087 #define VIDEO_PALETTE_YUV411 11
01088 #define VIDEO_PALETTE_RAW 12
01089 #define VIDEO_PALETTE_YUV422P 13
01090 #define VIDEO_PALETTE_YUV411P 14
01091 #define VIDEO_PALETTE_YUV420P 15
01092 #define VIDEO_PALETTE_YUV410P 16
01093 #define VIDEO_PALETTE_PLANAR 13
01094 #define VIDEO_PALETTE_COMPONENT 7
01095 };
01096
01097 struct video_audio
01098 {
01099 int audio;
01100 __u16 volume;
01101 __u16 bass, treble;
01102 __u32 flags;
01103 #define VIDEO_AUDIO_MUTE 1
01104 #define VIDEO_AUDIO_MUTABLE 2
01105 #define VIDEO_AUDIO_VOLUME 4
01106 #define VIDEO_AUDIO_BASS 8
01107 #define VIDEO_AUDIO_TREBLE 16
01108 #define VIDEO_AUDIO_BALANCE 32
01109 char name[16];
01110 #define VIDEO_SOUND_MONO 1
01111 #define VIDEO_SOUND_STEREO 2
01112 #define VIDEO_SOUND_LANG1 4
01113 #define VIDEO_SOUND_LANG2 8
01114 __u16 mode;
01115 __u16 balance;
01116 __u16 step;
01117 };
01118
01119 struct video_clip
01120 {
01121 __s32 x,y;
01122 __s32 width, height;
01123 struct video_clip *next;
01124 };
01125
01126 struct video_window
01127 {
01128 __u32 x,y;
01129 __u32 width,height;
01130 __u32 chromakey;
01131 __u32 flags;
01132 struct video_clip *clips;
01133 int clipcount;
01134 #define VIDEO_WINDOW_INTERLACE 1
01135 #define VIDEO_WINDOW_CHROMAKEY 16
01136 #define VIDEO_CLIP_BITMAP -1
01137
01138 #define VIDEO_CLIPMAP_SIZE (128 * 625)
01139 };
01140
01141 struct video_capture
01142 {
01143 __u32 x,y;
01144 __u32 width, height;
01145 __u16 decimation;
01146 __u16 flags;
01147 #define VIDEO_CAPTURE_ODD 0
01148 #define VIDEO_CAPTURE_EVEN 1
01149 };
01150
01151 struct video_buffer
01152 {
01153 void *base;
01154 int height,width;
01155 int depth;
01156 int bytesperline;
01157 };
01158
01159 struct video_mmap
01160 {
01161 unsigned int frame;
01162 int height,width;
01163 unsigned int format;
01164 };
01165
01166 struct video_key
01167 {
01168 __u8 key[8];
01169 __u32 flags;
01170 };
01171
01172
01173 #define VIDEO_MAX_FRAME 32
01174
01175 struct video_mbuf
01176 {
01177 int size;
01178 int frames;
01179 int offsets[VIDEO_MAX_FRAME];
01180 };
01181
01182
01183 #define VIDEO_NO_UNIT (-1)
01184
01185
01186 struct video_unit
01187 {
01188 int video;
01189 int vbi;
01190 int radio;
01191 int audio;
01192 int teletext;
01193 };
01194
01195 struct vbi_format {
01196 __u32 sampling_rate;
01197 __u32 samples_per_line;
01198 __u32 sample_format;
01199 __s32 start[2];
01200 __u32 count[2];
01201 __u32 flags;
01202 #define VBI_UNSYNC 1
01203 #define VBI_INTERLACED 2
01204 };
01205
01206
01207
01208 struct video_info
01209 {
01210 __u32 frame_count;
01211 __u32 h_size;
01212 __u32 v_size;
01213 __u32 smpte_timecode;
01214 __u32 picture_type;
01215 __u32 temporal_reference;
01216 __u8 user_data[256];
01217
01218 };
01219
01220
01221 struct video_play_mode
01222 {
01223 int mode;
01224 int p1;
01225 int p2;
01226 };
01227
01228
01229 struct video_code
01230 {
01231 char loadwhat[16];
01232 int datasize;
01233 __u8 *data;
01234 };
01235
01236 #define VIDIOCGCAP _IOR('v',1,struct video_capability)
01237 #define VIDIOCGCHAN _IOWR('v',2,struct video_channel)
01238 #define VIDIOCSCHAN _IOW('v',3,struct video_channel)
01239 #define VIDIOCGTUNER _IOWR('v',4,struct video_tuner)
01240 #define VIDIOCSTUNER _IOW('v',5,struct video_tuner)
01241 #define VIDIOCGPICT _IOR('v',6,struct video_picture)
01242 #define VIDIOCSPICT _IOW('v',7,struct video_picture)
01243 #define VIDIOCCAPTURE _IOW('v',8,int)
01244 #define VIDIOCGWIN _IOR('v',9, struct video_window)
01245 #define VIDIOCSWIN _IOW('v',10, struct video_window)
01246 #define VIDIOCGFBUF _IOR('v',11, struct video_buffer)
01247 #define VIDIOCSFBUF _IOW('v',12, struct video_buffer)
01248 #define VIDIOCKEY _IOR('v',13, struct video_key)
01249 #define VIDIOCGFREQ _IOR('v',14, unsigned long)
01250 #define VIDIOCSFREQ _IOW('v',15, unsigned long)
01251 #define VIDIOCGAUDIO _IOR('v',16, struct video_audio)
01252 #define VIDIOCSAUDIO _IOW('v',17, struct video_audio)
01253 #define VIDIOCSYNC _IOW('v',18, int)
01254 #define VIDIOCMCAPTURE _IOW('v',19, struct video_mmap)
01255 #define VIDIOCGMBUF _IOR('v', 20, struct video_mbuf)
01256 #define VIDIOCGUNIT _IOR('v', 21, struct video_unit)
01257 #define VIDIOCGCAPTURE _IOR('v',22, struct video_capture)
01258 #define VIDIOCSCAPTURE _IOW('v',23, struct video_capture)
01259 #define VIDIOCSPLAYMODE _IOW('v',24, struct video_play_mode)
01260 #define VIDIOCSWRITEMODE _IOW('v',25, int)
01261 #define VIDIOCGPLAYINFO _IOR('v',26, struct video_info)
01262 #define VIDIOCSMICROCODE _IOW('v',27, struct video_code)
01263 #define VIDIOCGVBIFMT _IOR('v',28, struct vbi_format)
01264 #define VIDIOCSVBIFMT _IOW('v',29, struct vbi_format)
01265
01266 #define BASE_VIDIOCPRIVATE 192
01267
01268
01269 #define VID_WRITE_MPEG_AUD 0
01270 #define VID_WRITE_MPEG_VID 1
01271 #define VID_WRITE_OSD 2
01272 #define VID_WRITE_TTX 3
01273 #define VID_WRITE_CC 4
01274 #define VID_WRITE_MJPEG 5
01275
01276
01277 #define VID_PLAY_VID_OUT_MODE 0
01278
01279 #define VID_PLAY_GENLOCK 1
01280
01281
01282 #define VID_PLAY_NORMAL 2
01283 #define VID_PLAY_PAUSE 3
01284 #define VID_PLAY_SINGLE_FRAME 4
01285 #define VID_PLAY_FAST_FORWARD 5
01286 #define VID_PLAY_SLOW_MOTION 6
01287 #define VID_PLAY_IMMEDIATE_NORMAL 7
01288 #define VID_PLAY_SWITCH_CHANNELS 8
01289 #define VID_PLAY_FREEZE_FRAME 9
01290 #define VID_PLAY_STILL_MODE 10
01291 #define VID_PLAY_MASTER_MODE 11
01292
01293 #define VID_PLAY_MASTER_NONE 1
01294 #define VID_PLAY_MASTER_VIDEO 2
01295 #define VID_PLAY_MASTER_AUDIO 3
01296 #define VID_PLAY_ACTIVE_SCANLINES 12
01297
01298 #define VID_PLAY_RESET 13
01299 #define VID_PLAY_END_MARK 14
01300
01301
01302
01303 #ifdef __KERNEL__
01304
01305 struct video_device
01306 {
01307 #if LINUX_VERSION_CODE >= 0x020403
01308 struct module *owner;
01309 #endif
01310 char name[32];
01311 int type;
01312 int hardware;
01313 int (*open)(struct video_device *, int mode);
01314 void (*close)(struct video_device *);
01315 long (*read)(struct video_device *, char *, unsigned long, int noblock);
01316
01317 long (*write)(struct video_device *, const char *, unsigned long, int noblock);
01318 unsigned int (*poll)(struct video_device *, struct file *, poll_table *);
01319 int (*ioctl)(struct video_device *, unsigned int , void *);
01320 int (*mmap)(struct video_device *, const char *, unsigned long);
01321 int (*initialize)(struct video_device *);
01322 void *priv;
01323 int busy;
01324 int minor;
01325 #if (LINUX_VERSION_CODE >= 0x020300) || defined(CONFIG_FS_DEVFS)
01326 devfs_handle_t devfs_handle;
01327 #endif
01328 #if LINUX_VERSION_CODE >= 0x020300
01329 struct file_operations *fops;
01330 #endif
01331 };
01332
01333 #define VIDEO_MAJOR 81
01334 #if LINUX_VERSION_CODE >= 0x020405
01335 extern int video_register_device(struct video_device *vfd, int type, int nr);
01336 #else
01337 extern int video_register_device(struct video_device *vfd, int type);
01338 #endif
01339
01340 #define VFL_TYPE_GRABBER 0
01341 #define VFL_TYPE_VBI 1
01342 #define VFL_TYPE_RADIO 2
01343 #define VFL_TYPE_VTX 3
01344
01345 extern void video_unregister_device(struct video_device *);
01346
01347
01348
01349
01350
01351 struct video_init
01352 {
01353 char *name;
01354 int (*init)(struct video_init *);
01355 };
01356 #endif
01357
01358
01359 #define VID_HARDWARE_BT848 1
01360 #define VID_HARDWARE_QCAM_BW 2
01361 #define VID_HARDWARE_PMS 3
01362 #define VID_HARDWARE_QCAM_C 4
01363 #define VID_HARDWARE_PSEUDO 5
01364 #define VID_HARDWARE_SAA5249 6
01365 #define VID_HARDWARE_AZTECH 7
01366 #define VID_HARDWARE_SF16MI 8
01367 #define VID_HARDWARE_RTRACK 9
01368 #define VID_HARDWARE_ZOLTRIX 10
01369 #define VID_HARDWARE_SAA7146 11
01370 #define VID_HARDWARE_VIDEUM 12
01371 #define VID_HARDWARE_RTRACK2 13
01372 #define VID_HARDWARE_PERMEDIA2 14
01373 #define VID_HARDWARE_RIVA128 15
01374 #define VID_HARDWARE_PLANB 16
01375 #define VID_HARDWARE_BROADWAY 17
01376 #define VID_HARDWARE_GEMTEK 18
01377 #define VID_HARDWARE_TYPHOON 19
01378 #define VID_HARDWARE_VINO 20
01379 #define VID_HARDWARE_CADET 21
01380 #define VID_HARDWARE_TRUST 22
01381 #define VID_HARDWARE_TERRATEC 23
01382 #define VID_HARDWARE_CPIA 24
01383 #define VID_HARDWARE_ZR36120 25
01384 #define VID_HARDWARE_ZR36067 26
01385 #define VID_HARDWARE_OV511 27
01386 #define VID_HARDWARE_ZR356700 28
01387 #define VID_HARDWARE_W9966 29
01388 #define VID_HARDWARE_SE401 30
01389 #define VID_HARDWARE_PWC 31
01390 #define VID_HARDWARE_MEYE 32
01391 #define VID_HARDWARE_CPIA2 33
01392
01393 #endif