[media] DocBook: Document AUDIO_CONTINUE ioctl
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / Documentation / DocBook / media / dvb / audio.xml
blobc27fe73a4b66c9753aecedc33a383f16f465dd70
1 <title>DVB Audio Device</title>
2 <para>The DVB audio device controls the MPEG2 audio decoder of the DVB hardware. It
3 can be accessed through <emphasis role="tt">/dev/dvb/adapter0/audio0</emphasis>. Data types and and
4 ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/video.h</emphasis> in your
5 application.
6 </para>
7 <para>Please note that some DVB cards don&#8217;t have their own MPEG decoder, which results in
8 the omission of the audio and video device.
9 </para>
11 <section id="audio_data_types">
12 <title>Audio Data Types</title>
13 <para>This section describes the structures, data types and defines used when talking to the
14 audio device.
15 </para>
17 <section id="audio-stream-source-t">
18 <title>audio_stream_source_t</title>
19 <para>The audio stream source is set through the AUDIO_SELECT_SOURCE call and can take
20 the following values, depending on whether we are replaying from an internal (demux) or
21 external (user write) source.
22 </para>
23 <programlisting>
24 typedef enum {
25         AUDIO_SOURCE_DEMUX,
26         AUDIO_SOURCE_MEMORY
27 } audio_stream_source_t;
28 </programlisting>
29 <para>AUDIO_SOURCE_DEMUX selects the demultiplexer (fed either by the frontend or the
30 DVR device) as the source of the video stream. If AUDIO_SOURCE_MEMORY
31 is selected the stream comes from the application through the <emphasis role="tt">write()</emphasis> system
32 call.
33 </para>
35 </section>
36 <section id="audio-play-state-t">
37 <title>audio_play_state_t</title>
38 <para>The following values can be returned by the AUDIO_GET_STATUS call representing the
39 state of audio playback.
40 </para>
41 <programlisting>
42 typedef enum {
43         AUDIO_STOPPED,
44         AUDIO_PLAYING,
45         AUDIO_PAUSED
46 } audio_play_state_t;
47 </programlisting>
49 </section>
50 <section id="audio-channel-select-t">
51 <title>audio_channel_select_t</title>
52 <para>The audio channel selected via AUDIO_CHANNEL_SELECT is determined by the
53 following values.
54 </para>
55 <programlisting>
56 typedef enum {
57         AUDIO_STEREO,
58         AUDIO_MONO_LEFT,
59         AUDIO_MONO_RIGHT,
60         AUDIO_MONO,
61         AUDIO_STEREO_SWAPPED
62 } audio_channel_select_t;
63 </programlisting>
65 </section>
66 <section id="audio-status">
67 <title>struct audio_status</title>
68 <para>The AUDIO_GET_STATUS call returns the following structure informing about various
69 states of the playback operation.
70 </para>
71 <programlisting>
72 typedef struct audio_status {
73         boolean AV_sync_state;
74         boolean mute_state;
75         audio_play_state_t play_state;
76         audio_stream_source_t stream_source;
77         audio_channel_select_t channel_select;
78         boolean bypass_mode;
79         audio_mixer_t mixer_state;
80 } audio_status_t;
81 </programlisting>
83 </section>
84 <section id="audio-mixer">
85 <title>struct audio_mixer</title>
86 <para>The following structure is used by the AUDIO_SET_MIXER call to set the audio
87 volume.
88 </para>
89 <programlisting>
90 typedef struct audio_mixer {
91         unsigned int volume_left;
92         unsigned int volume_right;
93 } audio_mixer_t;
94 </programlisting>
96 </section>
97 <section id="audio_encodings">
98 <title>audio encodings</title>
99 <para>A call to AUDIO_GET_CAPABILITIES returns an unsigned integer with the following
100 bits set according to the hardwares capabilities.
101 </para>
102 <programlisting>
103  #define AUDIO_CAP_DTS    1
104  #define AUDIO_CAP_LPCM   2
105  #define AUDIO_CAP_MP1    4
106  #define AUDIO_CAP_MP2    8
107  #define AUDIO_CAP_MP3   16
108  #define AUDIO_CAP_AAC   32
109  #define AUDIO_CAP_OGG   64
110  #define AUDIO_CAP_SDDS 128
111  #define AUDIO_CAP_AC3  256
112 </programlisting>
114 </section>
115 <section id="audio-karaoke">
116 <title>struct audio_karaoke</title>
117 <para>The ioctl AUDIO_SET_KARAOKE uses the following format:
118 </para>
119 <programlisting>
120 typedef
121 struct audio_karaoke {
122         int vocal1;
123         int vocal2;
124         int melody;
125 } audio_karaoke_t;
126 </programlisting>
127 <para>If Vocal1 or Vocal2 are non-zero, they get mixed into left and right t at 70% each. If both,
128 Vocal1 and Vocal2 are non-zero, Vocal1 gets mixed into the left channel and Vocal2 into the
129 right channel at 100% each. Ff Melody is non-zero, the melody channel gets mixed into left
130 and right.
131 </para>
133 </section>
134 <section id="audio-attributes-t">
135 <title>audio attributes</title>
136 <para>The following attributes can be set by a call to AUDIO_SET_ATTRIBUTES:
137 </para>
138 <programlisting>
139  typedef uint16_t audio_attributes_t;
140  /&#x22C6;   bits: descr. &#x22C6;/
141  /&#x22C6;   15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, &#x22C6;/
142  /&#x22C6;   12    multichannel extension &#x22C6;/
143  /&#x22C6;   11-10 audio type (0=not spec, 1=language included) &#x22C6;/
144  /&#x22C6;    9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) &#x22C6;/
145  /&#x22C6;    7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit,  &#x22C6;/
146  /&#x22C6;    5- 4 Sample frequency fs (0=48kHz, 1=96kHz) &#x22C6;/
147  /&#x22C6;    2- 0 number of audio channels (n+1 channels) &#x22C6;/
148 </programlisting>
149  </section></section>
150 <section id="audio_function_calls">
151 <title>Audio Function Calls</title>
154 <section id="audio_fopen">
155 <title>open()</title>
156 <para>DESCRIPTION
157 </para>
158 <informaltable><tgroup cols="1"><tbody><row><entry
159  align="char">
160 <para>This system call opens a named audio device (e.g. /dev/dvb/adapter0/audio0)
161  for subsequent use. When an open() call has succeeded, the device will be ready
162  for use. The significance of blocking or non-blocking mode is described in the
163  documentation for functions where there is a difference. It does not affect the
164  semantics of the open() call itself. A device opened in blocking mode can later
165  be put into non-blocking mode (and vice versa) using the F_SETFL command
166  of the fcntl system call. This is a standard system call, documented in the Linux
167  manual page for fcntl. Only one user can open the Audio Device in O_RDWR
168  mode. All other attempts to open the device in this mode will fail, and an error
169  code will be returned. If the Audio Device is opened in O_RDONLY mode, the
170  only ioctl call that can be used is AUDIO_GET_STATUS. All other call will
171  return with an error code.</para>
172 </entry>
173  </row></tbody></tgroup></informaltable>
174 <para>SYNOPSIS
175 </para>
176 <informaltable><tgroup cols="1"><tbody><row><entry
177  align="char">
178 <para>int open(const char &#x22C6;deviceName, int flags);</para>
179 </entry>
180  </row></tbody></tgroup></informaltable>
181 <para>PARAMETERS
182 </para>
183 <informaltable><tgroup cols="2"><tbody><row><entry
184  align="char">
185 <para>const char
186  *deviceName</para>
187 </entry><entry
188  align="char">
189 <para>Name of specific audio device.</para>
190 </entry>
191  </row><row><entry
192  align="char">
193 <para>int flags</para>
194 </entry><entry
195  align="char">
196 <para>A bit-wise OR of the following flags:</para>
197 </entry>
198  </row><row><entry
199  align="char">
200 </entry><entry
201  align="char">
202 <para>O_RDONLY read-only access</para>
203 </entry>
204  </row><row><entry
205  align="char">
206 </entry><entry
207  align="char">
208 <para>O_RDWR read/write access</para>
209 </entry>
210  </row><row><entry
211  align="char">
212 </entry><entry
213  align="char">
214 <para>O_NONBLOCK open in non-blocking mode</para>
215 </entry>
216  </row><row><entry
217  align="char">
218 </entry><entry
219  align="char">
220 <para>(blocking mode is the default)</para>
221 </entry>
222  </row></tbody></tgroup></informaltable>
223 <para>ERRORS
224 </para>
225 <informaltable><tgroup cols="2"><tbody><row><entry
226  align="char">
227 <para>ENODEV</para>
228 </entry><entry
229  align="char">
230 <para>Device driver not loaded/available.</para>
231 </entry>
232  </row><row><entry
233  align="char">
234 <para>EINTERNAL</para>
235 </entry><entry
236  align="char">
237 <para>Internal error.</para>
238 </entry>
239  </row><row><entry
240  align="char">
241 <para>EBUSY</para>
242 </entry><entry
243  align="char">
244 <para>Device or resource busy.</para>
245 </entry>
246  </row><row><entry
247  align="char">
248 <para>EINVAL</para>
249 </entry><entry
250  align="char">
251 <para>Invalid argument.</para>
252 </entry>
253  </row></tbody></tgroup></informaltable>
255 </section>
256 <section id="audio_fclose">
257 <title>close()</title>
258 <para>DESCRIPTION
259 </para>
260 <informaltable><tgroup cols="1"><tbody><row><entry
261  align="char">
262 <para>This system call closes a previously opened audio device.</para>
263 </entry>
264  </row></tbody></tgroup></informaltable>
265 <para>SYNOPSIS
266 </para>
267 <informaltable><tgroup cols="1"><tbody><row><entry
268  align="char">
269 <para>int close(int fd);</para>
270 </entry>
271  </row></tbody></tgroup></informaltable>
272 <para>PARAMETERS
273 </para>
274 <informaltable><tgroup cols="2"><tbody><row><entry
275  align="char">
276 <para>int fd</para>
277 </entry><entry
278  align="char">
279 <para>File descriptor returned by a previous call to open().</para>
280 </entry>
281  </row></tbody></tgroup></informaltable>
282 <para>ERRORS
283 </para>
284 <informaltable><tgroup cols="2"><tbody><row><entry
285  align="char">
286 <para>EBADF</para>
287 </entry><entry
288  align="char">
289 <para>fd is not a valid open file descriptor.</para>
290 </entry>
291  </row></tbody></tgroup></informaltable>
293 </section>
294 <section id="audio_fwrite">
295 <title>write()</title>
296 <para>DESCRIPTION
297 </para>
298 <informaltable><tgroup cols="1"><tbody><row><entry
299  align="char">
300 <para>This system call can only be used if AUDIO_SOURCE_MEMORY is selected
301  in the ioctl call AUDIO_SELECT_SOURCE. The data provided shall be in
302  PES format. If O_NONBLOCK is not specified the function will block until
303  buffer space is available. The amount of data to be transferred is implied by
304  count.</para>
305 </entry>
306  </row></tbody></tgroup></informaltable>
307 <para>SYNOPSIS
308 </para>
309 <informaltable><tgroup cols="1"><tbody><row><entry
310  align="char">
311 <para>size_t write(int fd, const void &#x22C6;buf, size_t count);</para>
312 </entry>
313  </row></tbody></tgroup></informaltable>
314 <para>PARAMETERS
315 </para>
316 <informaltable><tgroup cols="2"><tbody><row><entry
317  align="char">
318 <para>int fd</para>
319 </entry><entry
320  align="char">
321 <para>File descriptor returned by a previous call to open().</para>
322 </entry>
323  </row><row><entry
324  align="char">
325 <para>void *buf</para>
326 </entry><entry
327  align="char">
328 <para>Pointer to the buffer containing the PES data.</para>
329 </entry>
330  </row><row><entry
331  align="char">
332 <para>size_t count</para>
333 </entry><entry
334  align="char">
335 <para>Size of buf.</para>
336 </entry>
337  </row></tbody></tgroup></informaltable>
338 <para>ERRORS
339 </para>
340 <informaltable><tgroup cols="2"><tbody><row><entry
341  align="char">
342 <para>EPERM</para>
343 </entry><entry
344  align="char">
345 <para>Mode AUDIO_SOURCE_MEMORY not selected.</para>
346 </entry>
347  </row><row><entry
348  align="char">
349 <para>ENOMEM</para>
350 </entry><entry
351  align="char">
352 <para>Attempted to write more data than the internal buffer can
353  hold.</para>
354 </entry>
355  </row><row><entry
356  align="char">
357 <para>EBADF</para>
358 </entry><entry
359  align="char">
360 <para>fd is not a valid open file descriptor.</para>
361 </entry>
362  </row></tbody></tgroup></informaltable>
364 </section><section id="AUDIO_STOP"
365 role="subsection"><title>AUDIO_STOP</title>
366 <para>DESCRIPTION
367 </para>
368 <informaltable><tgroup cols="1"><tbody><row><entry
369  align="char">
370 <para>This ioctl call asks the Audio Device to stop playing the current stream.</para>
371 </entry>
372  </row></tbody></tgroup></informaltable>
373 <para>SYNOPSIS
374 </para>
375 <informaltable><tgroup cols="1"><tbody><row><entry
376  align="char">
377 <para>int ioctl(int fd, int request = AUDIO_STOP);</para>
378 </entry>
379  </row></tbody></tgroup></informaltable>
380 <para>PARAMETERS
381 </para>
382 <informaltable><tgroup cols="2"><tbody><row><entry
383  align="char">
384 <para>int fd</para>
385 </entry><entry
386  align="char">
387 <para>File descriptor returned by a previous call to open().</para>
388 </entry>
389  </row><row><entry
390  align="char">
391 <para>int request</para>
392 </entry><entry
393  align="char">
394 <para>Equals AUDIO_STOP for this command.</para>
395 </entry>
396  </row></tbody></tgroup></informaltable>
397 <para>ERRORS
398 </para>
399 <informaltable><tgroup cols="2"><tbody><row><entry
400  align="char">
401 <para>EBADF</para>
402 </entry><entry
403  align="char">
404 <para>fd is not a valid open file descriptor</para>
405 </entry>
406  </row><row><entry
407  align="char">
408 <para>EINTERNAL</para>
409 </entry><entry
410  align="char">
411 <para>Internal error.</para>
412 </entry>
413  </row></tbody></tgroup></informaltable>
415 </section><section id="AUDIO_PLAY"
416 role="subsection"><title>AUDIO_PLAY</title>
417 <para>DESCRIPTION
418 </para>
419 <informaltable><tgroup cols="1"><tbody><row><entry
420  align="char">
421 <para>This ioctl call asks the Audio Device to start playing an audio stream from the
422  selected source.</para>
423 </entry>
424  </row></tbody></tgroup></informaltable>
425 <para>SYNOPSIS
426 </para>
427 <informaltable><tgroup cols="1"><tbody><row><entry
428  align="char">
429 <para>int ioctl(int fd, int request = AUDIO_PLAY);</para>
430 </entry>
431  </row></tbody></tgroup></informaltable>
432 <para>PARAMETERS
433 </para>
434 <informaltable><tgroup cols="2"><tbody><row><entry
435  align="char">
436 <para>int fd</para>
437 </entry><entry
438  align="char">
439 <para>File descriptor returned by a previous call to open().</para>
440 </entry>
441  </row><row><entry
442  align="char">
443 <para>int request</para>
444 </entry><entry
445  align="char">
446 <para>Equals AUDIO_PLAY for this command.</para>
447 </entry>
448  </row></tbody></tgroup></informaltable>
449 <para>ERRORS
450 </para>
451 <informaltable><tgroup cols="2"><tbody><row><entry
452  align="char">
453 <para>EBADF</para>
454 </entry><entry
455  align="char">
456 <para>fd is not a valid open file descriptor</para>
457 </entry>
458  </row><row><entry
459  align="char">
460 <para>EINTERNAL</para>
461 </entry><entry
462  align="char">
463 <para>Internal error.</para>
464 </entry>
465  </row></tbody></tgroup></informaltable>
467 </section><section id="AUDIO_PAUSE"
468 role="subsection"><title>AUDIO_PAUSE</title>
469 <para>DESCRIPTION
470 </para>
471 <informaltable><tgroup cols="1"><tbody><row><entry
472  align="char">
473 <para>This ioctl call suspends the audio stream being played. Decoding and playing
474  are paused. It is then possible to restart again decoding and playing process of
475  the audio stream using AUDIO_CONTINUE command.</para>
476 </entry>
477  </row><row><entry
478  align="char">
479 <para>If AUDIO_SOURCE_MEMORY is selected in the ioctl call
480  AUDIO_SELECT_SOURCE, the DVB-subsystem will not decode (consume)
481  any more data until the ioctl call AUDIO_CONTINUE or AUDIO_PLAY is
482  performed.</para>
483 </entry>
484  </row></tbody></tgroup></informaltable>
485 <para>SYNOPSIS
486 </para>
487 <informaltable><tgroup cols="1"><tbody><row><entry
488  align="char">
489 <para>int ioctl(int fd, int request = AUDIO_PAUSE);</para>
490 </entry>
491  </row></tbody></tgroup></informaltable>
492 <para>PARAMETERS
493 </para>
494 <informaltable><tgroup cols="2"><tbody><row><entry
495  align="char">
496 <para>int fd</para>
497 </entry><entry
498  align="char">
499 <para>File descriptor returned by a previous call to open().</para>
500 </entry>
501  </row><row><entry
502  align="char">
503 <para>int request</para>
504 </entry><entry
505  align="char">
506 <para>Equals AUDIO_PAUSE for this command.</para>
507 </entry>
508  </row></tbody></tgroup></informaltable>
509 <para>ERRORS
510 </para>
511 <informaltable><tgroup cols="2"><tbody><row><entry
512  align="char">
513 <para>EBADF</para>
514 </entry><entry
515  align="char">
516 <para>fd is not a valid open file descriptor.</para>
517 </entry>
518  </row><row><entry
519  align="char">
520 <para>EINTERNAL</para>
521 </entry><entry
522  align="char">
523 <para>Internal error.</para>
524 </entry>
525  </row></tbody></tgroup></informaltable>
528 </section><section id="AUDIO_CONTINUE"
529 role="subsection"><title>AUDIO_CONTINUE</title>
530 <para>DESCRIPTION
531 </para>
532 <informaltable><tgroup cols="1"><tbody><row><entry
533  align="char">
534 <para>This ioctl restarts the decoding and playing process previously paused
535 with AUDIO_PAUSE command.</para>
536 </entry>
537  </row><row><entry
538  align="char">
539 <para>It only works if the stream were previously stopped with AUDIO_PAUSE</para>
540 </entry>
541  </row></tbody></tgroup></informaltable>
542 <para>SYNOPSIS
543 </para>
544 <informaltable><tgroup cols="1"><tbody><row><entry
545  align="char">
546 <para>int ioctl(int fd, int request = AUDIO_CONTINUE);</para>
547 </entry>
548  </row></tbody></tgroup></informaltable>
549 <para>PARAMETERS
550 </para>
551 <informaltable><tgroup cols="2"><tbody><row><entry
552  align="char">
553 <para>int fd</para>
554 </entry><entry
555  align="char">
556 <para>File descriptor returned by a previous call to open().</para>
557 </entry>
558  </row><row><entry
559  align="char">
560 <para>int request</para>
561 </entry><entry
562  align="char">
563 <para>Equals AUDIO_CONTINUE for this command.</para>
564 </entry>
565  </row></tbody></tgroup></informaltable>
566 <para>ERRORS
567 </para>
568 <informaltable><tgroup cols="2"><tbody><row><entry
569  align="char">
570 <para>EBADF</para>
571 </entry><entry
572  align="char">
573 <para>fd is not a valid open file descriptor.</para>
574 </entry>
575  </row><row><entry
576  align="char">
577 <para>EINTERNAL</para>
578 </entry><entry
579  align="char">
580 <para>Internal error.</para>
581 </entry>
582  </row></tbody></tgroup></informaltable>
584 </section><section id="AUDIO_SELECT_SOURCE"
585 role="subsection"><title>AUDIO_SELECT_SOURCE</title>
586 <para>DESCRIPTION
587 </para>
588 <informaltable><tgroup cols="1"><tbody><row><entry
589  align="char">
590 <para>This ioctl call informs the audio device which source shall be used
591  for the input data. The possible sources are demux or memory. If
592  AUDIO_SOURCE_MEMORY is selected, the data is fed to the Audio Device
593  through the write command.</para>
594 </entry>
595  </row></tbody></tgroup></informaltable>
596 <para>SYNOPSIS
597 </para>
598 <informaltable><tgroup cols="1"><tbody><row><entry
599  align="char">
600 <para>int ioctl(int fd, int request = AUDIO_SELECT_SOURCE,
601  audio_stream_source_t source);</para>
602 </entry>
603  </row></tbody></tgroup></informaltable>
604 <para>PARAMETERS
605 </para>
606 <informaltable><tgroup cols="2"><tbody><row><entry
607  align="char">
608 <para>int fd</para>
609 </entry><entry
610  align="char">
611 <para>File descriptor returned by a previous call to open().</para>
612 </entry>
613  </row><row><entry
614  align="char">
615 <para>int request</para>
616 </entry><entry
617  align="char">
618 <para>Equals AUDIO_SELECT_SOURCE for this command.</para>
619 </entry>
620  </row><row><entry
621  align="char">
622 <para>audio_stream_source_t
623  source</para>
624 </entry><entry
625  align="char">
626 <para>Indicates the source that shall be used for the Audio
627  stream.</para>
628 </entry>
629  </row></tbody></tgroup></informaltable>
630 <para>ERRORS
631 </para>
632 <informaltable><tgroup cols="2"><tbody><row><entry
633  align="char">
634 <para>EBADF</para>
635 </entry><entry
636  align="char">
637 <para>fd is not a valid open file descriptor.</para>
638 </entry>
639  </row><row><entry
640  align="char">
641 <para>EINTERNAL</para>
642 </entry><entry
643  align="char">
644 <para>Internal error.</para>
645 </entry>
646  </row><row><entry
647  align="char">
648 <para>EINVAL</para>
649 </entry><entry
650  align="char">
651 <para>Illegal input parameter.</para>
652 </entry>
653  </row></tbody></tgroup></informaltable>
655 </section><section id="AUDIO_SET_MUTE"
656 role="subsection"><title>AUDIO_SET_MUTE</title>
657 <para>DESCRIPTION
658 </para>
659 <informaltable><tgroup cols="1"><tbody><row><entry
660  align="char">
661 <para>This ioctl call asks the audio device to mute the stream that is currently being
662  played.</para>
663 </entry>
664  </row></tbody></tgroup></informaltable>
665 <para>SYNOPSIS
666 </para>
667 <informaltable><tgroup cols="1"><tbody><row><entry
668  align="char">
669 <para>int ioctl(int fd, int request = AUDIO_SET_MUTE,
670  boolean state);</para>
671 </entry>
672  </row></tbody></tgroup></informaltable>
673 <para>PARAMETERS
674 </para>
675 <informaltable><tgroup cols="2"><tbody><row><entry
676  align="char">
677 <para>int fd</para>
678 </entry><entry
679  align="char">
680 <para>File descriptor returned by a previous call to open().</para>
681 </entry>
682  </row><row><entry
683  align="char">
684 <para>int request</para>
685 </entry><entry
686  align="char">
687 <para>Equals AUDIO_SET_MUTE for this command.</para>
688 </entry>
689  </row><row><entry
690  align="char">
691 <para>boolean state</para>
692 </entry><entry
693  align="char">
694 <para>Indicates if audio device shall mute or not.</para>
695 </entry>
696  </row><row><entry
697  align="char">
698 </entry><entry
699  align="char">
700 <para>TRUE Audio Mute</para>
701 </entry>
702  </row><row><entry
703  align="char">
704 </entry><entry
705  align="char">
706 <para>FALSE Audio Un-mute</para>
707 </entry>
708  </row></tbody></tgroup></informaltable>
709 <para>ERRORS
710 </para>
711 <informaltable><tgroup cols="2"><tbody><row><entry
712  align="char">
713 <para>EBADF</para>
714 </entry><entry
715  align="char">
716 <para>fd is not a valid open file descriptor.</para>
717 </entry>
718  </row><row><entry
719  align="char">
720 <para>EINTERNAL</para>
721 </entry><entry
722  align="char">
723 <para>Internal error.</para>
724 </entry>
725  </row><row><entry
726  align="char">
727 <para>EINVAL</para>
728 </entry><entry
729  align="char">
730 <para>Illegal input parameter.</para>
731 </entry>
732  </row></tbody></tgroup></informaltable>
734 </section><section id="AUDIO_SET_AV_SYNC"
735 role="subsection"><title>AUDIO_SET_AV_SYNC</title>
736 <para>DESCRIPTION
737 </para>
738 <informaltable><tgroup cols="1"><tbody><row><entry
739  align="char">
740 <para>This ioctl call asks the Audio Device to turn ON or OFF A/V synchronization.</para>
741 </entry>
742  </row></tbody></tgroup></informaltable>
743 <para>SYNOPSIS
744 </para>
745 <informaltable><tgroup cols="1"><tbody><row><entry
746  align="char">
747 <para>int ioctl(int fd, int request = AUDIO_SET_AV_SYNC,
748  boolean state);</para>
749 </entry>
750  </row></tbody></tgroup></informaltable>
751 <para>PARAMETERS
752 </para>
753 <informaltable><tgroup cols="2"><tbody><row><entry
754  align="char">
755 <para>int fd</para>
756 </entry><entry
757  align="char">
758 <para>File descriptor returned by a previous call to open().</para>
759 </entry>
760  </row><row><entry
761  align="char">
762 <para>int request</para>
763 </entry><entry
764  align="char">
765 <para>Equals AUDIO_AV_SYNC for this command.</para>
766 </entry>
767  </row><row><entry
768  align="char">
769 <para>boolean state</para>
770 </entry><entry
771  align="char">
772 <para>Tells the DVB subsystem if A/V synchronization shall be
773  ON or OFF.</para>
774 </entry>
775  </row><row><entry
776  align="char">
777 </entry><entry
778  align="char">
779 <para>TRUE AV-sync ON</para>
780 </entry>
781  </row><row><entry
782  align="char">
783 </entry><entry
784  align="char">
785 <para>FALSE AV-sync OFF</para>
786 </entry>
787  </row></tbody></tgroup></informaltable>
788 <para>ERRORS
789 </para>
790 <informaltable><tgroup cols="2"><tbody><row><entry
791  align="char">
792 <para>EBADF</para>
793 </entry><entry
794  align="char">
795 <para>fd is not a valid open file descriptor.</para>
796 </entry>
797  </row><row><entry
798  align="char">
799 <para>EINTERNAL</para>
800 </entry><entry
801  align="char">
802 <para>Internal error.</para>
803 </entry>
804  </row><row><entry
805  align="char">
806 <para>EINVAL</para>
807 </entry><entry
808  align="char">
809 <para>Illegal input parameter.</para>
810 </entry>
811  </row></tbody></tgroup></informaltable>
813 </section><section id="AUDIO_SET_BYPASS_MODE"
814 role="subsection"><title>AUDIO_SET_BYPASS_MODE</title>
815 <para>DESCRIPTION
816 </para>
817 <informaltable><tgroup cols="1"><tbody><row><entry
818  align="char">
819 <para>This ioctl call asks the Audio Device to bypass the Audio decoder and forward
820  the stream without decoding. This mode shall be used if streams that can&#8217;t be
821  handled by the DVB system shall be decoded. Dolby DigitalTM streams are
822  automatically forwarded by the DVB subsystem if the hardware can handle it.</para>
823 </entry>
824  </row></tbody></tgroup></informaltable>
825 <para>SYNOPSIS
826 </para>
827 <informaltable><tgroup cols="1"><tbody><row><entry
828  align="char">
829 <para>int ioctl(int fd, int request =
830  AUDIO_SET_BYPASS_MODE, boolean mode);</para>
831 </entry>
832  </row></tbody></tgroup></informaltable>
833 <para>PARAMETERS
834 </para>
835 <informaltable><tgroup cols="2"><tbody><row><entry
836  align="char">
837 <para>int fd</para>
838 </entry><entry
839  align="char">
840 <para>File descriptor returned by a previous call to open().</para>
841 </entry>
842  </row><row><entry
843  align="char">
844 <para>int request</para>
845 </entry><entry
846  align="char">
847 <para>Equals AUDIO_SET_BYPASS_MODE for this
848  command.</para>
849 </entry>
850  </row><row><entry
851  align="char">
852 <para>boolean mode</para>
853 </entry><entry
854  align="char">
855 <para>Enables or disables the decoding of the current Audio
856  stream in the DVB subsystem.</para>
857 </entry>
858  </row><row><entry
859  align="char">
860 </entry><entry
861  align="char">
862 <para>TRUE Bypass is disabled</para>
863 </entry>
864  </row><row><entry
865  align="char">
866 </entry><entry
867  align="char">
868 <para>FALSE Bypass is enabled</para>
869 </entry>
870  </row></tbody></tgroup></informaltable>
871 <para>ERRORS
872 </para>
873 <informaltable><tgroup cols="2"><tbody><row><entry
874  align="char">
875 <para>EBADF</para>
876 </entry><entry
877  align="char">
878 <para>fd is not a valid open file descriptor.</para>
879 </entry>
880  </row><row><entry
881  align="char">
882 <para>EINTERNAL</para>
883 </entry><entry
884  align="char">
885 <para>Internal error.</para>
886 </entry>
887  </row><row><entry
888  align="char">
889 <para>EINVAL</para>
890 </entry><entry
891  align="char">
892 <para>Illegal input parameter.</para>
893 </entry>
894  </row></tbody></tgroup></informaltable>
896 </section><section id="AUDIO_CHANNEL_SELECT"
897 role="subsection"><title>AUDIO_CHANNEL_SELECT</title>
898 <para>DESCRIPTION
899 </para>
900 <informaltable><tgroup cols="1"><tbody><row><entry
901  align="char">
902 <para>This ioctl call asks the Audio Device to select the requested channel if possible.</para>
903 </entry>
904  </row></tbody></tgroup></informaltable>
905 <para>SYNOPSIS
906 </para>
907 <informaltable><tgroup cols="1"><tbody><row><entry
908  align="char">
909 <para>int ioctl(int fd, int request =
910  AUDIO_CHANNEL_SELECT, audio_channel_select_t);</para>
911 </entry>
912  </row></tbody></tgroup></informaltable>
913 <para>PARAMETERS
914 </para>
915 <informaltable><tgroup cols="2"><tbody><row><entry
916  align="char">
917 <para>int fd</para>
918 </entry><entry
919  align="char">
920 <para>File descriptor returned by a previous call to open().</para>
921 </entry>
922  </row><row><entry
923  align="char">
924 <para>int request</para>
925 </entry><entry
926  align="char">
927 <para>Equals AUDIO_CHANNEL_SELECT for this
928  command.</para>
929 </entry>
930  </row><row><entry
931  align="char">
932 <para>audio_channel_select_t
933  ch</para>
934 </entry><entry
935  align="char">
936 <para>Select the output format of the audio (mono left/right,
937  stereo).</para>
938 </entry>
939  </row></tbody></tgroup></informaltable>
940 <para>ERRORS
941 </para>
942 <informaltable><tgroup cols="2"><tbody><row><entry
943  align="char">
944 <para>EBADF</para>
945 </entry><entry
946  align="char">
947 <para>fd is not a valid open file descriptor.</para>
948 </entry>
949  </row><row><entry
950  align="char">
951 <para>EINTERNAL</para>
952 </entry><entry
953  align="char">
954 <para>Internal error.</para>
955 </entry>
956  </row><row><entry
957  align="char">
958 <para>EINVAL</para>
959 </entry><entry
960  align="char">
961 <para>Illegal input parameter ch.</para>
962 </entry>
963  </row></tbody></tgroup></informaltable>
965 </section><section id="AUDIO_GET_STATUS"
966 role="subsection"><title>AUDIO_GET_STATUS</title>
967 <para>DESCRIPTION
968 </para>
969 <informaltable><tgroup cols="1"><tbody><row><entry
970  align="char">
971 <para>This ioctl call asks the Audio Device to return the current state of the Audio
972  Device.</para>
973 </entry>
974  </row></tbody></tgroup></informaltable>
975 <para>SYNOPSIS
976 </para>
977 <informaltable><tgroup cols="1"><tbody><row><entry
978  align="char">
979 <para>int ioctl(int fd, int request = AUDIO_GET_STATUS,
980  struct audio_status &#x22C6;status);</para>
981 </entry>
982  </row></tbody></tgroup></informaltable>
983 <para>PARAMETERS
984 </para>
985 <informaltable><tgroup cols="2"><tbody><row><entry
986  align="char">
987 <para>int fd</para>
988 </entry><entry
989  align="char">
990 <para>File descriptor returned by a previous call to open().</para>
991 </entry>
992  </row><row><entry
993  align="char">
994 <para>int request</para>
995 </entry><entry
996  align="char">
997 <para>Equals AUDIO_GET_STATUS for this command.</para>
998 </entry>
999  </row><row><entry
1000  align="char">
1001 <para>struct audio_status
1002  *status</para>
1003 </entry><entry
1004  align="char">
1005 <para>Returns the current state of Audio Device.</para>
1006 </entry>
1007  </row></tbody></tgroup></informaltable>
1008 <para>ERRORS
1009 </para>
1010 <informaltable><tgroup cols="2"><tbody><row><entry
1011  align="char">
1012 <para>EBADF</para>
1013 </entry><entry
1014  align="char">
1015 <para>fd is not a valid open file descriptor.</para>
1016 </entry>
1017  </row><row><entry
1018  align="char">
1019 <para>EINTERNAL</para>
1020 </entry><entry
1021  align="char">
1022 <para>Internal error.</para>
1023 </entry>
1024  </row><row><entry
1025  align="char">
1026 <para>EFAULT</para>
1027 </entry><entry
1028  align="char">
1029 <para>status points to invalid address.</para>
1030 </entry>
1031  </row></tbody></tgroup></informaltable>
1033 </section><section id="AUDIO_GET_CAPABILITIES"
1034 role="subsection"><title>AUDIO_GET_CAPABILITIES</title>
1035 <para>DESCRIPTION
1036 </para>
1037 <informaltable><tgroup cols="1"><tbody><row><entry
1038  align="char">
1039 <para>This ioctl call asks the Audio Device to tell us about the decoding capabilities
1040  of the audio hardware.</para>
1041 </entry>
1042  </row></tbody></tgroup></informaltable>
1043 <para>SYNOPSIS
1044 </para>
1045 <informaltable><tgroup cols="1"><tbody><row><entry
1046  align="char">
1047 <para>int ioctl(int fd, int request =
1048  AUDIO_GET_CAPABILITIES, unsigned int &#x22C6;cap);</para>
1049 </entry>
1050  </row></tbody></tgroup></informaltable>
1051 <para>PARAMETERS
1052 </para>
1053 <informaltable><tgroup cols="2"><tbody><row><entry
1054  align="char">
1055 <para>int fd</para>
1056 </entry><entry
1057  align="char">
1058 <para>File descriptor returned by a previous call to open().</para>
1059 </entry>
1060  </row><row><entry
1061  align="char">
1062 <para>int request</para>
1063 </entry><entry
1064  align="char">
1065 <para>Equals AUDIO_GET_CAPABILITIES for this
1066  command.</para>
1067 </entry>
1068  </row><row><entry
1069  align="char">
1070 <para>unsigned int *cap</para>
1071 </entry><entry
1072  align="char">
1073 <para>Returns a bit array of supported sound formats.</para>
1074 </entry>
1075  </row></tbody></tgroup></informaltable>
1076 <para>ERRORS
1077 </para>
1078 <informaltable><tgroup cols="2"><tbody><row><entry
1079  align="char">
1080 <para>EBADF</para>
1081 </entry><entry
1082  align="char">
1083 <para>fd is not a valid open file descriptor.</para>
1084 </entry>
1085  </row><row><entry
1086  align="char">
1087 <para>EINTERNAL</para>
1088 </entry><entry
1089  align="char">
1090 <para>Internal error.</para>
1091 </entry>
1092  </row><row><entry
1093  align="char">
1094 <para>EFAULT</para>
1095 </entry><entry
1096  align="char">
1097 <para>cap points to an invalid address.</para>
1098 </entry>
1099  </row></tbody></tgroup></informaltable>
1101 </section><section id="AUDIO_CLEAR_BUFFER"
1102 role="subsection"><title>AUDIO_CLEAR_BUFFER</title>
1103 <para>DESCRIPTION
1104 </para>
1105 <informaltable><tgroup cols="1"><tbody><row><entry
1106  align="char">
1107 <para>This ioctl call asks the Audio Device to clear all software and hardware buffers
1108  of the audio decoder device.</para>
1109 </entry>
1110  </row></tbody></tgroup></informaltable>
1111 <para>SYNOPSIS
1112 </para>
1113 <informaltable><tgroup cols="1"><tbody><row><entry
1114  align="char">
1115 <para>int ioctl(int fd, int request = AUDIO_CLEAR_BUFFER);</para>
1116 </entry>
1117  </row></tbody></tgroup></informaltable>
1118 <para>PARAMETERS
1119 </para>
1120 <informaltable><tgroup cols="2"><tbody><row><entry
1121  align="char">
1122 <para>int fd</para>
1123 </entry><entry
1124  align="char">
1125 <para>File descriptor returned by a previous call to open().</para>
1126 </entry>
1127  </row><row><entry
1128  align="char">
1129 <para>int request</para>
1130 </entry><entry
1131  align="char">
1132 <para>Equals AUDIO_CLEAR_BUFFER for this command.</para>
1133 </entry>
1134  </row></tbody></tgroup></informaltable>
1135 <para>ERRORS
1136 </para>
1137 <informaltable><tgroup cols="2"><tbody><row><entry
1138  align="char">
1139 <para>EBADF</para>
1140 </entry><entry
1141  align="char">
1142 <para>fd is not a valid open file descriptor.</para>
1143 </entry>
1144  </row><row><entry
1145  align="char">
1146 <para>EINTERNAL</para>
1147 </entry><entry
1148  align="char">
1149 <para>Internal error.</para>
1150 </entry>
1151  </row></tbody></tgroup></informaltable>
1153 </section><section id="AUDIO_SET_ID"
1154 role="subsection"><title>AUDIO_SET_ID</title>
1155 <para>DESCRIPTION
1156 </para>
1157 <informaltable><tgroup cols="1"><tbody><row><entry
1158  align="char">
1159 <para>This ioctl selects which sub-stream is to be decoded if a program or system
1160  stream is sent to the video device. If no audio stream type is set the id has to be
1161  in [0xC0,0xDF] for MPEG sound, in [0x80,0x87] for AC3 and in [0xA0,0xA7]
1162  for LPCM. More specifications may follow for other stream types. If the stream
1163  type is set the id just specifies the substream id of the audio stream and only
1164  the first 5 bits are recognized.</para>
1165 </entry>
1166  </row></tbody></tgroup></informaltable>
1167 <para>SYNOPSIS
1168 </para>
1169 <informaltable><tgroup cols="1"><tbody><row><entry
1170  align="char">
1171 <para>int ioctl(int fd, int request = AUDIO_SET_ID, int
1172  id);</para>
1173 </entry>
1174  </row></tbody></tgroup></informaltable>
1175 <para>PARAMETERS
1176 </para>
1177 <informaltable><tgroup cols="2"><tbody><row><entry
1178  align="char">
1179 <para>int fd</para>
1180 </entry><entry
1181  align="char">
1182 <para>File descriptor returned by a previous call to open().</para>
1183 </entry>
1184  </row><row><entry
1185  align="char">
1186 <para>int request</para>
1187 </entry><entry
1188  align="char">
1189 <para>Equals AUDIO_SET_ID for this command.</para>
1190 </entry>
1191  </row><row><entry
1192  align="char">
1193 <para>int id</para>
1194 </entry><entry
1195  align="char">
1196 <para>audio sub-stream id</para>
1197 </entry>
1198  </row></tbody></tgroup></informaltable>
1199 <para>ERRORS
1200 </para>
1201 <informaltable><tgroup cols="2"><tbody><row><entry
1202  align="char">
1203 <para>EBADF</para>
1204 </entry><entry
1205  align="char">
1206 <para>fd is not a valid open file descriptor.</para>
1207 </entry>
1208  </row><row><entry
1209  align="char">
1210 <para>EINTERNAL</para>
1211 </entry><entry
1212  align="char">
1213 <para>Internal error.</para>
1214 </entry>
1215  </row><row><entry
1216  align="char">
1217 <para>EINVAL</para>
1218 </entry><entry
1219  align="char">
1220 <para>Invalid sub-stream id.</para>
1221 </entry>
1222  </row></tbody></tgroup></informaltable>
1224 </section><section id="AUDIO_SET_MIXER"
1225 role="subsection"><title>AUDIO_SET_MIXER</title>
1226 <para>DESCRIPTION
1227 </para>
1228 <informaltable><tgroup cols="1"><tbody><row><entry
1229  align="char">
1230 <para>This ioctl lets you adjust the mixer settings of the audio decoder.</para>
1231 </entry>
1232  </row></tbody></tgroup></informaltable>
1233 <para>SYNOPSIS
1234 </para>
1235 <informaltable><tgroup cols="1"><tbody><row><entry
1236  align="char">
1237 <para>int ioctl(int fd, int request = AUDIO_SET_MIXER,
1238  audio_mixer_t &#x22C6;mix);</para>
1239 </entry>
1240  </row></tbody></tgroup></informaltable>
1241 <para>PARAMETERS
1242 </para>
1243 <informaltable><tgroup cols="2"><tbody><row><entry
1244  align="char">
1245 <para>int fd</para>
1246 </entry><entry
1247  align="char">
1248 <para>File descriptor returned by a previous call to open().</para>
1249 </entry>
1250  </row><row><entry
1251  align="char">
1252 <para>int request</para>
1253 </entry><entry
1254  align="char">
1255 <para>Equals AUDIO_SET_ID for this command.</para>
1256 </entry>
1257  </row><row><entry
1258  align="char">
1259 <para>audio_mixer_t *mix</para>
1260 </entry><entry
1261  align="char">
1262 <para>mixer settings.</para>
1263 </entry>
1264  </row></tbody></tgroup></informaltable>
1265 <para>ERRORS
1266 </para>
1267 <informaltable><tgroup cols="2"><tbody><row><entry
1268  align="char">
1269 <para>EBADF</para>
1270 </entry><entry
1271  align="char">
1272 <para>fd is not a valid open file descriptor.</para>
1273 </entry>
1274  </row><row><entry
1275  align="char">
1276 <para>EINTERNAL</para>
1277 </entry><entry
1278  align="char">
1279 <para>Internal error.</para>
1280 </entry>
1281  </row><row><entry
1282  align="char">
1283 <para>EFAULT</para>
1284 </entry><entry
1285  align="char">
1286 <para>mix points to an invalid address.</para>
1287 </entry>
1288  </row></tbody></tgroup></informaltable>
1290 </section><section id="AUDIO_SET_STREAMTYPE"
1291 role="subsection"><title>AUDIO_SET_STREAMTYPE</title>
1292 <para>DESCRIPTION
1293 </para>
1294 <informaltable><tgroup cols="1"><tbody><row><entry
1295  align="char">
1296 <para>This ioctl tells the driver which kind of audio stream to expect. This is useful
1297  if the stream offers several audio sub-streams like LPCM and AC3.</para>
1298 </entry>
1299  </row></tbody></tgroup></informaltable>
1300 <para>SYNOPSIS
1301 </para>
1302 <informaltable><tgroup cols="1"><tbody><row><entry
1303  align="char">
1304 <para>int ioctl(fd, int request = AUDIO_SET_STREAMTYPE,
1305  int type);</para>
1306 </entry>
1307  </row></tbody></tgroup></informaltable>
1308 <para>PARAMETERS
1309 </para>
1310 <informaltable><tgroup cols="2"><tbody><row><entry
1311  align="char">
1312 <para>int fd</para>
1313 </entry><entry
1314  align="char">
1315 <para>File descriptor returned by a previous call to open().</para>
1316 </entry>
1317  </row><row><entry
1318  align="char">
1319 <para>int request</para>
1320 </entry><entry
1321  align="char">
1322 <para>Equals AUDIO_SET_STREAMTYPE for this
1323  command.</para>
1324 </entry>
1325  </row><row><entry
1326  align="char">
1327 <para>int type</para>
1328 </entry><entry
1329  align="char">
1330 <para>stream type</para>
1331 </entry>
1332  </row></tbody></tgroup></informaltable>
1333 <para>ERRORS
1334 </para>
1335 <informaltable><tgroup cols="2"><tbody><row><entry
1336  align="char">
1337 <para>EBADF</para>
1338 </entry><entry
1339  align="char">
1340 <para>fd is not a valid open file descriptor</para>
1341 </entry>
1342  </row><row><entry
1343  align="char">
1344 <para>EINVAL</para>
1345 </entry><entry
1346  align="char">
1347 <para>type is not a valid or supported stream type.</para>
1348 </entry>
1349  </row></tbody></tgroup></informaltable>
1351 </section><section id="AUDIO_SET_EXT_ID"
1352 role="subsection"><title>AUDIO_SET_EXT_ID</title>
1353 <para>DESCRIPTION
1354 </para>
1355 <informaltable><tgroup cols="1"><tbody><row><entry
1356  align="char">
1357 <para>This ioctl can be used to set the extension id for MPEG streams in DVD
1358  playback. Only the first 3 bits are recognized.</para>
1359 </entry>
1360  </row></tbody></tgroup></informaltable>
1361 <para>SYNOPSIS
1362 </para>
1363 <informaltable><tgroup cols="1"><tbody><row><entry
1364  align="char">
1365 <para>int ioctl(fd, int request = AUDIO_SET_EXT_ID, int
1366  id);</para>
1367 </entry>
1368  </row></tbody></tgroup></informaltable>
1369 <para>PARAMETERS
1370 </para>
1371 <informaltable><tgroup cols="2"><tbody><row><entry
1372  align="char">
1373 <para>int fd</para>
1374 </entry><entry
1375  align="char">
1376 <para>File descriptor returned by a previous call to open().</para>
1377 </entry>
1378  </row><row><entry
1379  align="char">
1380 <para>int request</para>
1381 </entry><entry
1382  align="char">
1383 <para>Equals AUDIO_SET_EXT_ID for this command.</para>
1384 </entry>
1385  </row><row><entry
1386  align="char">
1387 <para>int id</para>
1388 </entry><entry
1389  align="char">
1390 <para>audio sub_stream_id</para>
1391 </entry>
1392  </row></tbody></tgroup></informaltable>
1393 <para>ERRORS
1394 </para>
1395 <informaltable><tgroup cols="2"><tbody><row><entry
1396  align="char">
1397 <para>EBADF</para>
1398 </entry><entry
1399  align="char">
1400 <para>fd is not a valid open file descriptor</para>
1401 </entry>
1402  </row><row><entry
1403  align="char">
1404 <para>EINVAL</para>
1405 </entry><entry
1406  align="char">
1407 <para>id is not a valid id.</para>
1408 </entry>
1409  </row></tbody></tgroup></informaltable>
1411 </section><section id="AUDIO_SET_ATTRIBUTES"
1412 role="subsection"><title>AUDIO_SET_ATTRIBUTES</title>
1413 <para>DESCRIPTION
1414 </para>
1415 <informaltable><tgroup cols="1"><tbody><row><entry
1416  align="char">
1417 <para>This ioctl is intended for DVD playback and allows you to set certain
1418  information about the audio stream.</para>
1419 </entry>
1420  </row></tbody></tgroup></informaltable>
1421 <para>SYNOPSIS
1422 </para>
1423 <informaltable><tgroup cols="1"><tbody><row><entry
1424  align="char">
1425 <para>int ioctl(fd, int request = AUDIO_SET_ATTRIBUTES,
1426  audio_attributes_t attr );</para>
1427 </entry>
1428  </row></tbody></tgroup></informaltable>
1429 <para>PARAMETERS
1430 </para>
1431 <informaltable><tgroup cols="2"><tbody><row><entry
1432  align="char">
1433 <para>int fd</para>
1434 </entry><entry
1435  align="char">
1436 <para>File descriptor returned by a previous call to open().</para>
1437 </entry>
1438  </row><row><entry
1439  align="char">
1440 <para>int request</para>
1441 </entry><entry
1442  align="char">
1443 <para>Equals AUDIO_SET_ATTRIBUTES for this command.</para>
1444 </entry>
1445  </row><row><entry
1446  align="char">
1447 <para>audio_attributes_t
1448  attr</para>
1449 </entry><entry
1450  align="char">
1451 <para>audio attributes according to section ??</para>
1452 </entry>
1453  </row></tbody></tgroup></informaltable>
1454 <para>ERRORS
1455 </para>
1456 <informaltable><tgroup cols="2"><tbody><row><entry
1457  align="char">
1458 <para>EBADF</para>
1459 </entry><entry
1460  align="char">
1461 <para>fd is not a valid open file descriptor</para>
1462 </entry>
1463  </row><row><entry
1464  align="char">
1465 <para>EINVAL</para>
1466 </entry><entry
1467  align="char">
1468 <para>attr is not a valid or supported attribute setting.</para>
1469 </entry>
1470  </row></tbody></tgroup></informaltable>
1472 </section><section id="AUDIO_SET_KARAOKE"
1473 role="subsection"><title>AUDIO_SET_KARAOKE</title>
1474 <para>DESCRIPTION
1475 </para>
1476 <informaltable><tgroup cols="1"><tbody><row><entry
1477  align="char">
1478 <para>This ioctl allows one to set the mixer settings for a karaoke DVD.</para>
1479 </entry>
1480  </row></tbody></tgroup></informaltable>
1481 <para>SYNOPSIS
1482 </para>
1483 <informaltable><tgroup cols="1"><tbody><row><entry
1484  align="char">
1485 <para>int ioctl(fd, int request = AUDIO_SET_KARAOKE,
1486  audio_karaoke_t &#x22C6;karaoke);</para>
1487 </entry>
1488  </row></tbody></tgroup></informaltable>
1489 <para>PARAMETERS
1490 </para>
1491 <informaltable><tgroup cols="2"><tbody><row><entry
1492  align="char">
1493 <para>int fd</para>
1494 </entry><entry
1495  align="char">
1496 <para>File descriptor returned by a previous call to open().</para>
1497 </entry>
1498  </row><row><entry
1499  align="char">
1500 <para>int request</para>
1501 </entry><entry
1502  align="char">
1503 <para>Equals AUDIO_SET_KARAOKE for this
1504  command.</para>
1505 </entry>
1506  </row><row><entry
1507  align="char">
1508 <para>audio_karaoke_t
1509  *karaoke</para>
1510 </entry><entry
1511  align="char">
1512 <para>karaoke settings according to section ??.</para>
1513 </entry>
1514  </row></tbody></tgroup></informaltable>
1515 <para>ERRORS
1516 </para>
1517 <informaltable><tgroup cols="2"><tbody><row><entry
1518  align="char">
1519 <para>EBADF</para>
1520 </entry><entry
1521  align="char">
1522 <para>fd is not a valid open file descriptor</para>
1523 </entry>
1524  </row><row><entry
1525  align="char">
1526 <para>EINVAL</para>
1527 </entry><entry
1528  align="char">
1529 <para>karaoke is not a valid or supported karaoke setting.</para>
1530 </entry>
1531  </row></tbody></tgroup></informaltable>
1532  </section>
1533 </section>