The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/sys/videoio.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $NetBSD: videoio.h,v 1.4 2008/09/25 19:34:49 jmcneill Exp $ */
    2 
    3 /*-
    4  * Copyright (c) 2005, 2008 Jared D. McNeill <jmcneill@invisible.ca>
    5  * All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. The name of the author may not be used to endorse or promote products
   13  *    derived from this software without specific prior written permission.
   14  *
   15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   17  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   18  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
   19  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
   20  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   21  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
   22  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   23  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25  * SUCH DAMAGE.
   26  */
   27 
   28 /* See http://v4l2spec.bytesex.org/ for Video4Linux 2 specifications */
   29 
   30 #ifndef _HAVE_SYS_VIDEOIO_H
   31 #define _HAVE_SYS_VIDEOIO_H
   32 
   33 #include <sys/types.h>
   34 #include <sys/time.h>
   35 
   36 #ifndef _KERNEL
   37 #define __u64   uint64_t
   38 #define __u32   uint32_t
   39 #define __u16   uint16_t
   40 #define __u8    uint8_t
   41 #define __s64   int64_t
   42 #define __s32   int32_t
   43 #define __s16   int16_t
   44 #define __s8    int8_t
   45 #endif
   46 
   47 typedef uint64_t v4l2_std_id;
   48 #define v4l2_fourcc(a,b,c,d) (((uint32_t)(a) << 0) |    \
   49                               ((uint32_t)(b) << 8) |    \
   50                               ((uint32_t)(c) << 16) |   \
   51                               ((uint32_t)(d) << 24))
   52 #if 0
   53 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
   54 #endif
   55 
   56 #define V4L2_CTRL_ID2CLASS(id)  ((id >> 16) & 0xfff)
   57 #define V4L2_CTRL_ID2CID(id)    (id & 0xffff)
   58 
   59 enum v4l2_colorspace {
   60         V4L2_COLORSPACE_SMPTE170M = 1,
   61         V4L2_COLORSPACE_SMPTE240M,
   62         V4L2_COLORSPACE_REC709,
   63         V4L2_COLORSPACE_BT878,
   64         V4L2_COLORSPACE_470_SYSTEM_M,
   65         V4L2_COLORSPACE_470_SYSTEM_BG,
   66         V4L2_COLORSPACE_JPEG,
   67         V4L2_COLORSPACE_SRGB
   68 };
   69 
   70 enum v4l2_field {
   71         V4L2_FIELD_ANY = 0,
   72         V4L2_FIELD_NONE,
   73         V4L2_FIELD_TOP,
   74         V4L2_FIELD_BOTTOM,
   75         V4L2_FIELD_INTERLACED,
   76         V4L2_FIELD_SEQ_TB,
   77         V4L2_FIELD_SEQ_BT,
   78         V4L2_FIELD_ALTERNATE
   79 };
   80 
   81 enum v4l2_buf_type {
   82         V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
   83         V4L2_BUF_TYPE_VIDEO_OUTPUT,
   84         V4L2_BUF_TYPE_VIDEO_OVERLAY,
   85         V4L2_BUF_TYPE_VBI_CAPTURE,
   86         V4L2_BUF_TYPE_VBI_OUTPUT,
   87         V4L2_BUF_TYPE_PRIVATE = 0x80
   88 };
   89 
   90 enum v4l2_memory {
   91         V4L2_MEMORY_MMAP = 1,
   92         V4L2_MEMORY_USERPTR,
   93         V4L2_MEMORY_OVERLAY
   94 };
   95 
   96 enum v4l2_priority {
   97         V4L2_PRIORITY_UNSET = 0,
   98         V4L2_PRIORITY_BACKGROUND,
   99         V4L2_PRIORITY_INTERACTIVE,
  100         V4L2_PRIORITY_RECORD,
  101         V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE
  102 };
  103 
  104 enum v4l2_tuner_type {
  105         V4L2_TUNER_RADIO = 1,
  106         V4L2_TUNER_ANALOG_TV
  107 };
  108 
  109 enum v4l2_ctrl_type {
  110         V4L2_CTRL_TYPE_INTEGER = 1,
  111         V4L2_CTRL_TYPE_BOOLEAN,
  112         V4L2_CTRL_TYPE_MENU,
  113         V4L2_CTRL_TYPE_BUTTON
  114 };
  115 
  116 struct v4l2_timecode {
  117         uint32_t        type;
  118         uint32_t        flags;
  119         uint8_t         frames;
  120         uint8_t         seconds;
  121         uint8_t         minutes;
  122         uint8_t         hours;
  123         uint8_t         userbits[4];
  124 };
  125 
  126 struct v4l2_pix_format {
  127         uint32_t        width;
  128         uint32_t        height;
  129         uint32_t        pixelformat;
  130         enum v4l2_field field;
  131         uint32_t        bytesperline;
  132         uint32_t        sizeimage;
  133         enum v4l2_colorspace colorspace;
  134         uint32_t        priv;
  135 };
  136 
  137 struct v4l2_buffer {
  138         uint32_t        index;
  139         enum v4l2_buf_type type;
  140         uint32_t        bytesused;
  141         uint32_t        flags;
  142         enum v4l2_field field;
  143         struct timeval  timestamp;
  144         struct v4l2_timecode timecode;
  145         uint32_t        sequence;
  146         enum v4l2_memory memory;
  147         union {
  148                 uint32_t        offset;
  149                 unsigned long   userptr;
  150         } m;
  151         uint32_t        length;
  152         uint32_t        input;
  153         uint32_t        reserved;
  154 };
  155 
  156 struct v4l2_rect {
  157         int32_t         left;
  158         int32_t         top;
  159         int32_t         width;
  160         int32_t         height;
  161 };
  162 
  163 struct v4l2_fract {
  164         uint32_t        numerator;
  165         uint32_t        denominator;
  166 };
  167 
  168 struct v4l2_fmtdesc {
  169         uint32_t        index;
  170         enum v4l2_buf_type type;
  171         uint32_t        flags;
  172         uint8_t         description[32];
  173         uint32_t        pixelformat;
  174         uint32_t        reserved[4];
  175 };
  176 
  177 struct v4l2_clip {
  178         struct v4l2_rect c;
  179         struct v4l2_clip *next;
  180 };
  181 
  182 struct v4l2_window {
  183         struct v4l2_rect w;
  184         enum v4l2_field field;
  185         uint32_t        chromakey;
  186         struct v4l2_clip *clips;
  187         uint32_t        clipcount;
  188         void            *bitmap;
  189 };
  190 
  191 struct v4l2_vbi_format {
  192         uint32_t        sampling_rate;
  193         uint32_t        offset;
  194         uint32_t        samples_per_line;
  195         uint32_t        sample_format;
  196         uint32_t        start[2];
  197         uint32_t        count[2];
  198         uint32_t        flags;
  199         uint32_t        reserved[2];
  200 };
  201 
  202 /* In the API docs, but not the Linux implementation
  203  *
  204  * struct v4l2_sliced_vbi_format {
  205  *      uint32_t        service_set;
  206  *      uint32_t        packet_size;
  207  *      uint32_t        io_size;
  208  *      uint32_t        reserved;
  209  * };
  210  *
  211  *
  212  * struct v4l2_sliced_data {
  213  *      uint32_t        id;
  214  *      uint32_t        line;
  215  *      uint8_t         data[];
  216  * };
  217  */
  218 
  219 struct v4l2_cropcap {
  220         enum v4l2_buf_type type;
  221         struct v4l2_rect bounds;
  222         struct v4l2_rect defrect;
  223         struct v4l2_fract pixelaspect;
  224 };
  225 
  226 struct v4l2_input {
  227         uint32_t        index;
  228         uint8_t         name[32];
  229         uint32_t        type;
  230         uint32_t        audioset;
  231         uint32_t        tuner;
  232         v4l2_std_id     std;
  233         uint32_t        status;
  234         uint32_t        reserved[4];
  235 };
  236 
  237 struct v4l2_output {
  238         uint32_t        index;
  239         uint8_t         name[32];
  240         uint32_t        type;
  241         uint32_t        audioset;
  242         uint32_t        modulator;
  243         v4l2_std_id     std;
  244         uint32_t        reserved[4];
  245 };
  246 
  247 struct v4l2_audio {
  248         uint32_t        index;
  249         uint8_t         name[32];
  250         uint32_t        capability;
  251         uint32_t        mode;
  252         uint32_t        reserved[2];
  253 };
  254 
  255 struct v4l2_audioout {
  256         uint32_t        index;
  257         uint8_t         name[32];
  258         uint32_t        capability;
  259         uint32_t        mode;
  260         uint32_t        reserved[2];
  261 };
  262 
  263 struct v4l2_compression {
  264         uint32_t        quality;
  265         uint32_t        keyframerate;
  266         uint32_t        pframerate;
  267         uint32_t        reserved[5];
  268 };
  269 
  270 struct v4l2_crop {
  271         enum v4l2_buf_type type;
  272         struct v4l2_rect c;
  273 };
  274 
  275 struct v4l2_control {
  276         uint32_t        id;
  277         int32_t         value;
  278 };
  279 
  280 struct v4l2_framebuffer {
  281         uint32_t        capability;
  282         uint32_t        flags;
  283         void            *base;
  284         struct v4l2_pix_format fmt;
  285 };
  286 
  287 struct v4l2_standard {
  288         uint32_t        index;
  289         v4l2_std_id     id;
  290         uint8_t         name[24];
  291         struct v4l2_fract frameperiod;
  292         uint32_t        framelines;
  293         uint32_t        reserved[4];
  294 };
  295 
  296 struct v4l2_format {
  297         enum v4l2_buf_type type;
  298         union {
  299                 struct v4l2_pix_format pix;
  300                 struct v4l2_window win;
  301                 struct v4l2_vbi_format vbi;
  302                 uint8_t         raw_data[200];
  303         } fmt;
  304 };
  305 
  306 struct v4l2_frequency {
  307         uint32_t        tuner;
  308         enum v4l2_tuner_type type;
  309         uint32_t        frequency;
  310         uint32_t        reserved[8];
  311 };
  312 
  313 struct v4l2_jpegcompression {
  314         int             quality;
  315         int             APPn;
  316         int             APP_len;
  317         char            APP_data[60];
  318         int             COM_len;
  319         char            COM_data[60];
  320         uint32_t        jpeg_markers;
  321 };
  322 
  323 struct v4l2_modulator {
  324         uint32_t        index;
  325         uint8_t         name[32];
  326         uint32_t        capability;
  327         uint32_t        rangelow;
  328         uint32_t        rangehigh;
  329         uint32_t        txsubchans;
  330         uint32_t        reserved[4];
  331 };
  332 
  333 struct v4l2_captureparm {
  334         uint32_t        capability;
  335         uint32_t        capturemode;
  336         struct v4l2_fract timeperframe;
  337         uint32_t        extendedmode;
  338         uint32_t        readbuffers;
  339         uint32_t        reserved[4];
  340 };
  341 
  342 struct v4l2_outputparm {
  343         uint32_t        capability;
  344         uint32_t        outputmode;
  345         struct v4l2_fract timeperframe;
  346         uint32_t        extendedmode;
  347         uint32_t        writebuffers;
  348         uint32_t        reserved[4];
  349 };
  350 
  351 struct v4l2_streamparm {
  352         enum v4l2_buf_type type;
  353         union {
  354                 struct v4l2_captureparm capture;
  355                 struct v4l2_outputparm output;
  356                 uint8_t         raw_data[200];
  357         } parm;
  358 };
  359 
  360 struct v4l2_tuner {
  361         uint32_t        index;
  362         uint8_t         name[32];
  363         enum v4l2_tuner_type type;
  364         uint32_t        capability;
  365         uint32_t        rangelow;
  366         uint32_t        rangehigh;
  367         uint32_t        rxsubchans;
  368         uint32_t        audmode;
  369         uint32_t        signal;
  370         int32_t         afc;
  371         uint32_t        reserved[4];
  372 };
  373 
  374 struct v4l2_capability {
  375         uint8_t         driver[16];
  376         uint8_t         card[32];
  377         uint8_t         bus_info[32];
  378         uint32_t        version;
  379         uint32_t        capabilities;
  380         uint32_t        reserved[4];
  381 };
  382 
  383 struct v4l2_queryctrl {
  384         uint32_t        id;
  385         enum v4l2_ctrl_type type;
  386         uint8_t         name[32];
  387         int32_t         minimum;
  388         int32_t         maximum;
  389         int32_t         step;
  390         int32_t         default_value;
  391         uint32_t        flags;
  392         uint32_t        reserved[2];
  393 };
  394 
  395 struct v4l2_querymenu {
  396         uint32_t        id;
  397         uint32_t        index;
  398         uint8_t         name[32];
  399         uint32_t        reserved;
  400 };
  401 
  402 struct v4l2_requestbuffers {
  403         uint32_t        count;
  404         enum v4l2_buf_type type;
  405         enum v4l2_memory memory;
  406         uint32_t        reserved[2];
  407 };
  408 
  409 /* Timecode types */
  410 #define V4L2_TC_TYPE_24FPS              1
  411 #define V4L2_TC_TYPE_25FPS              2
  412 #define V4L2_TC_TYPE_30FPS              3
  413 #define V4L2_TC_TYPE_50FPS              4
  414 #define V4L2_TC_TYPE_60FPS              5
  415 
  416 /* Timecode flags */
  417 #define V4L2_TC_FLAG_DROPFRAME          0x0001
  418 #define V4L2_TC_FLAG_COLORFRAME         0x0002
  419 #define V4L2_TC_USERBITS_field          0x000c
  420 #define V4L2_TC_USERBITS_USERDEFINED    0x0000
  421 #define V4L2_TC_USERBITS_8BITCHARS      0x0008
  422 
  423 /* Buffer flags */
  424 #define V4L2_BUF_FLAG_MAPPED            0x0001
  425 #define V4L2_BUF_FLAG_QUEUED            0x0002
  426 #define V4L2_BUF_FLAG_DONE              0x0004
  427 #define V4L2_BUF_FLAG_KEYFRAME          0x0008
  428 #define V4L2_BUF_FLAG_PFRAME            0x0010
  429 #define V4L2_BUF_FLAG_BFRAME            0x0020
  430 #define V4L2_BUF_FLAG_TIMECODE          0x0100
  431 #define V4L2_BUF_FLAG_INPUT             0x0200
  432 
  433 /* Image format description flags */
  434 #define V4L2_FMT_FLAG_COMPRESSED        0x0001
  435 
  436 /* Input types */
  437 #define V4L2_INPUT_TYPE_TUNER           1
  438 #define V4L2_INPUT_TYPE_CAMERA          2
  439 
  440 /* Input status flags */
  441 #define V4L2_IN_ST_NO_POWER             0x00000001
  442 #define V4L2_IN_ST_NO_SIGNAL            0x00000002
  443 #define V4L2_IN_ST_NO_COLOR             0x00000004
  444 #define V4L2_IN_ST_NO_H_LOCK            0x00000100
  445 #define V4L2_IN_ST_COLOR_KILL           0x00000200
  446 #define V4L2_IN_ST_NO_SYNC              0x00010000
  447 #define V4L2_IN_ST_NO_EQU               0x00020000
  448 #define V4L2_IN_ST_NO_CARRIER           0x00040000
  449 #define V4L2_IN_ST_MACROVISION          0x01000000
  450 #define V4L2_IN_ST_NO_ACCESS            0x02000000
  451 #define V4L2_IN_ST_VTR                  0x04000000
  452 
  453 /* Output types */
  454 #define V4L2_OUTPUT_TYPE_MODULATOR              1
  455 #define V4L2_OUTPUT_TYPE_ANALOG                 2
  456 #define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY       3
  457 
  458 /* Audio capability flags */
  459 #define V4L2_AUDCAP_STEREO              0x00001
  460 #define V4L2_AUDCAP_AVL                 0x00002
  461 
  462 /* Audio modes */
  463 #define V4L2_AUDMODE_AVL                0x00001
  464 
  465 /* Frame buffer capability flags */
  466 #define V4L2_FBUF_CAP_EXTERNOVERLAY     0x0001
  467 #define V4L2_FBUF_CAP_CHROMAKEY         0x0002
  468 #define V4L2_FBUF_CAP_LIST_CLIPPING     0x0004
  469 #define V4L2_FBUF_CAP_BITMAP_CLIPPING   0x0008
  470 
  471 /* Frame buffer flags */
  472 #define V4L2_FBUF_FLAG_PRIMARY          0x0001
  473 #define V4L2_FBUF_FLAG_OVERLAY          0x0002
  474 #define V4L2_FBUF_FLAG_CHROMAKEY        0x0004
  475 
  476 /* JPEG markers flags */
  477 #define V4L2_JPEG_MARKER_DHT            (1 << 3)
  478 #define V4L2_JPEG_MARKER_DQT            (1 << 4)
  479 #define V4L2_JPEG_MARKER_DRI            (1 << 5)
  480 #define V4L2_JPEG_MARKER_COM            (1 << 6)
  481 #define V4L2_JPEG_MARKER_APP            (1 << 7)
  482 
  483 /* Streaming parameters capabilities */
  484 #define V4L2_CAP_TIMEPERFRAME           0x1000
  485 
  486 /* Capture parameters flags */
  487 #define V4L2_MODE_HIGHQUALITY           0x0001
  488 
  489 /* Tuner and modulator capability flags */
  490 #define V4L2_TUNER_CAP_LOW              0x0001
  491 #define V4L2_TUNER_CAP_NORM             0x0002
  492 #define V4L2_TUNER_CAP_STEREO           0x0010
  493 #define V4L2_TUNER_CAP_LANG2            0x0020
  494 #define V4L2_TUNER_CAP_SAP              0x0020
  495 #define V4L2_TUNER_CAP_LANG1            0x0040
  496 
  497 /* Tuner and modulation audio transmission flags */
  498 #define V4L2_TUNER_SUB_MONO             0x0001
  499 #define V4L2_TUNER_SUB_STEREO           0x0002
  500 #define V4L2_TUNER_SUB_LANG2            0x0004
  501 #define V4L2_TUNER_SUB_SAP              0x0004
  502 #define V4L2_TUNER_SUB_LANG1            0x0008
  503 
  504 /* Tuner audio modes */
  505 #define V4L2_TUNER_MODE_MONO            0
  506 #define V4L2_TUNER_MODE_STEREO          1
  507 #define V4L2_TUNER_MODE_LANG2           2
  508 #define V4L2_TUNER_MODE_SAP             2
  509 #define V4L2_TUNER_MODE_LANG1           3
  510 #define V4L2_TUNER_MODE_LANG1_LANG2     4
  511 
  512 /* Control flags */
  513 #define V4L2_CTRL_FLAG_DISABLED         0x0001
  514 #define V4L2_CTRL_FLAG_GRABBED          0x0002
  515 #define V4L2_CTRL_FLAG_READ_ONLY        0x0004
  516 #define V4L2_CTRL_FLAG_UPDATE           0x0008
  517 #define V4L2_CTRL_FLAG_INACTIVE         0x0010
  518 #define V4L2_CTRL_FLAG_SLIDER           0x0020
  519 
  520 /* Control IDs defined by V4L2 */
  521 #define V4L2_CID_BASE                   0x00980900
  522 #define V4L2_CID_PRIVATE_BASE           0x08000000
  523 
  524 #define V4L2_CID_BRIGHTNESS             (V4L2_CID_BASE + 0)
  525 #define V4L2_CID_CONTRAST               (V4L2_CID_BASE + 1)
  526 #define V4L2_CID_SATURATION             (V4L2_CID_BASE + 2)
  527 #define V4L2_CID_HUE                    (V4L2_CID_BASE + 3)
  528 #define V4L2_CID_AUDIO_VOLUME           (V4L2_CID_BASE + 5)
  529 #define V4L2_CID_AUDIO_BALANCE          (V4L2_CID_BASE + 6)
  530 #define V4L2_CID_AUDIO_BASS             (V4L2_CID_BASE + 7)
  531 #define V4L2_CID_AUDIO_TREBLE           (V4L2_CID_BASE + 8)
  532 #define V4L2_CID_AUDIO_MUTE             (V4L2_CID_BASE + 9)
  533 #define V4L2_CID_AUDIO_LOUDNESS         (V4L2_CID_BASE + 10)
  534 #define V4L2_CID_BLACK_LEVEL            (V4L2_CID_BASE + 11)
  535 #define V4L2_CID_AUTO_WHITE_BALANCE     (V4L2_CID_BASE + 12)
  536 #define V4L2_CID_DO_WHITE_BALANCE       (V4L2_CID_BASE + 13)
  537 #define V4L2_CID_RED_BALANCE            (V4L2_CID_BASE + 14)
  538 #define V4L2_CID_BLUE_BALANCE           (V4L2_CID_BASE + 15)
  539 #define V4L2_CID_GAMMA                  (V4L2_CID_BASE + 16)
  540 #define V4L2_CID_WHITENESS              (V4L2_CID_GAMMA)
  541 #define V4L2_CID_EXPOSURE               (V4L2_CID_BASE + 17)
  542 #define V4L2_CID_AUTOGAIN               (V4L2_CID_BASE + 18)
  543 #define V4L2_CID_GAIN                   (V4L2_CID_BASE + 19)
  544 #define V4L2_CID_HFLIP                  (V4L2_CID_BASE + 20)
  545 #define V4L2_CID_VFLIP                  (V4L2_CID_BASE + 21)
  546 #define V4L2_CID_HCENTER_DEPRECATED     (V4L2_CID_BASE + 22)
  547 #define V4L2_CID_VCENTER_DEPRECATED     (V4L2_CID_BASE + 23)
  548 #define V4L2_CID_HCENTER        V4L2_CID_HCENTER_DEPRECATED
  549 #define V4L2_CID_VCENTER        V4L2_CID_VCENTER_DEPRECATED
  550 #define V4L2_CID_POWER_LINE_FREQUENCY   (V4L2_CID_BASE + 24)
  551 #define V4L2_CID_HUE_AUTO               (V4L2_CID_BASE + 25)
  552 #define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE + 26)
  553 #define V4L2_CID_SHARPNESS              (V4L2_CID_BASE + 27)
  554 #define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE + 28)
  555 #define V4L2_CID_LASTP1                 (V4L2_CID_BASE + 29)
  556 
  557 /* Pixel formats */
  558 #define V4L2_PIX_FMT_RGB332     v4l2_fourcc('R', 'G', 'B', '1')
  559 #define V4L2_PIX_FMT_RGB555     v4l2_fourcc('R', 'G', 'B', 'O')
  560 #define V4L2_PIX_FMT_RGB565     v4l2_fourcc('R', 'G', 'B', 'P')
  561 #define V4L2_PIX_FMT_RGB555X    v4l2_fourcc('R', 'G', 'B', 'Q')
  562 #define V4L2_PIX_FMT_RGB565X    v4l2_fourcc('R', 'G', 'B', 'R')
  563 #define V4L2_PIX_FMT_BGR24      v4l2_fourcc('B', 'G', 'R', '3')
  564 #define V4L2_PIX_FMT_RGB24      v4l2_fourcc('R', 'G', 'B', '3')
  565 #define V4L2_PIX_FMT_BGR32      v4l2_fourcc('B', 'G', 'R', '4')
  566 #define V4L2_PIX_FMT_RGB32      v4l2_fourcc('R', 'G', 'B', '4')
  567 #define V4L2_PIX_FMT_GREY       v4l2_fourcc('G', 'R', 'E', 'Y')
  568 #define V4L2_PIX_FMT_YUYV       v4l2_fourcc('Y', 'U', 'Y', 'V')
  569 #define V4L2_PIX_FMT_UYVY       v4l2_fourcc('U', 'Y', 'V', 'Y')
  570 #define V4L2_PIX_FMT_Y41P       v4l2_fourcc('Y', '4', '1', 'P')
  571 #define V4L2_PIX_FMT_YVU420     v4l2_fourcc('Y', 'V', '1', '2')
  572 #define V4L2_PIX_FMT_YUV420     v4l2_fourcc('Y', 'U', '1', '2')
  573 #define V4L2_PIX_FMT_YVU410     v4l2_fourcc('Y', 'V', 'U', '9')
  574 #define V4L2_PIX_FMT_YUV410     v4l2_fourcc('Y', 'U', 'V', '9')
  575 #define V4L2_PIX_FMT_YUV422P    v4l2_fourcc('4', '2', '2', 'P')
  576 #define V4L2_PIX_FMT_YUV411P    v4l2_fourcc('Y', '1', '1', 'P')
  577 #define V4L2_PIX_FMT_NV12       v4l2_fourcc('N', 'V', '1', '2')
  578 #define V4L2_PIX_FMT_NV21       v4l2_fourcc('N', 'V', '2', '1')
  579 /* http://www.siliconimaging.com/RGB%20Bayer.htm */
  580 #define V4L2_PIX_FMT_SBGGR8     v4l2_fourcc('B', 'A', '8', '1')
  581 /* Reserved pixel formats */
  582 #define V4L2_PIX_FMT_YYUV       v4l2_fourcc('Y', 'Y', 'U', 'V')
  583 #define V4L2_PIX_FMT_HI240      v4l2_fourcc('H', 'I', '2', '4')
  584 #define V4L2_PIX_FMT_MJPEG      v4l2_fourcc('M', 'J', 'P', 'G')
  585 #define V4L2_PIX_FMT_JPEG       v4l2_fourcc('J', 'P', 'E', 'G')
  586 #define V4L2_PIX_FMT_DV         v4l2_fourcc('d', 'v', 's', 'd')
  587 #define V4L2_PIX_FMT_MPEG       v4l2_fourcc('M', 'P', 'E', 'G')
  588 #define V4L2_PIX_FMT_WNVA       v4l2_fourcc('W', 'N', 'V', 'A')
  589 #define V4L2_PIX_FMT_SN9C10X    v4l2_fourcc('S', '9', '1', '')
  590 
  591 /* Video standards */
  592 #define V4L2_STD_PAL_B          ((v4l2_std_id)0x00000001)
  593 #define V4L2_STD_PAL_B1         ((v4l2_std_id)0x00000002)
  594 #define V4L2_STD_PAL_G          ((v4l2_std_id)0x00000004)
  595 #define V4L2_STD_PAL_H          ((v4l2_std_id)0x00000008)
  596 #define V4L2_STD_PAL_I          ((v4l2_std_id)0x00000010)
  597 #define V4L2_STD_PAL_D          ((v4l2_std_id)0x00000020)
  598 #define V4L2_STD_PAL_D1         ((v4l2_std_id)0x00000040)
  599 #define V4L2_STD_PAL_K          ((v4l2_std_id)0x00000080)
  600 #define V4L2_STD_PAL_M          ((v4l2_std_id)0x00000100)
  601 #define V4L2_STD_PAL_N          ((v4l2_std_id)0x00000200)
  602 #define V4L2_STD_PAL_Nc         ((v4l2_std_id)0x00000400)
  603 #define V4L2_STD_PAL_60         ((v4l2_std_id)0x00000800)
  604 #define V4L2_STD_NTSC_M         ((v4l2_std_id)0x00001000)
  605 #define V4L2_STD_NTSC_M_JP      ((v4l2_std_id)0x00002000)
  606 #define V4L2_STD_SECAM_B        ((v4l2_std_id)0x00010000)
  607 #define V4L2_STD_SECAM_D        ((v4l2_std_id)0x00020000)
  608 #define V4L2_STD_SECAM_G        ((v4l2_std_id)0x00040000)
  609 #define V4L2_STD_SECAM_H        ((v4l2_std_id)0x00080000)
  610 #define V4L2_STD_SECAM_K        ((v4l2_std_id)0x00100000)
  611 #define V4L2_STD_SECAM_K1       ((v4l2_std_id)0x00200000)
  612 #define V4L2_STD_SECAM_L        ((v4l2_std_id)0x00400000)
  613 #define V4L2_STD_ATSC_8_VSB     ((v4l2_std_id)0x01000000)
  614 #define V4L2_STD_ATSC_16_VSB    ((v4l2_std_id)0x02000000)
  615 #define V4L2_STD_PAL_BG         (V4L2_STD_PAL_B |       \
  616                                  V4L2_STD_PAL_B1 |      \
  617                                  V4L2_STD_PAL_G)
  618 #define V4L2_STD_PAL_DK         (V4L2_STD_PAL_D |       \
  619                                  V4L2_STD_PAL_D1 |      \
  620                                  V4L2_STD_PAL_K)
  621 #define V4L2_STD_PAL            (V4L2_STD_PAL_BG |      \
  622                                  V4L2_STD_PAL_DK |      \
  623                                  V4L2_STD_PAL_H |       \
  624                                  V4L2_STD_PAL_I)
  625 #define V4L2_STD_NTSC           (V4L2_STD_NTSC_M |      \
  626                                  V4L2_STD_NTSC_M_JP)
  627 #define V4L2_STD_SECAM          (V4L2_STD_SECAM_B |     \
  628                                  V4L2_STD_SECAM_D |     \
  629                                  V4L2_STD_SECAM_G |     \
  630                                  V4L2_STD_SECAM_H |     \
  631                                  V4L2_STD_SECAM_K |     \
  632                                  V4L2_STD_SECAM_K1 |    \
  633                                  V4L2_STD_SECAM_L)
  634 #define V4L2_STD_525_60         (V4L2_STD_PAL_M |       \
  635                                  V4L2_STD_PAL_60 |      \
  636                                  V4L2_STD_NTSC)
  637 #define V4L2_STD_625_50         (V4L2_STD_PAL |         \
  638                                  V4L2_STD_PAL_N |       \
  639                                  V4L2_STD_PAL_Nc |      \
  640                                  V4L2_STD_SECAM)
  641 #define V4L2_STD_UNKNOWN        0
  642 #define V4L2_STD_ALL            (V4L2_STD_525_60 |      \
  643                                  V4L2_STD_625_50)
  644 
  645 /* Raw VBI format flags */
  646 #define V4L2_VBI_UNSYNC                 0x0001
  647 #define V4L2_VBI_INTERLACED             0x0002
  648 
  649 /* Device capabilities */
  650 #define V4L2_CAP_VIDEO_CAPTURE          0x00000001
  651 #define V4L2_CAP_VIDEO_OUTPUT           0x00000002
  652 #define V4L2_CAP_VIDEO_OVERLAY          0x00000004
  653 #define V4L2_CAP_VBI_CAPTURE            0x00000010
  654 #define V4L2_CAP_VBI_OUTPUT             0x00000020
  655 #define V4L2_CAP_RDS_CAPTURE            0x00000100
  656 #define V4L2_CAP_TUNER                  0x00010000
  657 #define V4L2_CAP_AUDIO                  0x00020000
  658 #define V4L2_CAP_READWRITE              0x01000000
  659 #define V4L2_CAP_ASYNCIO                0x02000000
  660 #define V4L2_CAP_STREAMING              0x04000000
  661 #define V4L2_CAP_BITMASK        \
  662         "\2\1VIDEO_CAPTURE\2VIDEO_OUTPUT\3VIDEO_OVERLAY"
  663 #if 0
  664         "\5VBI_CAPTURE\6VBI_OUTPUT\9RDS_CAPTURE"                \
  665         "\17TUNER\18AUDIO\25READWRITE"                          \
  666         "\26ASYNCIO\27STREAMING"
  667 #endif
  668 
  669 /* Device ioctls -- try to keep them the same as Linux for compat_linux */
  670 #define VIDIOC_QUERYCAP         _IOR('V', 0, struct v4l2_capability)
  671 #define VIDIOC_RESERVED         _IO('V', 1)
  672 #define VIDIOC_ENUM_FMT         _IOWR('V', 2, struct v4l2_fmtdesc)
  673 #define VIDIOC_G_FMT            _IOWR('V', 4, struct v4l2_format)
  674 #define VIDIOC_S_FMT            _IOWR('V', 5, struct v4l2_format)
  675 /* 6 and 7 are VIDIOC_[SG]_COMP, which are unsupported */
  676 #define VIDIOC_REQBUFS          _IOWR('V', 8, struct v4l2_requestbuffers)
  677 #define VIDIOC_QUERYBUF         _IOWR('V', 9, struct v4l2_buffer)
  678 #define VIDIOC_G_FBUF           _IOR('V', 10, struct v4l2_framebuffer)
  679 #define VIDIOC_S_FBUF           _IOW('V', 11, struct v4l2_framebuffer)
  680 #define VIDIOC_OVERLAY          _IOW('V', 14, int)
  681 #define VIDIOC_QBUF             _IOWR('V', 15, struct v4l2_buffer)
  682 #define VIDIOC_DQBUF            _IOWR('V', 17, struct v4l2_buffer)
  683 #define VIDIOC_STREAMON         _IOW('V', 18, int)
  684 #define VIDIOC_STREAMOFF        _IOW('V', 19, int)
  685 #define VIDIOC_G_PARM           _IOWR('V', 21, struct v4l2_streamparm)
  686 #define VIDIOC_S_PARM           _IOWR('V', 22, struct v4l2_streamparm)
  687 #define VIDIOC_G_STD            _IOR('V', 23, v4l2_std_id)
  688 #define VIDIOC_S_STD            _IOW('V', 24, v4l2_std_id)
  689 #define VIDIOC_ENUMSTD          _IOWR('V', 25, struct v4l2_standard)
  690 #define VIDIOC_ENUMINPUT        _IOWR('V', 26, struct v4l2_input)
  691 #define VIDIOC_G_CTRL           _IOWR('V', 27, struct v4l2_control)
  692 #define VIDIOC_S_CTRL           _IOWR('V', 28, struct v4l2_control)
  693 #define VIDIOC_G_TUNER          _IOWR('V', 29, struct v4l2_tuner)
  694 #define VIDIOC_S_TUNER          _IOW('V', 30, struct v4l2_tuner)
  695 #define VIDIOC_G_AUDIO          _IOR('V', 33, struct v4l2_audio)
  696 #define VIDIOC_S_AUDIO          _IOW('V', 34, struct v4l2_audio)
  697 #define VIDIOC_QUERYCTRL        _IOWR('V', 36, struct v4l2_queryctrl)
  698 #define VIDIOC_QUERYMENU        _IOWR('V', 37, struct v4l2_querymenu)
  699 #define VIDIOC_G_INPUT          _IOR('V', 38, int)
  700 #define VIDIOC_S_INPUT          _IOWR('V', 39, int)
  701 #define VIDIOC_G_OUTPUT         _IOR('V', 46, int)
  702 #define VIDIOC_S_OUTPUT         _IOWR('V', 47, int)
  703 #define VIDIOC_ENUMOUTPUT       _IOWR('V', 48, struct v4l2_output)
  704 #define VIDIOC_G_AUDOUT         _IOR('V', 49, struct v4l2_audioout)
  705 #define VIDIOC_S_AUDOUT         _IOW('V', 50, struct v4l2_audioout)
  706 #define VIDIOC_G_MODULATOR      _IOWR('V', 54, struct v4l2_modulator)
  707 #define VIDIOC_S_MODULATOR      _IOW('V', 55, struct v4l2_modulator)
  708 #define VIDIOC_G_FREQUENCY      _IOWR('V', 56, struct v4l2_frequency)
  709 #define VIDIOC_S_FREQUENCY      _IOW('V', 57, struct v4l2_frequency)
  710 #define VIDIOC_CROPCAP          _IOWR('V', 58, struct v4l2_cropcap)
  711 #define VIDIOC_G_CROP           _IOWR('V', 59, struct v4l2_crop)
  712 #define VIDIOC_S_CROP           _IOW('V', 60, struct v4l2_crop)
  713 #define VIDIOC_G_JPEGCOMP       _IOR('V', 61, struct v4l2_jpegcompression)
  714 #define VIDIOC_S_JPEGCOMP       _IOW('V', 62, struct v4l2_jpegcompression)
  715 #define VIDIOC_QUERYSTD         _IOR('V', 63, v4l2_std_id)
  716 #define VIDIOC_TRY_FMT          _IOWR('V', 64, struct v4l2_format)
  717 #define VIDIOC_ENUMAUDIO        _IOWR('V', 65, struct v4l2_audio)
  718 #define VIDIOC_ENUMAUDOUT       _IOWR('V', 66, struct v4l2_audioout)
  719 #define VIDIOC_G_PRIORITY       _IOR('V', 67, enum v4l2_priority)
  720 #define VIDIOC_S_PRIORITY       _IOW('V', 68, enum v4l2_priority)
  721 
  722 #endif /* !_HAVE_SYS_VIDEOIO_H */

Cache object: 368f8ebb909beb1f04f32bdf21c269a5


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.