Home | History | Annotate | Download | only in spec
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
      2 <HTML
      3 ><HEAD
      4 ><TITLE
      5 >ioctl VIDIOC_ENUMINPUT</TITLE
      6 ><META
      7 NAME="GENERATOR"
      8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
      9 REL="HOME"
     10 TITLE="Video for Linux Two API Specification"
     11 HREF="book1.htm"><LINK
     12 REL="UP"
     13 TITLE="Function Reference"
     14 HREF="r7624.htm"><LINK
     15 REL="PREVIOUS"
     16 TITLE="ioctl VIDIOC_ENUM_FRAMEINTERVALS"
     17 HREF="r8724.htm"><LINK
     18 REL="NEXT"
     19 TITLE="ioctl VIDIOC_ENUMOUTPUT"
     20 HREF="r9149.htm"></HEAD
     21 ><BODY
     22 CLASS="REFENTRY"
     23 BGCOLOR="#FFFFFF"
     24 TEXT="#000000"
     25 LINK="#0000FF"
     26 VLINK="#840084"
     27 ALINK="#0000FF"
     28 ><DIV
     29 CLASS="NAVHEADER"
     30 ><TABLE
     31 SUMMARY="Header navigation table"
     32 WIDTH="100%"
     33 BORDER="0"
     34 CELLPADDING="0"
     35 CELLSPACING="0"
     36 ><TR
     37 ><TH
     38 COLSPAN="3"
     39 ALIGN="center"
     40 >Video for Linux Two API Specification: Revision 0.24</TH
     41 ></TR
     42 ><TR
     43 ><TD
     44 WIDTH="10%"
     45 ALIGN="left"
     46 VALIGN="bottom"
     47 ><A
     48 HREF="r8724.htm"
     49 ACCESSKEY="P"
     50 >Prev</A
     51 ></TD
     52 ><TD
     53 WIDTH="80%"
     54 ALIGN="center"
     55 VALIGN="bottom"
     56 ></TD
     57 ><TD
     58 WIDTH="10%"
     59 ALIGN="right"
     60 VALIGN="bottom"
     61 ><A
     62 HREF="r9149.htm"
     63 ACCESSKEY="N"
     64 >Next</A
     65 ></TD
     66 ></TR
     67 ></TABLE
     68 ><HR
     69 ALIGN="LEFT"
     70 WIDTH="100%"></DIV
     71 ><H1
     72 ><A
     73 NAME="VIDIOC-ENUMINPUT"
     74 ></A
     75 >ioctl VIDIOC_ENUMINPUT</H1
     76 ><DIV
     77 CLASS="REFNAMEDIV"
     78 ><A
     79 NAME="AEN8940"
     80 ></A
     81 ><H2
     82 >Name</H2
     83 >VIDIOC_ENUMINPUT&nbsp;--&nbsp;Enumerate video inputs</DIV
     84 ><DIV
     85 CLASS="REFSYNOPSISDIV"
     86 ><A
     87 NAME="AEN8943"
     88 ></A
     89 ><H2
     90 >Synopsis</H2
     91 ><DIV
     92 CLASS="FUNCSYNOPSIS"
     93 ><P
     94 ></P
     95 ><A
     96 NAME="AEN8944"
     97 ></A
     98 ><P
     99 ><CODE
    100 ><CODE
    101 CLASS="FUNCDEF"
    102 >int ioctl</CODE
    103 >(int fd, int request, struct v4l2_input
    104 *argp);</CODE
    105 ></P
    106 ><P
    107 ></P
    108 ></DIV
    109 ></DIV
    110 ><DIV
    111 CLASS="REFSECT1"
    112 ><A
    113 NAME="AEN8954"
    114 ></A
    115 ><H2
    116 >Arguments</H2
    117 ><P
    118 ></P
    119 ><DIV
    120 CLASS="VARIABLELIST"
    121 ><DL
    122 ><DT
    123 ><CODE
    124 CLASS="PARAMETER"
    125 >fd</CODE
    126 ></DT
    127 ><DD
    128 ><P
    129 >File descriptor returned by <A
    130 HREF="r14090.htm"
    131 ><CODE
    132 CLASS="FUNCTION"
    133 >open()</CODE
    134 ></A
    135 >.</P
    136 ></DD
    137 ><DT
    138 ><CODE
    139 CLASS="PARAMETER"
    140 >request</CODE
    141 ></DT
    142 ><DD
    143 ><P
    144 >VIDIOC_ENUMINPUT</P
    145 ></DD
    146 ><DT
    147 ><CODE
    148 CLASS="PARAMETER"
    149 >argp</CODE
    150 ></DT
    151 ><DD
    152 ><P
    153 ></P
    154 ></DD
    155 ></DL
    156 ></DIV
    157 ></DIV
    158 ><DIV
    159 CLASS="REFSECT1"
    160 ><A
    161 NAME="AEN8974"
    162 ></A
    163 ><H2
    164 >Description</H2
    165 ><P
    166 >To query the attributes of a video input applications
    167 initialize the <CODE
    168 CLASS="STRUCTFIELD"
    169 >index</CODE
    170 > field of struct&nbsp;<A
    171 HREF="r8936.htm#V4L2-INPUT"
    172 >v4l2_input</A
    173 >
    174 and call the <CODE
    175 CLASS="CONSTANT"
    176 >VIDIOC_ENUMINPUT</CODE
    177 > ioctl with a
    178 pointer to this structure. Drivers fill the rest of the structure or
    179 return an <SPAN
    180 CLASS="ERRORCODE"
    181 >EINVAL</SPAN
    182 > error code when the index is out of bounds. To enumerate all
    183 inputs applications shall begin at index zero, incrementing by one
    184 until the driver returns <SPAN
    185 CLASS="ERRORCODE"
    186 >EINVAL</SPAN
    187 >.</P
    188 ><DIV
    189 CLASS="TABLE"
    190 ><A
    191 NAME="V4L2-INPUT"
    192 ></A
    193 ><P
    194 ><B
    195 >Table 1. struct <CODE
    196 CLASS="STRUCTNAME"
    197 >v4l2_input</CODE
    198 ></B
    199 ></P
    200 ><TABLE
    201 BORDER="0"
    202 FRAME="void"
    203 WIDTH="100%"
    204 CLASS="CALSTABLE"
    205 ><COL
    206 WIDTH="25%"
    207 TITLE="C1"><COL
    208 WIDTH="25%"
    209 TITLE="C2"><COL
    210 WIDTH="50%"
    211 TITLE="C3"><TBODY
    212 VALIGN="TOP"
    213 ><TR
    214 ><TD
    215 >__u32</TD
    216 ><TD
    217 ><CODE
    218 CLASS="STRUCTFIELD"
    219 >index</CODE
    220 ></TD
    221 ><TD
    222 >Identifies the input, set by the
    223 application.</TD
    224 ></TR
    225 ><TR
    226 ><TD
    227 >__u8</TD
    228 ><TD
    229 ><CODE
    230 CLASS="STRUCTFIELD"
    231 >name</CODE
    232 >[32]</TD
    233 ><TD
    234 >Name of the video input, a NUL-terminated ASCII
    235 string, for example: "Vin (Composite 2)". This information is intended
    236 for the user, preferably the connector label on the device itself.</TD
    237 ></TR
    238 ><TR
    239 ><TD
    240 >__u32</TD
    241 ><TD
    242 ><CODE
    243 CLASS="STRUCTFIELD"
    244 >type</CODE
    245 ></TD
    246 ><TD
    247 >Type of the input, see <A
    248 HREF="r8936.htm#INPUT-TYPE"
    249 >Table 2</A
    250 >.</TD
    251 ></TR
    252 ><TR
    253 ><TD
    254 >__u32</TD
    255 ><TD
    256 ><CODE
    257 CLASS="STRUCTFIELD"
    258 >audioset</CODE
    259 ></TD
    260 ><TD
    261 ><P
    262 >Drivers can enumerate up to 32 video and
    263 audio inputs. This field shows which audio inputs were selectable as
    264 audio source if this was the currently selected video input. It is a
    265 bit mask. The LSB corresponds to audio input 0, the MSB to input 31.
    266 Any number of bits can be set, or none.</P
    267 ><P
    268 >When the driver
    269 does not enumerate audio inputs no bits must be set. Applications
    270 shall not interpret this as lack of audio support. Some drivers
    271 automatically select audio sources and do not enumerate them since
    272 there is no choice anyway.</P
    273 ><P
    274 >For details on audio inputs and
    275 how to select the current input see <A
    276 HREF="x341.htm"
    277 >Section 1.5</A
    278 >.</P
    279 ></TD
    280 ></TR
    281 ><TR
    282 ><TD
    283 >__u32</TD
    284 ><TD
    285 ><CODE
    286 CLASS="STRUCTFIELD"
    287 >tuner</CODE
    288 ></TD
    289 ><TD
    290 >Capture devices can have zero or more tuners (RF
    291 demodulators). When the <CODE
    292 CLASS="STRUCTFIELD"
    293 >type</CODE
    294 > is set to
    295 <CODE
    296 CLASS="CONSTANT"
    297 >V4L2_INPUT_TYPE_TUNER</CODE
    298 > this is an RF connector and
    299 this field identifies the tuner. It corresponds to
    300 struct&nbsp;<A
    301 HREF="r12342.htm#V4L2-TUNER"
    302 >v4l2_tuner</A
    303 > field <CODE
    304 CLASS="STRUCTFIELD"
    305 >index</CODE
    306 >. For details on
    307 tuners see <A
    308 HREF="x394.htm"
    309 >Section 1.6</A
    310 >.</TD
    311 ></TR
    312 ><TR
    313 ><TD
    314 ><A
    315 HREF="r9288.htm#V4L2-STD-ID"
    316 >v4l2_std_id</A
    317 ></TD
    318 ><TD
    319 ><CODE
    320 CLASS="STRUCTFIELD"
    321 >std</CODE
    322 ></TD
    323 ><TD
    324 >Every video input supports one or more different
    325 video standards. This field is a set of all supported standards. For
    326 details on video standards and how to switch see <A
    327 HREF="x448.htm"
    328 >Section 1.7</A
    329 >.</TD
    330 ></TR
    331 ><TR
    332 ><TD
    333 >__u32</TD
    334 ><TD
    335 ><CODE
    336 CLASS="STRUCTFIELD"
    337 >status</CODE
    338 ></TD
    339 ><TD
    340 >This field provides status information about the
    341 input. See <A
    342 HREF="r8936.htm#INPUT-STATUS"
    343 >Table 3</A
    344 > for flags.
    345 <CODE
    346 CLASS="STRUCTFIELD"
    347 >status</CODE
    348 > is only valid when this is the
    349 current input.</TD
    350 ></TR
    351 ><TR
    352 ><TD
    353 >__u32</TD
    354 ><TD
    355 ><CODE
    356 CLASS="STRUCTFIELD"
    357 >reserved</CODE
    358 >[4]</TD
    359 ><TD
    360 >Reserved for future extensions. Drivers must set
    361 the array to zero.</TD
    362 ></TR
    363 ></TBODY
    364 ></TABLE
    365 ></DIV
    366 ><DIV
    367 CLASS="TABLE"
    368 ><A
    369 NAME="INPUT-TYPE"
    370 ></A
    371 ><P
    372 ><B
    373 >Table 2. Input Types</B
    374 ></P
    375 ><TABLE
    376 BORDER="0"
    377 FRAME="void"
    378 WIDTH="100%"
    379 CLASS="CALSTABLE"
    380 ><COL
    381 WIDTH="38%"
    382 TITLE="C1"><COL
    383 WIDTH="12%"
    384 TITLE="C2"><COL
    385 WIDTH="50%"
    386 TITLE="C3"><TBODY
    387 VALIGN="TOP"
    388 ><TR
    389 ><TD
    390 ><CODE
    391 CLASS="CONSTANT"
    392 >V4L2_INPUT_TYPE_TUNER</CODE
    393 ></TD
    394 ><TD
    395 >1</TD
    396 ><TD
    397 >This input uses a tuner (RF demodulator).</TD
    398 ></TR
    399 ><TR
    400 ><TD
    401 ><CODE
    402 CLASS="CONSTANT"
    403 >V4L2_INPUT_TYPE_CAMERA</CODE
    404 ></TD
    405 ><TD
    406 >2</TD
    407 ><TD
    408 >Analog baseband input, for example CVBS /
    409 Composite Video, S-Video, RGB.</TD
    410 ></TR
    411 ></TBODY
    412 ></TABLE
    413 ></DIV
    414 ><DIV
    415 CLASS="TABLE"
    416 ><A
    417 NAME="INPUT-STATUS"
    418 ></A
    419 ><P
    420 ><B
    421 >Table 3. Input Status Flags</B
    422 ></P
    423 ><TABLE
    424 BORDER="0"
    425 FRAME="void"
    426 WIDTH="100%"
    427 CLASS="CALSTABLE"
    428 ><COL
    429 WIDTH="33%"
    430 TITLE="C1"><COL
    431 WIDTH="33%"
    432 ALIGN="CENTER"
    433 TITLE="C2"><COL
    434 WIDTH="33%"
    435 TITLE="C3"><TBODY
    436 VALIGN="TOP"
    437 ><TR
    438 ><TD
    439 COLSPAN="3"
    440 ALIGN="LEFT"
    441 >General</TD
    442 ></TR
    443 ><TR
    444 ><TD
    445 ><CODE
    446 CLASS="CONSTANT"
    447 >V4L2_IN_ST_NO_POWER</CODE
    448 ></TD
    449 ><TD
    450 >0x00000001</TD
    451 ><TD
    452 >Attached device is off.</TD
    453 ></TR
    454 ><TR
    455 ><TD
    456 ><CODE
    457 CLASS="CONSTANT"
    458 >V4L2_IN_ST_NO_SIGNAL</CODE
    459 ></TD
    460 ><TD
    461 >0x00000002</TD
    462 ><TD
    463 >&nbsp;</TD
    464 ></TR
    465 ><TR
    466 ><TD
    467 ><CODE
    468 CLASS="CONSTANT"
    469 >V4L2_IN_ST_NO_COLOR</CODE
    470 ></TD
    471 ><TD
    472 >0x00000004</TD
    473 ><TD
    474 >The hardware supports color decoding, but does not
    475 detect color modulation in the signal.</TD
    476 ></TR
    477 ><TR
    478 ><TD
    479 COLSPAN="3"
    480 ALIGN="LEFT"
    481 >Analog Video</TD
    482 ></TR
    483 ><TR
    484 ><TD
    485 ><CODE
    486 CLASS="CONSTANT"
    487 >V4L2_IN_ST_NO_H_LOCK</CODE
    488 ></TD
    489 ><TD
    490 >0x00000100</TD
    491 ><TD
    492 >No horizontal sync lock.</TD
    493 ></TR
    494 ><TR
    495 ><TD
    496 ><CODE
    497 CLASS="CONSTANT"
    498 >V4L2_IN_ST_COLOR_KILL</CODE
    499 ></TD
    500 ><TD
    501 >0x00000200</TD
    502 ><TD
    503 >A color killer circuit automatically disables color
    504 decoding when it detects no color modulation. When this flag is set
    505 the color killer is enabled <SPAN
    506 CLASS="emphasis"
    507 ><I
    508 CLASS="EMPHASIS"
    509 >and</I
    510 ></SPAN
    511 > has shut off
    512 color decoding.</TD
    513 ></TR
    514 ><TR
    515 ><TD
    516 COLSPAN="3"
    517 ALIGN="LEFT"
    518 >Digital Video</TD
    519 ></TR
    520 ><TR
    521 ><TD
    522 ><CODE
    523 CLASS="CONSTANT"
    524 >V4L2_IN_ST_NO_SYNC</CODE
    525 ></TD
    526 ><TD
    527 >0x00010000</TD
    528 ><TD
    529 >No synchronization lock.</TD
    530 ></TR
    531 ><TR
    532 ><TD
    533 ><CODE
    534 CLASS="CONSTANT"
    535 >V4L2_IN_ST_NO_EQU</CODE
    536 ></TD
    537 ><TD
    538 >0x00020000</TD
    539 ><TD
    540 >No equalizer lock.</TD
    541 ></TR
    542 ><TR
    543 ><TD
    544 ><CODE
    545 CLASS="CONSTANT"
    546 >V4L2_IN_ST_NO_CARRIER</CODE
    547 ></TD
    548 ><TD
    549 >0x00040000</TD
    550 ><TD
    551 >Carrier recovery failed.</TD
    552 ></TR
    553 ><TR
    554 ><TD
    555 COLSPAN="3"
    556 ALIGN="LEFT"
    557 >VCR and Set-Top Box</TD
    558 ></TR
    559 ><TR
    560 ><TD
    561 ><CODE
    562 CLASS="CONSTANT"
    563 >V4L2_IN_ST_MACROVISION</CODE
    564 ></TD
    565 ><TD
    566 >0x01000000</TD
    567 ><TD
    568 >Macrovision is an analog copy prevention system
    569 mangling the video signal to confuse video recorders. When this
    570 flag is set Macrovision has been detected.</TD
    571 ></TR
    572 ><TR
    573 ><TD
    574 ><CODE
    575 CLASS="CONSTANT"
    576 >V4L2_IN_ST_NO_ACCESS</CODE
    577 ></TD
    578 ><TD
    579 >0x02000000</TD
    580 ><TD
    581 >Conditional access denied.</TD
    582 ></TR
    583 ><TR
    584 ><TD
    585 ><CODE
    586 CLASS="CONSTANT"
    587 >V4L2_IN_ST_VTR</CODE
    588 ></TD
    589 ><TD
    590 >0x04000000</TD
    591 ><TD
    592 >VTR time constant. [?]</TD
    593 ></TR
    594 ></TBODY
    595 ></TABLE
    596 ></DIV
    597 ></DIV
    598 ><DIV
    599 CLASS="REFSECT1"
    600 ><A
    601 NAME="AEN9135"
    602 ></A
    603 ><H2
    604 >Return Value</H2
    605 ><P
    606 >On success <SPAN
    607 CLASS="RETURNVALUE"
    608 >0</SPAN
    609 > is returned, on error <SPAN
    610 CLASS="RETURNVALUE"
    611 >-1</SPAN
    612 > and the <CODE
    613 CLASS="VARNAME"
    614 >errno</CODE
    615 > variable is set appropriately:</P
    616 ><P
    617 ></P
    618 ><DIV
    619 CLASS="VARIABLELIST"
    620 ><DL
    621 ><DT
    622 ><SPAN
    623 CLASS="ERRORCODE"
    624 >EINVAL</SPAN
    625 ></DT
    626 ><DD
    627 ><P
    628 >The struct&nbsp;<A
    629 HREF="r8936.htm#V4L2-INPUT"
    630 >v4l2_input</A
    631 > <CODE
    632 CLASS="STRUCTFIELD"
    633 >index</CODE
    634 > is
    635 out of bounds.</P
    636 ></DD
    637 ></DL
    638 ></DIV
    639 ></DIV
    640 ><DIV
    641 CLASS="NAVFOOTER"
    642 ><HR
    643 ALIGN="LEFT"
    644 WIDTH="100%"><TABLE
    645 SUMMARY="Footer navigation table"
    646 WIDTH="100%"
    647 BORDER="0"
    648 CELLPADDING="0"
    649 CELLSPACING="0"
    650 ><TR
    651 ><TD
    652 WIDTH="33%"
    653 ALIGN="left"
    654 VALIGN="top"
    655 ><A
    656 HREF="r8724.htm"
    657 ACCESSKEY="P"
    658 >Prev</A
    659 ></TD
    660 ><TD
    661 WIDTH="34%"
    662 ALIGN="center"
    663 VALIGN="top"
    664 ><A
    665 HREF="book1.htm"
    666 ACCESSKEY="H"
    667 >Home</A
    668 ></TD
    669 ><TD
    670 WIDTH="33%"
    671 ALIGN="right"
    672 VALIGN="top"
    673 ><A
    674 HREF="r9149.htm"
    675 ACCESSKEY="N"
    676 >Next</A
    677 ></TD
    678 ></TR
    679 ><TR
    680 ><TD
    681 WIDTH="33%"
    682 ALIGN="left"
    683 VALIGN="top"
    684 >ioctl VIDIOC_ENUM_FRAMEINTERVALS</TD
    685 ><TD
    686 WIDTH="34%"
    687 ALIGN="center"
    688 VALIGN="top"
    689 ><A
    690 HREF="r7624.htm"
    691 ACCESSKEY="U"
    692 >Up</A
    693 ></TD
    694 ><TD
    695 WIDTH="33%"
    696 ALIGN="right"
    697 VALIGN="top"
    698 >ioctl VIDIOC_ENUMOUTPUT</TD
    699 ></TR
    700 ></TABLE
    701 ></DIV
    702 ></BODY
    703 ></HTML
    704 >
    705