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_G_AUDIO, VIDIOC_S_AUDIO</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_ENUMSTD"
     17 HREF="r9288.htm"><LINK
     18 REL="NEXT"
     19 TITLE="ioctl VIDIOC_G_AUDOUT, VIDIOC_S_AUDOUT"
     20 HREF="r9688.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="r9288.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="r9688.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-G-AUDIO"
     74 ></A
     75 >ioctl VIDIOC_G_AUDIO, VIDIOC_S_AUDIO</H1
     76 ><DIV
     77 CLASS="REFNAMEDIV"
     78 ><A
     79 NAME="AEN9543"
     80 ></A
     81 ><H2
     82 >Name</H2
     83 >VIDIOC_G_AUDIO, VIDIOC_S_AUDIO&nbsp;--&nbsp;Query or select the current audio input and its
     84 attributes</DIV
     85 ><DIV
     86 CLASS="REFSYNOPSISDIV"
     87 ><A
     88 NAME="AEN9547"
     89 ></A
     90 ><H2
     91 >Synopsis</H2
     92 ><DIV
     93 CLASS="FUNCSYNOPSIS"
     94 ><P
     95 ></P
     96 ><A
     97 NAME="AEN9548"
     98 ></A
     99 ><P
    100 ><CODE
    101 ><CODE
    102 CLASS="FUNCDEF"
    103 >int ioctl</CODE
    104 >(int fd, int request, struct v4l2_audio *argp);</CODE
    105 ></P
    106 ><P
    107 ></P
    108 ></DIV
    109 ><DIV
    110 CLASS="FUNCSYNOPSIS"
    111 ><P
    112 ></P
    113 ><A
    114 NAME="AEN9558"
    115 ></A
    116 ><P
    117 ><CODE
    118 ><CODE
    119 CLASS="FUNCDEF"
    120 >int ioctl</CODE
    121 >(int fd, int request, const struct v4l2_audio *argp);</CODE
    122 ></P
    123 ><P
    124 ></P
    125 ></DIV
    126 ></DIV
    127 ><DIV
    128 CLASS="REFSECT1"
    129 ><A
    130 NAME="AEN9568"
    131 ></A
    132 ><H2
    133 >Arguments</H2
    134 ><P
    135 ></P
    136 ><DIV
    137 CLASS="VARIABLELIST"
    138 ><DL
    139 ><DT
    140 ><CODE
    141 CLASS="PARAMETER"
    142 >fd</CODE
    143 ></DT
    144 ><DD
    145 ><P
    146 >File descriptor returned by <A
    147 HREF="r14090.htm"
    148 ><CODE
    149 CLASS="FUNCTION"
    150 >open()</CODE
    151 ></A
    152 >.</P
    153 ></DD
    154 ><DT
    155 ><CODE
    156 CLASS="PARAMETER"
    157 >request</CODE
    158 ></DT
    159 ><DD
    160 ><P
    161 >VIDIOC_G_AUDIO, VIDIOC_S_AUDIO</P
    162 ></DD
    163 ><DT
    164 ><CODE
    165 CLASS="PARAMETER"
    166 >argp</CODE
    167 ></DT
    168 ><DD
    169 ><P
    170 ></P
    171 ></DD
    172 ></DL
    173 ></DIV
    174 ></DIV
    175 ><DIV
    176 CLASS="REFSECT1"
    177 ><A
    178 NAME="AEN9588"
    179 ></A
    180 ><H2
    181 >Description</H2
    182 ><P
    183 >To query the current audio input applications zero out the
    184 <CODE
    185 CLASS="STRUCTFIELD"
    186 >reserved</CODE
    187 > array of a struct&nbsp;<A
    188 HREF="r9539.htm#V4L2-AUDIO"
    189 >v4l2_audio</A
    190 >
    191 and call the <CODE
    192 CLASS="CONSTANT"
    193 >VIDIOC_G_AUDIO</CODE
    194 > ioctl with a pointer
    195 to this structure. Drivers fill the rest of the structure or return an
    196 <SPAN
    197 CLASS="ERRORCODE"
    198 >EINVAL</SPAN
    199 > error code when the device has no audio inputs, or none which combine
    200 with the current video input.</P
    201 ><P
    202 >Audio inputs have one writable property, the audio mode. To
    203 select the current audio input <SPAN
    204 CLASS="emphasis"
    205 ><I
    206 CLASS="EMPHASIS"
    207 >and</I
    208 ></SPAN
    209 > change the
    210 audio mode, applications initialize the
    211 <CODE
    212 CLASS="STRUCTFIELD"
    213 >index</CODE
    214 > and <CODE
    215 CLASS="STRUCTFIELD"
    216 >mode</CODE
    217 >
    218 fields, and the
    219 <CODE
    220 CLASS="STRUCTFIELD"
    221 >reserved</CODE
    222 > array of a
    223 <CODE
    224 CLASS="STRUCTNAME"
    225 >v4l2_audio</CODE
    226 > structure and call the
    227 <CODE
    228 CLASS="CONSTANT"
    229 >VIDIOC_S_AUDIO</CODE
    230 > ioctl. Drivers may switch to a
    231 different audio mode if the request cannot be satisfied. However, this
    232 is a write-only ioctl, it does not return the actual new audio
    233 mode.</P
    234 ><DIV
    235 CLASS="TABLE"
    236 ><A
    237 NAME="V4L2-AUDIO"
    238 ></A
    239 ><P
    240 ><B
    241 >Table 1. struct <CODE
    242 CLASS="STRUCTNAME"
    243 >v4l2_audio</CODE
    244 ></B
    245 ></P
    246 ><TABLE
    247 BORDER="0"
    248 FRAME="void"
    249 WIDTH="100%"
    250 CLASS="CALSTABLE"
    251 ><COL
    252 WIDTH="25%"
    253 TITLE="C1"><COL
    254 WIDTH="25%"
    255 TITLE="C2"><COL
    256 WIDTH="50%"
    257 TITLE="C3"><TBODY
    258 VALIGN="TOP"
    259 ><TR
    260 ><TD
    261 >__u32</TD
    262 ><TD
    263 ><CODE
    264 CLASS="STRUCTFIELD"
    265 >index</CODE
    266 ></TD
    267 ><TD
    268 >Identifies the audio input, set by the
    269 driver or application.</TD
    270 ></TR
    271 ><TR
    272 ><TD
    273 >__u8</TD
    274 ><TD
    275 ><CODE
    276 CLASS="STRUCTFIELD"
    277 >name</CODE
    278 >[32]</TD
    279 ><TD
    280 >Name of the audio input, a NUL-terminated ASCII
    281 string, for example: "Line In". This information is intended for the
    282 user, preferably the connector label on the device itself.</TD
    283 ></TR
    284 ><TR
    285 ><TD
    286 >__u32</TD
    287 ><TD
    288 ><CODE
    289 CLASS="STRUCTFIELD"
    290 >capability</CODE
    291 ></TD
    292 ><TD
    293 >Audio capability flags, see <A
    294 HREF="r9539.htm#AUDIO-CAPABILITY"
    295 >Table 2</A
    296 >.</TD
    297 ></TR
    298 ><TR
    299 ><TD
    300 >__u32</TD
    301 ><TD
    302 ><CODE
    303 CLASS="STRUCTFIELD"
    304 >mode</CODE
    305 ></TD
    306 ><TD
    307 >Audio mode flags set by drivers and applications (on
    308             <CODE
    309 CLASS="CONSTANT"
    310 >VIDIOC_S_AUDIO</CODE
    311 > ioctl), see <A
    312 HREF="r9539.htm#AUDIO-MODE"
    313 >Table 3</A
    314 >.</TD
    315 ></TR
    316 ><TR
    317 ><TD
    318 >__u32</TD
    319 ><TD
    320 ><CODE
    321 CLASS="STRUCTFIELD"
    322 >reserved</CODE
    323 >[2]</TD
    324 ><TD
    325 >Reserved for future extensions. Drivers and
    326 applications must set the array to zero.</TD
    327 ></TR
    328 ></TBODY
    329 ></TABLE
    330 ></DIV
    331 ><DIV
    332 CLASS="TABLE"
    333 ><A
    334 NAME="AUDIO-CAPABILITY"
    335 ></A
    336 ><P
    337 ><B
    338 >Table 2. Audio Capability Flags</B
    339 ></P
    340 ><TABLE
    341 BORDER="0"
    342 FRAME="void"
    343 WIDTH="100%"
    344 CLASS="CALSTABLE"
    345 ><COL
    346 WIDTH="38%"
    347 TITLE="C1"><COL
    348 WIDTH="12%"
    349 TITLE="C2"><COL
    350 WIDTH="50%"
    351 TITLE="C3"><TBODY
    352 VALIGN="TOP"
    353 ><TR
    354 ><TD
    355 ><CODE
    356 CLASS="CONSTANT"
    357 >V4L2_AUDCAP_STEREO</CODE
    358 ></TD
    359 ><TD
    360 >0x00001</TD
    361 ><TD
    362 >This is a stereo input. The flag is intended to
    363 automatically disable stereo recording etc. when the signal is always
    364 monaural. The API provides no means to detect if stereo is
    365 <SPAN
    366 CLASS="emphasis"
    367 ><I
    368 CLASS="EMPHASIS"
    369 >received</I
    370 ></SPAN
    371 >, unless the audio input belongs to a
    372 tuner.</TD
    373 ></TR
    374 ><TR
    375 ><TD
    376 ><CODE
    377 CLASS="CONSTANT"
    378 >V4L2_AUDCAP_AVL</CODE
    379 ></TD
    380 ><TD
    381 >0x00002</TD
    382 ><TD
    383 >Automatic Volume Level mode is supported.</TD
    384 ></TR
    385 ></TBODY
    386 ></TABLE
    387 ></DIV
    388 ><DIV
    389 CLASS="TABLE"
    390 ><A
    391 NAME="AUDIO-MODE"
    392 ></A
    393 ><P
    394 ><B
    395 >Table 3. Audio Mode Flags</B
    396 ></P
    397 ><TABLE
    398 BORDER="0"
    399 FRAME="void"
    400 WIDTH="100%"
    401 CLASS="CALSTABLE"
    402 ><COL
    403 WIDTH="38%"
    404 TITLE="C1"><COL
    405 WIDTH="12%"
    406 TITLE="C2"><COL
    407 WIDTH="50%"
    408 TITLE="C3"><TBODY
    409 VALIGN="TOP"
    410 ><TR
    411 ><TD
    412 ><CODE
    413 CLASS="CONSTANT"
    414 >V4L2_AUDMODE_AVL</CODE
    415 ></TD
    416 ><TD
    417 >0x00001</TD
    418 ><TD
    419 >AVL mode is on.</TD
    420 ></TR
    421 ></TBODY
    422 ></TABLE
    423 ></DIV
    424 ></DIV
    425 ><DIV
    426 CLASS="REFSECT1"
    427 ><A
    428 NAME="AEN9671"
    429 ></A
    430 ><H2
    431 >Return Value</H2
    432 ><P
    433 >On success <SPAN
    434 CLASS="RETURNVALUE"
    435 >0</SPAN
    436 > is returned, on error <SPAN
    437 CLASS="RETURNVALUE"
    438 >-1</SPAN
    439 > and the <CODE
    440 CLASS="VARNAME"
    441 >errno</CODE
    442 > variable is set appropriately:</P
    443 ><P
    444 ></P
    445 ><DIV
    446 CLASS="VARIABLELIST"
    447 ><DL
    448 ><DT
    449 ><SPAN
    450 CLASS="ERRORCODE"
    451 >EINVAL</SPAN
    452 ></DT
    453 ><DD
    454 ><P
    455 >No audio inputs combine with the current video input,
    456 or the number of the selected audio input is out of bounds or it does
    457 not combine, or there are no audio inputs at all and the ioctl is not
    458 supported.</P
    459 ></DD
    460 ><DT
    461 ><SPAN
    462 CLASS="ERRORCODE"
    463 >EBUSY</SPAN
    464 ></DT
    465 ><DD
    466 ><P
    467 >I/O is in progress, the input cannot be
    468 switched.</P
    469 ></DD
    470 ></DL
    471 ></DIV
    472 ></DIV
    473 ><DIV
    474 CLASS="NAVFOOTER"
    475 ><HR
    476 ALIGN="LEFT"
    477 WIDTH="100%"><TABLE
    478 SUMMARY="Footer navigation table"
    479 WIDTH="100%"
    480 BORDER="0"
    481 CELLPADDING="0"
    482 CELLSPACING="0"
    483 ><TR
    484 ><TD
    485 WIDTH="33%"
    486 ALIGN="left"
    487 VALIGN="top"
    488 ><A
    489 HREF="r9288.htm"
    490 ACCESSKEY="P"
    491 >Prev</A
    492 ></TD
    493 ><TD
    494 WIDTH="34%"
    495 ALIGN="center"
    496 VALIGN="top"
    497 ><A
    498 HREF="book1.htm"
    499 ACCESSKEY="H"
    500 >Home</A
    501 ></TD
    502 ><TD
    503 WIDTH="33%"
    504 ALIGN="right"
    505 VALIGN="top"
    506 ><A
    507 HREF="r9688.htm"
    508 ACCESSKEY="N"
    509 >Next</A
    510 ></TD
    511 ></TR
    512 ><TR
    513 ><TD
    514 WIDTH="33%"
    515 ALIGN="left"
    516 VALIGN="top"
    517 >ioctl VIDIOC_ENUMSTD</TD
    518 ><TD
    519 WIDTH="34%"
    520 ALIGN="center"
    521 VALIGN="top"
    522 ><A
    523 HREF="r7624.htm"
    524 ACCESSKEY="U"
    525 >Up</A
    526 ></TD
    527 ><TD
    528 WIDTH="33%"
    529 ALIGN="right"
    530 VALIGN="top"
    531 >ioctl VIDIOC_G_AUDOUT, VIDIOC_S_AUDOUT</TD
    532 ></TR
    533 ></TABLE
    534 ></DIV
    535 ></BODY
    536 ></HTML
    537 >
    538