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 -- 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 <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