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