xref: /linux/Documentation/userspace-api/media/dvb/legacy_dvb_audio.rst (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
12c7ff906SStefan Herdler.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later OR GPL-2.0
22c7ff906SStefan Herdler
32c7ff906SStefan Herdler.. c:namespace:: dtv.legacy.audio
42c7ff906SStefan Herdler
52c7ff906SStefan Herdler.. _dvb_audio:
62c7ff906SStefan Herdler
72c7ff906SStefan Herdler================
82c7ff906SStefan HerdlerDVB Audio Device
92c7ff906SStefan Herdler================
102c7ff906SStefan Herdler
112c7ff906SStefan Herdler.. attention:: Do **not** use in new drivers!
122c7ff906SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
132c7ff906SStefan Herdler
142c7ff906SStefan HerdlerThe DVB audio device controls the MPEG2 audio decoder of the DVB
152c7ff906SStefan Herdlerhardware. It can be accessed through ``/dev/dvb/adapter?/audio?``. Data
162c7ff906SStefan Herdlertypes and ioctl definitions can be accessed by including
172c7ff906SStefan Herdler``linux/dvb/audio.h`` in your application.
182c7ff906SStefan Herdler
192c7ff906SStefan HerdlerPlease note that most DVB cards don’t have their own MPEG decoder, which
202c7ff906SStefan Herdlerresults in the omission of the audio and video device.
212c7ff906SStefan Herdler
222c7ff906SStefan HerdlerThese ioctls were also used by V4L2 to control MPEG decoders implemented
232c7ff906SStefan Herdlerin V4L2. The use of these ioctls for that purpose has been made obsolete
242c7ff906SStefan Herdlerand proper V4L2 ioctls or controls have been created to replace that
252c7ff906SStefan Herdlerfunctionality. Use :ref:`V4L2 ioctls<audio>` for new drivers!
262c7ff906SStefan Herdler
272c7ff906SStefan Herdler
282c7ff906SStefan HerdlerAudio Data Types
292c7ff906SStefan Herdler================
302c7ff906SStefan Herdler
312c7ff906SStefan HerdlerThis section describes the structures, data types and defines used when
322c7ff906SStefan Herdlertalking to the audio device.
332c7ff906SStefan Herdler
342c7ff906SStefan Herdler
352c7ff906SStefan Herdler-----
362c7ff906SStefan Herdler
372c7ff906SStefan Herdler
382c7ff906SStefan Herdleraudio_stream_source_t
392c7ff906SStefan Herdler---------------------
402c7ff906SStefan Herdler
412c7ff906SStefan HerdlerSynopsis
422c7ff906SStefan Herdler~~~~~~~~
432c7ff906SStefan Herdler
442c7ff906SStefan Herdler.. c:enum:: audio_stream_source_t
452c7ff906SStefan Herdler
462c7ff906SStefan Herdler.. code-block:: c
472c7ff906SStefan Herdler
482c7ff906SStefan Herdler    typedef enum {
492c7ff906SStefan Herdler    AUDIO_SOURCE_DEMUX,
502c7ff906SStefan Herdler    AUDIO_SOURCE_MEMORY
512c7ff906SStefan Herdler    } audio_stream_source_t;
522c7ff906SStefan Herdler
532c7ff906SStefan HerdlerConstants
542c7ff906SStefan Herdler~~~~~~~~~
552c7ff906SStefan Herdler
562c7ff906SStefan Herdler.. flat-table::
572c7ff906SStefan Herdler    :header-rows:  0
582c7ff906SStefan Herdler    :stub-columns: 0
592c7ff906SStefan Herdler
602c7ff906SStefan Herdler    -  ..
612c7ff906SStefan Herdler
622c7ff906SStefan Herdler       -  ``AUDIO_SOURCE_DEMUX``
632c7ff906SStefan Herdler
642c7ff906SStefan Herdler       -  :cspan:`1` Selects the demultiplexer (fed either by the frontend
652c7ff906SStefan Herdler          or the DVR device) as the source of the video stream.
662c7ff906SStefan Herdler
672c7ff906SStefan Herdler    -  ..
682c7ff906SStefan Herdler
692c7ff906SStefan Herdler       -  ``AUDIO_SOURCE_MEMORY``
702c7ff906SStefan Herdler
712c7ff906SStefan Herdler       -  Selects the stream from the application that comes through
722c7ff906SStefan Herdler          the `write()`_ system call.
732c7ff906SStefan Herdler
742c7ff906SStefan HerdlerDescription
752c7ff906SStefan Herdler~~~~~~~~~~~
762c7ff906SStefan Herdler
772c7ff906SStefan HerdlerThe audio stream source is set through the `AUDIO_SELECT_SOURCE`_ call
782c7ff906SStefan Herdlerand can take the following values, depending on whether we are replaying
792c7ff906SStefan Herdlerfrom an internal (demux) or external (user write) source.
802c7ff906SStefan Herdler
812c7ff906SStefan HerdlerThe data fed to the decoder is also controlled by the PID-filter.
822c7ff906SStefan HerdlerOutput selection: :c:type:`dmx_output` ``DMX_OUT_DECODER``.
832c7ff906SStefan Herdler
842c7ff906SStefan Herdler
852c7ff906SStefan Herdler-----
862c7ff906SStefan Herdler
872c7ff906SStefan Herdler
882c7ff906SStefan Herdleraudio_play_state_t
892c7ff906SStefan Herdler------------------
902c7ff906SStefan Herdler
912c7ff906SStefan HerdlerSynopsis
922c7ff906SStefan Herdler~~~~~~~~
932c7ff906SStefan Herdler
942c7ff906SStefan Herdler.. c:enum:: audio_play_state_t
952c7ff906SStefan Herdler
962c7ff906SStefan Herdler.. code-block:: c
972c7ff906SStefan Herdler
982c7ff906SStefan Herdler    typedef enum {
992c7ff906SStefan Herdler	AUDIO_STOPPED,
1002c7ff906SStefan Herdler	AUDIO_PLAYING,
1012c7ff906SStefan Herdler	AUDIO_PAUSED
1022c7ff906SStefan Herdler    } audio_play_state_t;
1032c7ff906SStefan Herdler
1042c7ff906SStefan HerdlerConstants
1052c7ff906SStefan Herdler~~~~~~~~~
1062c7ff906SStefan Herdler
1072c7ff906SStefan Herdler.. flat-table::
1082c7ff906SStefan Herdler    :header-rows:  0
1092c7ff906SStefan Herdler    :stub-columns: 0
1102c7ff906SStefan Herdler
1112c7ff906SStefan Herdler    -  ..
1122c7ff906SStefan Herdler
1132c7ff906SStefan Herdler       -  ``AUDIO_STOPPED``
1142c7ff906SStefan Herdler
1152c7ff906SStefan Herdler       -  Audio is stopped.
1162c7ff906SStefan Herdler
1172c7ff906SStefan Herdler    -  ..
1182c7ff906SStefan Herdler
1192c7ff906SStefan Herdler       -  ``AUDIO_PLAYING``
1202c7ff906SStefan Herdler
1212c7ff906SStefan Herdler       -  Audio is currently playing.
1222c7ff906SStefan Herdler
1232c7ff906SStefan Herdler    -  ..
1242c7ff906SStefan Herdler
1252c7ff906SStefan Herdler       -  ``AUDIO_PAUSE``
1262c7ff906SStefan Herdler
1272c7ff906SStefan Herdler       -  Audio is frozen.
1282c7ff906SStefan Herdler
1292c7ff906SStefan HerdlerDescription
1302c7ff906SStefan Herdler~~~~~~~~~~~
1312c7ff906SStefan Herdler
1322c7ff906SStefan HerdlerThis values can be returned by the `AUDIO_GET_STATUS`_ call
1332c7ff906SStefan Herdlerrepresenting the state of audio playback.
1342c7ff906SStefan Herdler
1352c7ff906SStefan Herdler
1362c7ff906SStefan Herdler-----
1372c7ff906SStefan Herdler
1382c7ff906SStefan Herdler
1392c7ff906SStefan Herdleraudio_channel_select_t
1402c7ff906SStefan Herdler----------------------
1412c7ff906SStefan Herdler
1422c7ff906SStefan HerdlerSynopsis
1432c7ff906SStefan Herdler~~~~~~~~
1442c7ff906SStefan Herdler
1452c7ff906SStefan Herdler.. c:enum:: audio_channel_select_t
1462c7ff906SStefan Herdler
1472c7ff906SStefan Herdler.. code-block:: c
1482c7ff906SStefan Herdler
1492c7ff906SStefan Herdler    typedef enum {
1502c7ff906SStefan Herdler	AUDIO_STEREO,
1512c7ff906SStefan Herdler	AUDIO_MONO_LEFT,
1522c7ff906SStefan Herdler	AUDIO_MONO_RIGHT,
1532c7ff906SStefan Herdler	AUDIO_MONO,
1542c7ff906SStefan Herdler	AUDIO_STEREO_SWAPPED
1552c7ff906SStefan Herdler    } audio_channel_select_t;
1562c7ff906SStefan Herdler
1572c7ff906SStefan HerdlerConstants
1582c7ff906SStefan Herdler~~~~~~~~~
1592c7ff906SStefan Herdler
1602c7ff906SStefan Herdler.. flat-table::
1612c7ff906SStefan Herdler    :header-rows:  0
1622c7ff906SStefan Herdler    :stub-columns: 0
1632c7ff906SStefan Herdler
1642c7ff906SStefan Herdler    -  ..
1652c7ff906SStefan Herdler
1662c7ff906SStefan Herdler       -  ``AUDIO_STEREO``
1672c7ff906SStefan Herdler
1682c7ff906SStefan Herdler       -  Stereo.
1692c7ff906SStefan Herdler
1702c7ff906SStefan Herdler    -  ..
1712c7ff906SStefan Herdler
1722c7ff906SStefan Herdler       -  ``AUDIO_MONO_LEFT``
1732c7ff906SStefan Herdler
1742c7ff906SStefan Herdler       -  Mono, select left stereo channel as source.
1752c7ff906SStefan Herdler
1762c7ff906SStefan Herdler    -  ..
1772c7ff906SStefan Herdler
1782c7ff906SStefan Herdler       -  ``AUDIO_MONO_RIGHT``
1792c7ff906SStefan Herdler
1802c7ff906SStefan Herdler       -  Mono, select right stereo channel as source.
1812c7ff906SStefan Herdler
1822c7ff906SStefan Herdler    -  ..
1832c7ff906SStefan Herdler
1842c7ff906SStefan Herdler       -  ``AUDIO_MONO``
1852c7ff906SStefan Herdler
1862c7ff906SStefan Herdler       -  Mono source only.
1872c7ff906SStefan Herdler
1882c7ff906SStefan Herdler    -  ..
1892c7ff906SStefan Herdler
1902c7ff906SStefan Herdler       -  ``AUDIO_STEREO_SWAPPED``
1912c7ff906SStefan Herdler
1922c7ff906SStefan Herdler       -  Stereo, swap L & R.
1932c7ff906SStefan Herdler
1942c7ff906SStefan HerdlerDescription
1952c7ff906SStefan Herdler~~~~~~~~~~~
1962c7ff906SStefan Herdler
1972c7ff906SStefan HerdlerThe audio channel selected via `AUDIO_CHANNEL_SELECT`_ is determined by
1982c7ff906SStefan Herdlerthis values.
1992c7ff906SStefan Herdler
2002c7ff906SStefan Herdler
2012c7ff906SStefan Herdler-----
2022c7ff906SStefan Herdler
2032c7ff906SStefan Herdler
2042c7ff906SStefan Herdleraudio_mixer_t
2052c7ff906SStefan Herdler-------------
2062c7ff906SStefan Herdler
2072c7ff906SStefan HerdlerSynopsis
2082c7ff906SStefan Herdler~~~~~~~~
2092c7ff906SStefan Herdler
2102c7ff906SStefan Herdler.. c:struct:: audio_mixer
2112c7ff906SStefan Herdler
2122c7ff906SStefan Herdler.. code-block:: c
2132c7ff906SStefan Herdler
2142c7ff906SStefan Herdler    typedef struct audio_mixer {
2152c7ff906SStefan Herdler	unsigned int volume_left;
2162c7ff906SStefan Herdler	unsigned int volume_right;
2172c7ff906SStefan Herdler    } audio_mixer_t;
2182c7ff906SStefan Herdler
2192c7ff906SStefan HerdlerVariables
2202c7ff906SStefan Herdler~~~~~~~~~
2212c7ff906SStefan Herdler
2222c7ff906SStefan Herdler.. flat-table::
2232c7ff906SStefan Herdler    :header-rows:  0
2242c7ff906SStefan Herdler    :stub-columns: 0
2252c7ff906SStefan Herdler
2262c7ff906SStefan Herdler    -  ..
2272c7ff906SStefan Herdler
2282c7ff906SStefan Herdler       -  ``unsigned int volume_left``
2292c7ff906SStefan Herdler
2302c7ff906SStefan Herdler       -  Volume left channel.
2312c7ff906SStefan Herdler          Valid range: 0 ... 255
2322c7ff906SStefan Herdler
2332c7ff906SStefan Herdler    -  ..
2342c7ff906SStefan Herdler
2352c7ff906SStefan Herdler       -  ``unsigned int volume_right``
2362c7ff906SStefan Herdler
2372c7ff906SStefan Herdler       -  Volume right channel.
2382c7ff906SStefan Herdler          Valid range: 0 ... 255
2392c7ff906SStefan Herdler
2402c7ff906SStefan HerdlerDescription
2412c7ff906SStefan Herdler~~~~~~~~~~~
2422c7ff906SStefan Herdler
2432c7ff906SStefan HerdlerThis structure is used by the `AUDIO_SET_MIXER`_ call to set the
2442c7ff906SStefan Herdleraudio volume.
2452c7ff906SStefan Herdler
2462c7ff906SStefan Herdler
2472c7ff906SStefan Herdler-----
2482c7ff906SStefan Herdler
2492c7ff906SStefan Herdler
2502c7ff906SStefan Herdleraudio_status
2512c7ff906SStefan Herdler------------
2522c7ff906SStefan Herdler
2532c7ff906SStefan HerdlerSynopsis
2542c7ff906SStefan Herdler~~~~~~~~
2552c7ff906SStefan Herdler
2562c7ff906SStefan Herdler.. c:struct:: audio_status
2572c7ff906SStefan Herdler
2582c7ff906SStefan Herdler.. code-block:: c
2592c7ff906SStefan Herdler
2602c7ff906SStefan Herdler    typedef struct audio_status {
2612c7ff906SStefan Herdler	int AV_sync_state;
2622c7ff906SStefan Herdler	int mute_state;
2632c7ff906SStefan Herdler	audio_play_state_t play_state;
2642c7ff906SStefan Herdler	audio_stream_source_t stream_source;
2652c7ff906SStefan Herdler	audio_channel_select_t channel_select;
2662c7ff906SStefan Herdler	int bypass_mode;
2672c7ff906SStefan Herdler	audio_mixer_t mixer_state;
2682c7ff906SStefan Herdler    } audio_status_t;
2692c7ff906SStefan Herdler
2702c7ff906SStefan HerdlerVariables
2712c7ff906SStefan Herdler~~~~~~~~~
2722c7ff906SStefan Herdler
2732c7ff906SStefan Herdler.. flat-table::
2742c7ff906SStefan Herdler    :header-rows:  0
2752c7ff906SStefan Herdler    :stub-columns: 0
2762c7ff906SStefan Herdler
2772c7ff906SStefan Herdler    -  ..
2782c7ff906SStefan Herdler
2792c7ff906SStefan Herdler       -  :rspan:`2` ``int AV_sync_state``
2802c7ff906SStefan Herdler
2812c7ff906SStefan Herdler       -  :cspan:`1` Shows if A/V synchronization is ON or OFF.
2822c7ff906SStefan Herdler
2832c7ff906SStefan Herdler    -  ..
2842c7ff906SStefan Herdler
2852c7ff906SStefan Herdler       -  TRUE  ( != 0 )
2862c7ff906SStefan Herdler
2872c7ff906SStefan Herdler       -  AV-sync ON.
2882c7ff906SStefan Herdler
2892c7ff906SStefan Herdler    -  ..
2902c7ff906SStefan Herdler
2912c7ff906SStefan Herdler       -  FALSE ( == 0 )
2922c7ff906SStefan Herdler
2932c7ff906SStefan Herdler       -  AV-sync OFF.
2942c7ff906SStefan Herdler
2952c7ff906SStefan Herdler    -  ..
2962c7ff906SStefan Herdler
2972c7ff906SStefan Herdler       -  :rspan:`2` ``int mute_state``
2982c7ff906SStefan Herdler
2992c7ff906SStefan Herdler       -  :cspan:`1` Indicates if audio is muted or not.
3002c7ff906SStefan Herdler
3012c7ff906SStefan Herdler    -  ..
3022c7ff906SStefan Herdler
3032c7ff906SStefan Herdler       -  TRUE  ( != 0 )
3042c7ff906SStefan Herdler
3052c7ff906SStefan Herdler       -  mute audio
3062c7ff906SStefan Herdler
3072c7ff906SStefan Herdler    -  ..
3082c7ff906SStefan Herdler
3092c7ff906SStefan Herdler       -  FALSE ( == 0 )
3102c7ff906SStefan Herdler
3112c7ff906SStefan Herdler       -  unmute audio
3122c7ff906SStefan Herdler
3132c7ff906SStefan Herdler    -  ..
3142c7ff906SStefan Herdler
3152c7ff906SStefan Herdler       -  `audio_play_state_t`_ ``play_state``
3162c7ff906SStefan Herdler
3172c7ff906SStefan Herdler       -  Current playback state.
3182c7ff906SStefan Herdler
3192c7ff906SStefan Herdler    -  ..
3202c7ff906SStefan Herdler
3212c7ff906SStefan Herdler       -  `audio_stream_source_t`_ ``stream_source``
3222c7ff906SStefan Herdler
3232c7ff906SStefan Herdler       -  Current source of the data.
3242c7ff906SStefan Herdler
3252c7ff906SStefan Herdler    -  ..
3262c7ff906SStefan Herdler
3272c7ff906SStefan Herdler       -  :rspan:`2` ``int bypass_mode``
3282c7ff906SStefan Herdler
3292c7ff906SStefan Herdler       -  :cspan:`1` Is the decoding of the current Audio stream in
3302c7ff906SStefan Herdler          the DVB subsystem enabled or disabled.
3312c7ff906SStefan Herdler
3322c7ff906SStefan Herdler    -  ..
3332c7ff906SStefan Herdler
3342c7ff906SStefan Herdler       -  TRUE  ( != 0 )
3352c7ff906SStefan Herdler
3362c7ff906SStefan Herdler       -  Bypass disabled.
3372c7ff906SStefan Herdler
3382c7ff906SStefan Herdler    -  ..
3392c7ff906SStefan Herdler
3402c7ff906SStefan Herdler       -  FALSE ( == 0 )
3412c7ff906SStefan Herdler
3422c7ff906SStefan Herdler       -  Bypass enabled.
3432c7ff906SStefan Herdler
3442c7ff906SStefan Herdler    -  ..
3452c7ff906SStefan Herdler
3462c7ff906SStefan Herdler       -  `audio_mixer_t`_ ``mixer_state``
3472c7ff906SStefan Herdler
3482c7ff906SStefan Herdler       -  Current volume settings.
3492c7ff906SStefan Herdler
3502c7ff906SStefan HerdlerDescription
3512c7ff906SStefan Herdler~~~~~~~~~~~
3522c7ff906SStefan Herdler
3532c7ff906SStefan HerdlerThe `AUDIO_GET_STATUS`_ call returns this structure as information
3542c7ff906SStefan Herdlerabout various states of the playback operation.
3552c7ff906SStefan Herdler
3562c7ff906SStefan Herdler
3572c7ff906SStefan Herdler-----
3582c7ff906SStefan Herdler
3592c7ff906SStefan Herdler
3602c7ff906SStefan Herdleraudio encodings
3612c7ff906SStefan Herdler---------------
3622c7ff906SStefan Herdler
3632c7ff906SStefan HerdlerSynopsis
3642c7ff906SStefan Herdler~~~~~~~~
3652c7ff906SStefan Herdler
3662c7ff906SStefan Herdler.. code-block:: c
3672c7ff906SStefan Herdler
3682c7ff906SStefan Herdler     #define AUDIO_CAP_DTS    1
3692c7ff906SStefan Herdler     #define AUDIO_CAP_LPCM   2
3702c7ff906SStefan Herdler     #define AUDIO_CAP_MP1    4
3712c7ff906SStefan Herdler     #define AUDIO_CAP_MP2    8
3722c7ff906SStefan Herdler     #define AUDIO_CAP_MP3   16
3732c7ff906SStefan Herdler     #define AUDIO_CAP_AAC   32
3742c7ff906SStefan Herdler     #define AUDIO_CAP_OGG   64
3752c7ff906SStefan Herdler     #define AUDIO_CAP_SDDS 128
3762c7ff906SStefan Herdler     #define AUDIO_CAP_AC3  256
3772c7ff906SStefan Herdler
3782c7ff906SStefan HerdlerConstants
3792c7ff906SStefan Herdler~~~~~~~~~
3802c7ff906SStefan Herdler
3812c7ff906SStefan Herdler.. flat-table::
3822c7ff906SStefan Herdler    :header-rows:  0
3832c7ff906SStefan Herdler    :stub-columns: 0
3842c7ff906SStefan Herdler
3852c7ff906SStefan Herdler    -  ..
3862c7ff906SStefan Herdler
3872c7ff906SStefan Herdler       -  ``AUDIO_CAP_DTS``
3882c7ff906SStefan Herdler
3892c7ff906SStefan Herdler       -  :cspan:`1` The hardware accepts DTS audio tracks.
3902c7ff906SStefan Herdler
3912c7ff906SStefan Herdler    -  ..
3922c7ff906SStefan Herdler
3932c7ff906SStefan Herdler       -  ``AUDIO_CAP_LPCM``
3942c7ff906SStefan Herdler
3952c7ff906SStefan Herdler       -   The hardware accepts uncompressed audio with
3962c7ff906SStefan Herdler           Linear Pulse-Code Modulation (LPCM)
3972c7ff906SStefan Herdler
3982c7ff906SStefan Herdler    -  ..
3992c7ff906SStefan Herdler
4002c7ff906SStefan Herdler       -  ``AUDIO_CAP_MP1``
4012c7ff906SStefan Herdler
4022c7ff906SStefan Herdler       -  The hardware accepts MPEG-1 Audio Layer 1.
4032c7ff906SStefan Herdler
4042c7ff906SStefan Herdler    -  ..
4052c7ff906SStefan Herdler
4062c7ff906SStefan Herdler       -  ``AUDIO_CAP_MP2``
4072c7ff906SStefan Herdler
4082c7ff906SStefan Herdler       -  The hardware accepts MPEG-1 Audio Layer 2.
4092c7ff906SStefan Herdler          Also known as MUSICAM.
4102c7ff906SStefan Herdler
4112c7ff906SStefan Herdler    -  ..
4122c7ff906SStefan Herdler
4132c7ff906SStefan Herdler       -  ``AUDIO_CAP_MP3``
4142c7ff906SStefan Herdler
4152c7ff906SStefan Herdler       -  The hardware accepts MPEG-1 Audio Layer III.
4162c7ff906SStefan Herdler          Commomly known as .mp3.
4172c7ff906SStefan Herdler
4182c7ff906SStefan Herdler    -  ..
4192c7ff906SStefan Herdler
4202c7ff906SStefan Herdler       -  ``AUDIO_CAP_AAC``
4212c7ff906SStefan Herdler
4222c7ff906SStefan Herdler       -  The hardware accepts AAC (Advanced Audio Coding).
4232c7ff906SStefan Herdler
4242c7ff906SStefan Herdler    -  ..
4252c7ff906SStefan Herdler
4262c7ff906SStefan Herdler       -  ``AUDIO_CAP_OGG``
4272c7ff906SStefan Herdler
4282c7ff906SStefan Herdler       -  The hardware accepts Vorbis audio tracks.
4292c7ff906SStefan Herdler
4302c7ff906SStefan Herdler    -  ..
4312c7ff906SStefan Herdler
4322c7ff906SStefan Herdler       -  ``AUDIO_CAP_SDDS``
4332c7ff906SStefan Herdler
4342c7ff906SStefan Herdler       -  The hardware accepts Sony Dynamic Digital Sound (SDDS).
4352c7ff906SStefan Herdler
4362c7ff906SStefan Herdler    -  ..
4372c7ff906SStefan Herdler
4382c7ff906SStefan Herdler       -  ``AUDIO_CAP_AC3``
4392c7ff906SStefan Herdler
4402c7ff906SStefan Herdler       -  The hardware accepts Dolby Digital ATSC A/52 audio.
4412c7ff906SStefan Herdler          Also known as AC-3.
4422c7ff906SStefan Herdler
4432c7ff906SStefan HerdlerDescription
4442c7ff906SStefan Herdler~~~~~~~~~~~
4452c7ff906SStefan Herdler
4462c7ff906SStefan HerdlerA call to `AUDIO_GET_CAPABILITIES`_ returns an unsigned integer with the
4472c7ff906SStefan Herdlerfollowing bits set according to the hardwares capabilities.
44853614720SStefan Herdler
44953614720SStefan Herdler
45053614720SStefan Herdler-----
45153614720SStefan Herdler
45253614720SStefan Herdler
45353614720SStefan HerdlerAudio Function Calls
45453614720SStefan Herdler====================
45553614720SStefan Herdler
45653614720SStefan Herdler
45753614720SStefan HerdlerAUDIO_STOP
45853614720SStefan Herdler----------
45953614720SStefan Herdler
46053614720SStefan HerdlerSynopsis
46153614720SStefan Herdler~~~~~~~~
46253614720SStefan Herdler
46353614720SStefan Herdler.. c:macro:: AUDIO_STOP
46453614720SStefan Herdler
46553614720SStefan Herdler.. code-block:: c
46653614720SStefan Herdler
46753614720SStefan Herdler	 int ioctl(int fd, int request = AUDIO_STOP)
46853614720SStefan Herdler
46953614720SStefan HerdlerArguments
47053614720SStefan Herdler~~~~~~~~~
47153614720SStefan Herdler
47253614720SStefan Herdler.. flat-table::
47353614720SStefan Herdler    :header-rows:  0
47453614720SStefan Herdler    :stub-columns: 0
47553614720SStefan Herdler
47653614720SStefan Herdler    -  ..
47753614720SStefan Herdler
47853614720SStefan Herdler       -  ``int fd``
47953614720SStefan Herdler
48053614720SStefan Herdler       -  File descriptor returned by a previous call to `open()`_.
48153614720SStefan Herdler
48253614720SStefan Herdler    -  ..
48353614720SStefan Herdler
48453614720SStefan Herdler       -  ``int request``
48553614720SStefan Herdler
48653614720SStefan Herdler       -  :cspan:`1` Equals ``AUDIO_STOP`` for this command.
48753614720SStefan Herdler
48853614720SStefan HerdlerDescription
48953614720SStefan Herdler~~~~~~~~~~~
49053614720SStefan Herdler
49153614720SStefan Herdler.. attention:: Do **not** use in new drivers!
49253614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
49353614720SStefan Herdler
49453614720SStefan HerdlerThis ioctl call asks the Audio Device to stop playing the current
49553614720SStefan Herdlerstream.
49653614720SStefan Herdler
49753614720SStefan HerdlerReturn Value
49853614720SStefan Herdler~~~~~~~~~~~~
49953614720SStefan Herdler
50053614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
50153614720SStefan Herdlerappropriately. The generic error codes are described at the
50253614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
50353614720SStefan Herdler
50453614720SStefan Herdler
50553614720SStefan Herdler-----
50653614720SStefan Herdler
50753614720SStefan Herdler
50853614720SStefan HerdlerAUDIO_PLAY
50953614720SStefan Herdler----------
51053614720SStefan Herdler
51153614720SStefan HerdlerSynopsis
51253614720SStefan Herdler~~~~~~~~
51353614720SStefan Herdler
51453614720SStefan Herdler.. c:macro:: AUDIO_PLAY
51553614720SStefan Herdler
51653614720SStefan Herdler.. code-block:: c
51753614720SStefan Herdler
51853614720SStefan Herdler	 int  ioctl(int fd, int request = AUDIO_PLAY)
51953614720SStefan Herdler
52053614720SStefan HerdlerArguments
52153614720SStefan Herdler~~~~~~~~~
52253614720SStefan Herdler
52353614720SStefan Herdler.. flat-table::
52453614720SStefan Herdler    :header-rows:  0
52553614720SStefan Herdler    :stub-columns: 0
52653614720SStefan Herdler
52753614720SStefan Herdler    -  ..
52853614720SStefan Herdler
52953614720SStefan Herdler       -  ``int fd``
53053614720SStefan Herdler
53153614720SStefan Herdler       -  File descriptor returned by a previous call to `open()`_.
53253614720SStefan Herdler
53353614720SStefan Herdler    -  ..
53453614720SStefan Herdler
53553614720SStefan Herdler       -  ``int request``
53653614720SStefan Herdler
53753614720SStefan Herdler       -  :cspan:`1` Equals ``AUDIO_PLAY`` for this command.
53853614720SStefan Herdler
53953614720SStefan HerdlerDescription
54053614720SStefan Herdler~~~~~~~~~~~
54153614720SStefan Herdler
54253614720SStefan Herdler.. attention:: Do **not** use in new drivers!
54353614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
54453614720SStefan Herdler
54553614720SStefan HerdlerThis ioctl call asks the Audio Device to start playing an audio stream
54653614720SStefan Herdlerfrom the selected source.
54753614720SStefan Herdler
54853614720SStefan HerdlerReturn Value
54953614720SStefan Herdler~~~~~~~~~~~~
55053614720SStefan Herdler
55153614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
55253614720SStefan Herdlerappropriately. The generic error codes are described at the
55353614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
55453614720SStefan Herdler
55553614720SStefan Herdler
55653614720SStefan Herdler-----
55753614720SStefan Herdler
55853614720SStefan Herdler
55953614720SStefan HerdlerAUDIO_PAUSE
56053614720SStefan Herdler-----------
56153614720SStefan Herdler
56253614720SStefan HerdlerSynopsis
56353614720SStefan Herdler~~~~~~~~
56453614720SStefan Herdler
56553614720SStefan Herdler.. c:macro:: AUDIO_PAUSE
56653614720SStefan Herdler
56753614720SStefan Herdler.. code-block:: c
56853614720SStefan Herdler
56953614720SStefan Herdler	 int  ioctl(int fd, int request = AUDIO_PAUSE)
57053614720SStefan Herdler
57153614720SStefan HerdlerArguments
57253614720SStefan Herdler~~~~~~~~~
57353614720SStefan Herdler
57453614720SStefan Herdler.. flat-table::
57553614720SStefan Herdler    :header-rows:  0
57653614720SStefan Herdler    :stub-columns: 0
57753614720SStefan Herdler
57853614720SStefan Herdler    -  ..
57953614720SStefan Herdler
58053614720SStefan Herdler       -  ``int fd``
58153614720SStefan Herdler
58253614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
58353614720SStefan Herdler          to `open()`_.
58453614720SStefan Herdler
58553614720SStefan Herdler    -  ..
58653614720SStefan Herdler
58753614720SStefan Herdler       -  ``int request``
58853614720SStefan Herdler
58953614720SStefan Herdler       -  Equals ``AUDIO_PAUSE`` for this command.
59053614720SStefan Herdler
59153614720SStefan HerdlerDescription
59253614720SStefan Herdler~~~~~~~~~~~
59353614720SStefan Herdler
59453614720SStefan Herdler.. attention:: Do **not** use in new drivers!
59553614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
59653614720SStefan Herdler
59753614720SStefan HerdlerThis ioctl call suspends the audio stream being played. Decoding and
59853614720SStefan Herdlerplaying are paused. It is then possible to restart again decoding and
59953614720SStefan Herdlerplaying process of the audio stream using `AUDIO_CONTINUE`_ command.
60053614720SStefan Herdler
60153614720SStefan HerdlerReturn Value
60253614720SStefan Herdler~~~~~~~~~~~~
60353614720SStefan Herdler
60453614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
60553614720SStefan Herdlerappropriately. The generic error codes are described at the
60653614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
60753614720SStefan Herdler
60853614720SStefan Herdler
60953614720SStefan Herdler-----
61053614720SStefan Herdler
61153614720SStefan Herdler
61253614720SStefan HerdlerAUDIO_CONTINUE
61353614720SStefan Herdler--------------
61453614720SStefan Herdler
61553614720SStefan HerdlerSynopsis
61653614720SStefan Herdler~~~~~~~~
61753614720SStefan Herdler
61853614720SStefan Herdler.. c:macro:: AUDIO_CONTINUE
61953614720SStefan Herdler
62053614720SStefan Herdler.. code-block:: c
62153614720SStefan Herdler
62253614720SStefan Herdler	 int  ioctl(int fd, int request = AUDIO_CONTINUE)
62353614720SStefan Herdler
62453614720SStefan HerdlerArguments
62553614720SStefan Herdler~~~~~~~~~
62653614720SStefan Herdler
62753614720SStefan Herdler.. flat-table::
62853614720SStefan Herdler    :header-rows:  0
62953614720SStefan Herdler    :stub-columns: 0
63053614720SStefan Herdler
63153614720SStefan Herdler    -  ..
63253614720SStefan Herdler
63353614720SStefan Herdler       -  ``int fd``
63453614720SStefan Herdler
63553614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
63653614720SStefan Herdler          to `open()`_.
63753614720SStefan Herdler
63853614720SStefan Herdler    -  ..
63953614720SStefan Herdler
64053614720SStefan Herdler       -  ``int request``
64153614720SStefan Herdler
64253614720SStefan Herdler       -  Equals ``AUDIO_CONTINUE`` for this command.
64353614720SStefan Herdler
64453614720SStefan HerdlerDescription
64553614720SStefan Herdler~~~~~~~~~~~
64653614720SStefan Herdler
64753614720SStefan Herdler.. attention:: Do **not** use in new drivers!
64853614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
64953614720SStefan Herdler
65053614720SStefan HerdlerThis ioctl restarts the decoding and playing process previously paused
65153614720SStefan Herdlerwith `AUDIO_PAUSE`_ command.
65253614720SStefan Herdler
65353614720SStefan HerdlerReturn Value
65453614720SStefan Herdler~~~~~~~~~~~~
65553614720SStefan Herdler
65653614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
65753614720SStefan Herdlerappropriately. The generic error codes are described at the
65853614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
65953614720SStefan Herdler
66053614720SStefan Herdler
66153614720SStefan Herdler-----
66253614720SStefan Herdler
66353614720SStefan Herdler
66453614720SStefan HerdlerAUDIO_SELECT_SOURCE
66553614720SStefan Herdler-------------------
66653614720SStefan Herdler
66753614720SStefan HerdlerSynopsis
66853614720SStefan Herdler~~~~~~~~
66953614720SStefan Herdler
67053614720SStefan Herdler.. c:macro:: AUDIO_SELECT_SOURCE
67153614720SStefan Herdler
67253614720SStefan Herdler.. code-block:: c
67353614720SStefan Herdler
67453614720SStefan Herdler	 int ioctl(int fd, int request = AUDIO_SELECT_SOURCE,
67553614720SStefan Herdler	 audio_stream_source_t source)
67653614720SStefan Herdler
67753614720SStefan HerdlerArguments
67853614720SStefan Herdler~~~~~~~~~
67953614720SStefan Herdler
68053614720SStefan Herdler.. flat-table::
68153614720SStefan Herdler    :header-rows:  0
68253614720SStefan Herdler    :stub-columns: 0
68353614720SStefan Herdler
68453614720SStefan Herdler    -  ..
68553614720SStefan Herdler
68653614720SStefan Herdler       -  ``int fd``
68753614720SStefan Herdler
68853614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
68953614720SStefan Herdler          to `open()`_.
69053614720SStefan Herdler
69153614720SStefan Herdler    -  ..
69253614720SStefan Herdler
69353614720SStefan Herdler       -  ``int request``
69453614720SStefan Herdler
69553614720SStefan Herdler       -  Equals ``AUDIO_SELECT_SOURCE`` for this command.
69653614720SStefan Herdler
69753614720SStefan Herdler    -  ..
69853614720SStefan Herdler
69953614720SStefan Herdler       -  `audio_stream_source_t`_ ``source``
70053614720SStefan Herdler
70153614720SStefan Herdler       -  Indicates the source that shall be used for the Audio stream.
70253614720SStefan Herdler
70353614720SStefan HerdlerDescription
70453614720SStefan Herdler~~~~~~~~~~~
70553614720SStefan Herdler
70653614720SStefan Herdler.. attention:: Do **not** use in new drivers!
70753614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
70853614720SStefan Herdler
70953614720SStefan HerdlerThis ioctl call informs the audio device which source shall be used for
71053614720SStefan Herdlerthe input data. The possible sources are demux or memory. If
71153614720SStefan Herdler``AUDIO_SOURCE_MEMORY`` is selected, the data is fed to the Audio Device
71253614720SStefan Herdlerthrough the write command. If ``AUDIO_SOURCE_DEMUX`` is selected, the data
71353614720SStefan Herdleris directly transferred from the onboard demux-device to the decoder.
71453614720SStefan HerdlerNote: This only supports DVB-devices with one demux and one decoder so far.
71553614720SStefan Herdler
71653614720SStefan HerdlerReturn Value
71753614720SStefan Herdler~~~~~~~~~~~~
71853614720SStefan Herdler
71953614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
72053614720SStefan Herdlerappropriately. The generic error codes are described at the
72153614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
72253614720SStefan Herdler
72353614720SStefan Herdler
72453614720SStefan Herdler-----
72553614720SStefan Herdler
72653614720SStefan Herdler
72753614720SStefan HerdlerAUDIO_SET_MUTE
72853614720SStefan Herdler--------------
72953614720SStefan Herdler
73053614720SStefan HerdlerSynopsis
73153614720SStefan Herdler~~~~~~~~
73253614720SStefan Herdler
73353614720SStefan Herdler.. c:macro:: AUDIO_SET_MUTE
73453614720SStefan Herdler
73553614720SStefan Herdler.. code-block:: c
73653614720SStefan Herdler
73753614720SStefan Herdler	 int  ioctl(int fd, int request = AUDIO_SET_MUTE, int state)
73853614720SStefan Herdler
73953614720SStefan HerdlerArguments
74053614720SStefan Herdler~~~~~~~~~
74153614720SStefan Herdler
74253614720SStefan Herdler.. flat-table::
74353614720SStefan Herdler    :header-rows:  0
74453614720SStefan Herdler    :stub-columns: 0
74553614720SStefan Herdler
74653614720SStefan Herdler    -  ..
74753614720SStefan Herdler
74853614720SStefan Herdler       -  ``int fd``
74953614720SStefan Herdler
75053614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
75153614720SStefan Herdler          to `open()`_.
75253614720SStefan Herdler
75353614720SStefan Herdler    -  ..
75453614720SStefan Herdler
75553614720SStefan Herdler       -  ``int request``
75653614720SStefan Herdler
75753614720SStefan Herdler       -  :cspan:`1` Equals ``AUDIO_SET_MUTE`` for this command.
75853614720SStefan Herdler
75953614720SStefan Herdler    -  ..
76053614720SStefan Herdler
76153614720SStefan Herdler       -  :rspan:`2` ``int state``
76253614720SStefan Herdler
76353614720SStefan Herdler       -  :cspan:`1` Indicates if audio device shall mute or not.
76453614720SStefan Herdler
76553614720SStefan Herdler    -  ..
76653614720SStefan Herdler
76753614720SStefan Herdler       -  TRUE  ( != 0 )
76853614720SStefan Herdler
76953614720SStefan Herdler       -  mute audio
77053614720SStefan Herdler
77153614720SStefan Herdler    -  ..
77253614720SStefan Herdler
77353614720SStefan Herdler       -  FALSE ( == 0 )
77453614720SStefan Herdler
77553614720SStefan Herdler       -  unmute audio
77653614720SStefan Herdler
77753614720SStefan HerdlerDescription
77853614720SStefan Herdler~~~~~~~~~~~
77953614720SStefan Herdler
78053614720SStefan Herdler.. attention:: Do **not** use in new drivers!
78153614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
78253614720SStefan Herdler
78353614720SStefan HerdlerThis ioctl is for DVB devices only. To control a V4L2 decoder use the
78453614720SStefan HerdlerV4L2 :ref:`VIDIOC_DECODER_CMD` with the
78553614720SStefan Herdler``V4L2_DEC_CMD_START_MUTE_AUDIO`` flag instead.
78653614720SStefan Herdler
78753614720SStefan HerdlerThis ioctl call asks the audio device to mute the stream that is
78853614720SStefan Herdlercurrently being played.
78953614720SStefan Herdler
79053614720SStefan HerdlerReturn Value
79153614720SStefan Herdler~~~~~~~~~~~~
79253614720SStefan Herdler
79353614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
79453614720SStefan Herdlerappropriately. The generic error codes are described at the
79553614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
79653614720SStefan Herdler
79753614720SStefan Herdler
79853614720SStefan Herdler-----
79953614720SStefan Herdler
80053614720SStefan Herdler
80153614720SStefan HerdlerAUDIO_SET_AV_SYNC
80253614720SStefan Herdler-----------------
80353614720SStefan Herdler
80453614720SStefan HerdlerSynopsis
80553614720SStefan Herdler~~~~~~~~
80653614720SStefan Herdler
80753614720SStefan Herdler.. c:macro:: AUDIO_SET_AV_SYNC
80853614720SStefan Herdler
80953614720SStefan Herdler.. code-block:: c
81053614720SStefan Herdler
81153614720SStefan Herdler	 int  ioctl(int fd, int request = AUDIO_SET_AV_SYNC, int state)
81253614720SStefan Herdler
81353614720SStefan HerdlerArguments
81453614720SStefan Herdler~~~~~~~~~
81553614720SStefan Herdler
81653614720SStefan Herdler.. flat-table::
81753614720SStefan Herdler    :header-rows:  0
81853614720SStefan Herdler    :stub-columns: 0
81953614720SStefan Herdler
82053614720SStefan Herdler    -  ..
82153614720SStefan Herdler
82253614720SStefan Herdler       -  ``int fd``
82353614720SStefan Herdler
82453614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
82553614720SStefan Herdler          to `open()`_.
82653614720SStefan Herdler
82753614720SStefan Herdler    -  ..
82853614720SStefan Herdler
82953614720SStefan Herdler       -  ``int request``
83053614720SStefan Herdler
83153614720SStefan Herdler       -  :cspan:`1` Equals ``AUDIO_AV_SYNC`` for this command.
83253614720SStefan Herdler
83353614720SStefan Herdler    -  ..
83453614720SStefan Herdler
83553614720SStefan Herdler       -  :rspan:`2` ``int state``
83653614720SStefan Herdler
83753614720SStefan Herdler       -  :cspan:`1` Tells the DVB subsystem if A/V synchronization
83853614720SStefan Herdler          shall be ON or OFF.
83953614720SStefan Herdler
84053614720SStefan Herdler    -  ..
84153614720SStefan Herdler
84253614720SStefan Herdler       -  TRUE  ( != 0 )
84353614720SStefan Herdler
84453614720SStefan Herdler       -  AV-sync ON.
84553614720SStefan Herdler
84653614720SStefan Herdler    -  ..
84753614720SStefan Herdler
84853614720SStefan Herdler       -  FALSE ( == 0 )
84953614720SStefan Herdler
85053614720SStefan Herdler       -  AV-sync OFF.
85153614720SStefan Herdler
85253614720SStefan HerdlerDescription
85353614720SStefan Herdler~~~~~~~~~~~
85453614720SStefan Herdler
85553614720SStefan Herdler.. attention:: Do **not** use in new drivers!
85653614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
85753614720SStefan Herdler
85853614720SStefan HerdlerThis ioctl call asks the Audio Device to turn ON or OFF A/V
85953614720SStefan Herdlersynchronization.
86053614720SStefan Herdler
86153614720SStefan HerdlerReturn Value
86253614720SStefan Herdler~~~~~~~~~~~~
86353614720SStefan Herdler
86453614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
86553614720SStefan Herdlerappropriately. The generic error codes are described at the
86653614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
86753614720SStefan Herdler
86853614720SStefan Herdler
86953614720SStefan Herdler-----
87053614720SStefan Herdler
87153614720SStefan Herdler
87253614720SStefan HerdlerAUDIO_SET_BYPASS_MODE
87353614720SStefan Herdler---------------------
87453614720SStefan Herdler
87553614720SStefan HerdlerSynopsis
87653614720SStefan Herdler~~~~~~~~
87753614720SStefan Herdler
87853614720SStefan Herdler.. c:macro:: AUDIO_SET_BYPASS_MODE
87953614720SStefan Herdler
88053614720SStefan Herdler.. code-block:: c
88153614720SStefan Herdler
88253614720SStefan Herdler	 int ioctl(int fd, int request = AUDIO_SET_BYPASS_MODE, int mode)
88353614720SStefan Herdler
88453614720SStefan HerdlerArguments
88553614720SStefan Herdler~~~~~~~~~
88653614720SStefan Herdler
88753614720SStefan Herdler.. flat-table::
88853614720SStefan Herdler    :header-rows:  0
88953614720SStefan Herdler    :stub-columns: 0
89053614720SStefan Herdler
89153614720SStefan Herdler    -  ..
89253614720SStefan Herdler
89353614720SStefan Herdler       -  ``int fd``
89453614720SStefan Herdler
89553614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
89653614720SStefan Herdler          to `open()`_.
89753614720SStefan Herdler
89853614720SStefan Herdler    -  ..
89953614720SStefan Herdler
90053614720SStefan Herdler       -  ``int request``
90153614720SStefan Herdler
90253614720SStefan Herdler       -  :cspan:`1` Equals ``AUDIO_SET_BYPASS_MODE`` for this command.
90353614720SStefan Herdler
90453614720SStefan Herdler    -  ..
90553614720SStefan Herdler
90653614720SStefan Herdler       -  :rspan:`2` ``int mode``
90753614720SStefan Herdler
90853614720SStefan Herdler       -  :cspan:`1` Enables or disables the decoding of the current
90953614720SStefan Herdler          Audio stream in the DVB subsystem.
91053614720SStefan Herdler    -  ..
91153614720SStefan Herdler
91253614720SStefan Herdler       -  TRUE  ( != 0 )
91353614720SStefan Herdler
91453614720SStefan Herdler       -  Disable bypass
91553614720SStefan Herdler
91653614720SStefan Herdler    -  ..
91753614720SStefan Herdler
91853614720SStefan Herdler       -  FALSE ( == 0 )
91953614720SStefan Herdler
92053614720SStefan Herdler       -  Enable bypass
92153614720SStefan Herdler
92253614720SStefan HerdlerDescription
92353614720SStefan Herdler~~~~~~~~~~~
92453614720SStefan Herdler
92553614720SStefan Herdler.. attention:: Do **not** use in new drivers!
92653614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
92753614720SStefan Herdler
92853614720SStefan HerdlerThis ioctl call asks the Audio Device to bypass the Audio decoder and
92953614720SStefan Herdlerforward the stream without decoding. This mode shall be used if streams
93053614720SStefan Herdlerthat can’t be handled by the DVB system shall be decoded. Dolby
93153614720SStefan HerdlerDigitalTM streams are automatically forwarded by the DVB subsystem if
93253614720SStefan Herdlerthe hardware can handle it.
93353614720SStefan Herdler
93453614720SStefan HerdlerReturn Value
93553614720SStefan Herdler~~~~~~~~~~~~
93653614720SStefan Herdler
93753614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
93853614720SStefan Herdlerappropriately. The generic error codes are described at the
93953614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
94053614720SStefan Herdler
94153614720SStefan Herdler
94253614720SStefan Herdler-----
94353614720SStefan Herdler
94453614720SStefan Herdler
94553614720SStefan HerdlerAUDIO_CHANNEL_SELECT
94653614720SStefan Herdler--------------------
94753614720SStefan Herdler
94853614720SStefan HerdlerSynopsis
94953614720SStefan Herdler~~~~~~~~
95053614720SStefan Herdler
95153614720SStefan Herdler.. c:macro:: AUDIO_CHANNEL_SELECT
95253614720SStefan Herdler
95353614720SStefan Herdler.. code-block:: c
95453614720SStefan Herdler
95553614720SStefan Herdler	 int ioctl(int fd, int request = AUDIO_CHANNEL_SELECT,
95653614720SStefan Herdler	 audio_channel_select_t)
95753614720SStefan Herdler
95853614720SStefan HerdlerArguments
95953614720SStefan Herdler~~~~~~~~~
96053614720SStefan Herdler
96153614720SStefan Herdler.. flat-table::
96253614720SStefan Herdler    :header-rows:  0
96353614720SStefan Herdler    :stub-columns: 0
96453614720SStefan Herdler
96553614720SStefan Herdler    -  ..
96653614720SStefan Herdler
96753614720SStefan Herdler       -  ``int fd``
96853614720SStefan Herdler
96953614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
97053614720SStefan Herdler          to `open()`_.
97153614720SStefan Herdler
97253614720SStefan Herdler    -  ..
97353614720SStefan Herdler
97453614720SStefan Herdler       -  ``int request``
97553614720SStefan Herdler
97653614720SStefan Herdler       -  Equals ``AUDIO_CHANNEL_SELECT`` for this command.
97753614720SStefan Herdler
97853614720SStefan Herdler    -  ..
97953614720SStefan Herdler
98053614720SStefan Herdler       -  `audio_channel_select_t`_ ``ch``
98153614720SStefan Herdler
98253614720SStefan Herdler       -  Select the output format of the audio (mono left/right, stereo).
98353614720SStefan Herdler
98453614720SStefan HerdlerDescription
98553614720SStefan Herdler~~~~~~~~~~~
98653614720SStefan Herdler
98753614720SStefan Herdler.. attention:: Do **not** use in new drivers!
98853614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
98953614720SStefan Herdler
99053614720SStefan HerdlerThis ioctl is for DVB devices only. To control a V4L2 decoder use the
99153614720SStefan HerdlerV4L2 ``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK`` control instead.
99253614720SStefan Herdler
99353614720SStefan HerdlerThis ioctl call asks the Audio Device to select the requested channel if
99453614720SStefan Herdlerpossible.
99553614720SStefan Herdler
99653614720SStefan HerdlerReturn Value
99753614720SStefan Herdler~~~~~~~~~~~~
99853614720SStefan Herdler
99953614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
100053614720SStefan Herdlerappropriately. The generic error codes are described at the
100153614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
100253614720SStefan Herdler
100353614720SStefan Herdler
100453614720SStefan Herdler-----
100553614720SStefan Herdler
100653614720SStefan Herdler
100753614720SStefan HerdlerAUDIO_GET_STATUS
100853614720SStefan Herdler----------------
100953614720SStefan Herdler
101053614720SStefan HerdlerSynopsis
101153614720SStefan Herdler~~~~~~~~
101253614720SStefan Herdler
101353614720SStefan Herdler.. c:macro:: AUDIO_GET_STATUS
101453614720SStefan Herdler
101553614720SStefan Herdler.. code-block:: c
101653614720SStefan Herdler
101753614720SStefan Herdler	 int ioctl(int fd, int request = AUDIO_GET_STATUS,
101853614720SStefan Herdler	 struct audio_status *status)
101953614720SStefan Herdler
102053614720SStefan HerdlerArguments
102153614720SStefan Herdler~~~~~~~~~
102253614720SStefan Herdler
102353614720SStefan Herdler.. flat-table::
102453614720SStefan Herdler    :header-rows:  0
102553614720SStefan Herdler    :stub-columns: 0
102653614720SStefan Herdler
102753614720SStefan Herdler    -  ..
102853614720SStefan Herdler
102953614720SStefan Herdler       -  ``int fd``
103053614720SStefan Herdler
103153614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
103253614720SStefan Herdler          to `open()`_.
103353614720SStefan Herdler
103453614720SStefan Herdler    -  ..
103553614720SStefan Herdler
103653614720SStefan Herdler       -  ``int request``
103753614720SStefan Herdler
103853614720SStefan Herdler       -  Equals AUDIO_GET_STATUS for this command.
103953614720SStefan Herdler
104053614720SStefan Herdler    -  ..
104153614720SStefan Herdler
104253614720SStefan Herdler       -  ``struct`` `audio_status`_ ``*status``
104353614720SStefan Herdler
104453614720SStefan Herdler       -  Returns the current state of Audio Device.
104553614720SStefan Herdler
104653614720SStefan HerdlerDescription
104753614720SStefan Herdler~~~~~~~~~~~
104853614720SStefan Herdler
104953614720SStefan Herdler.. attention:: Do **not** use in new drivers!
105053614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
105153614720SStefan Herdler
105253614720SStefan HerdlerThis ioctl call asks the Audio Device to return the current state of the
105353614720SStefan HerdlerAudio Device.
105453614720SStefan Herdler
105553614720SStefan HerdlerReturn Value
105653614720SStefan Herdler~~~~~~~~~~~~
105753614720SStefan Herdler
105853614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
105953614720SStefan Herdlerappropriately. The generic error codes are described at the
106053614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
106153614720SStefan Herdler
106253614720SStefan Herdler
106353614720SStefan Herdler-----
106453614720SStefan Herdler
106553614720SStefan Herdler
106653614720SStefan HerdlerAUDIO_GET_CAPABILITIES
106753614720SStefan Herdler----------------------
106853614720SStefan Herdler
106953614720SStefan HerdlerSynopsis
107053614720SStefan Herdler~~~~~~~~
107153614720SStefan Herdler
107253614720SStefan Herdler.. c:macro:: AUDIO_GET_CAPABILITIES
107353614720SStefan Herdler
107453614720SStefan Herdler.. code-block:: c
107553614720SStefan Herdler
107653614720SStefan Herdler	 int ioctl(int fd, int request = AUDIO_GET_CAPABILITIES,
107753614720SStefan Herdler	 unsigned int *cap)
107853614720SStefan Herdler
107953614720SStefan HerdlerArguments
108053614720SStefan Herdler~~~~~~~~~
108153614720SStefan Herdler
108253614720SStefan Herdler.. flat-table::
108353614720SStefan Herdler    :header-rows:  0
108453614720SStefan Herdler    :stub-columns: 0
108553614720SStefan Herdler
108653614720SStefan Herdler    -  ..
108753614720SStefan Herdler
108853614720SStefan Herdler       -  ``int fd``
108953614720SStefan Herdler
109053614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
109153614720SStefan Herdler          to `open()`_.
109253614720SStefan Herdler
109353614720SStefan Herdler    -  ..
109453614720SStefan Herdler
109553614720SStefan Herdler       -  ``int request``
109653614720SStefan Herdler
109753614720SStefan Herdler       -  Equals ``AUDIO_GET_CAPABILITIES`` for this command.
109853614720SStefan Herdler
109953614720SStefan Herdler    -  ..
110053614720SStefan Herdler
110153614720SStefan Herdler       -  ``unsigned int *cap``
110253614720SStefan Herdler
110353614720SStefan Herdler       -  Returns a bit array of supported sound formats.
110453614720SStefan Herdler          Bits are defined in `audio encodings`_.
110553614720SStefan Herdler
110653614720SStefan HerdlerDescription
110753614720SStefan Herdler~~~~~~~~~~~
110853614720SStefan Herdler
110953614720SStefan Herdler.. attention:: Do **not** use in new drivers!
111053614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
111153614720SStefan Herdler
111253614720SStefan HerdlerThis ioctl call asks the Audio Device to tell us about the decoding
111353614720SStefan Herdlercapabilities of the audio hardware.
111453614720SStefan Herdler
111553614720SStefan HerdlerReturn Value
111653614720SStefan Herdler~~~~~~~~~~~~
111753614720SStefan Herdler
111853614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
111953614720SStefan Herdlerappropriately. The generic error codes are described at the
112053614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
112153614720SStefan Herdler
112253614720SStefan Herdler
112353614720SStefan Herdler-----
112453614720SStefan Herdler
112553614720SStefan Herdler
112653614720SStefan HerdlerAUDIO_CLEAR_BUFFER
112753614720SStefan Herdler------------------
112853614720SStefan Herdler
112953614720SStefan HerdlerSynopsis
113053614720SStefan Herdler~~~~~~~~
113153614720SStefan Herdler
113253614720SStefan Herdler.. c:macro:: AUDIO_CLEAR_BUFFER
113353614720SStefan Herdler
113453614720SStefan Herdler.. code-block:: c
113553614720SStefan Herdler
113653614720SStefan Herdler	 int  ioctl(int fd, int request = AUDIO_CLEAR_BUFFER)
113753614720SStefan Herdler
113853614720SStefan HerdlerArguments
113953614720SStefan Herdler~~~~~~~~~
114053614720SStefan Herdler
114153614720SStefan Herdler.. flat-table::
114253614720SStefan Herdler    :header-rows:  0
114353614720SStefan Herdler    :stub-columns: 0
114453614720SStefan Herdler
114553614720SStefan Herdler    -  ..
114653614720SStefan Herdler
114753614720SStefan Herdler       -  ``int fd``
114853614720SStefan Herdler
114953614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
115053614720SStefan Herdler          to `open()`_.
115153614720SStefan Herdler
115253614720SStefan Herdler    -  ..
115353614720SStefan Herdler
115453614720SStefan Herdler       -  ``int request``
115553614720SStefan Herdler
115653614720SStefan Herdler       -  Equals ``AUDIO_CLEAR_BUFFER`` for this command.
115753614720SStefan Herdler
115853614720SStefan HerdlerDescription
115953614720SStefan Herdler~~~~~~~~~~~
116053614720SStefan Herdler
116153614720SStefan Herdler.. attention:: Do **not** use in new drivers!
116253614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
116353614720SStefan Herdler
116453614720SStefan HerdlerThis ioctl call asks the Audio Device to clear all software and hardware
116553614720SStefan Herdlerbuffers of the audio decoder device.
116653614720SStefan Herdler
116753614720SStefan HerdlerReturn Value
116853614720SStefan Herdler~~~~~~~~~~~~
116953614720SStefan Herdler
117053614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
117153614720SStefan Herdlerappropriately. The generic error codes are described at the
117253614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
117353614720SStefan Herdler
117453614720SStefan Herdler
117553614720SStefan Herdler-----
117653614720SStefan Herdler
117753614720SStefan Herdler
117853614720SStefan HerdlerAUDIO_SET_ID
117953614720SStefan Herdler------------
118053614720SStefan Herdler
118153614720SStefan HerdlerSynopsis
118253614720SStefan Herdler~~~~~~~~
118353614720SStefan Herdler
118453614720SStefan Herdler.. c:macro:: AUDIO_SET_ID
118553614720SStefan Herdler
118653614720SStefan Herdler.. code-block:: c
118753614720SStefan Herdler
118853614720SStefan Herdler	 int  ioctl(int fd, int request = AUDIO_SET_ID, int id)
118953614720SStefan Herdler
119053614720SStefan HerdlerArguments
119153614720SStefan Herdler~~~~~~~~~
119253614720SStefan Herdler
119353614720SStefan Herdler.. flat-table::
119453614720SStefan Herdler    :header-rows:  0
119553614720SStefan Herdler    :stub-columns: 0
119653614720SStefan Herdler
119753614720SStefan Herdler    -  ..
119853614720SStefan Herdler
119953614720SStefan Herdler       -  ``int fd``
120053614720SStefan Herdler
120153614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
120253614720SStefan Herdler          to `open()`_.
120353614720SStefan Herdler
120453614720SStefan Herdler    -  ..
120553614720SStefan Herdler
120653614720SStefan Herdler       -  ``int request``
120753614720SStefan Herdler
120853614720SStefan Herdler       -  Equals ``AUDIO_SET_ID`` for this command.
120953614720SStefan Herdler
121053614720SStefan Herdler    -  ..
121153614720SStefan Herdler
121253614720SStefan Herdler       -  ``int id``
121353614720SStefan Herdler
121453614720SStefan Herdler       -  Audio sub-stream id.
121553614720SStefan Herdler
121653614720SStefan HerdlerDescription
121753614720SStefan Herdler~~~~~~~~~~~
121853614720SStefan Herdler
121953614720SStefan Herdler.. attention:: Do **not** use in new drivers!
122053614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
122153614720SStefan Herdler
122253614720SStefan HerdlerThis ioctl selects which sub-stream is to be decoded if a program or
122353614720SStefan Herdlersystem stream is sent to the video device.
122453614720SStefan Herdler
122553614720SStefan HerdlerIf no audio stream type is set the id has to be in range [0xC0,0xDF]
122653614720SStefan Herdlerfor MPEG sound, in [0x80,0x87] for AC3 and in [0xA0,0xA7] for LPCM.
122753614720SStefan HerdlerSee ITU-T H.222.0 | ISO/IEC 13818-1 for further description.
122853614720SStefan Herdler
122953614720SStefan HerdlerIf the stream type is set with `AUDIO_SET_STREAMTYPE`_, specifies the
123053614720SStefan Herdlerid just the sub-stream id of the audio stream and only the first 5 bits
123153614720SStefan Herdler(& 0x1F) are recognized.
123253614720SStefan Herdler
123353614720SStefan HerdlerReturn Value
123453614720SStefan Herdler~~~~~~~~~~~~
123553614720SStefan Herdler
123653614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
123753614720SStefan Herdlerappropriately. The generic error codes are described at the
123853614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
123953614720SStefan Herdler
124053614720SStefan Herdler
124153614720SStefan Herdler-----
124253614720SStefan Herdler
124353614720SStefan Herdler
124453614720SStefan HerdlerAUDIO_SET_MIXER
124553614720SStefan Herdler---------------
124653614720SStefan Herdler
124753614720SStefan HerdlerSynopsis
124853614720SStefan Herdler~~~~~~~~
124953614720SStefan Herdler
125053614720SStefan Herdler.. c:macro:: AUDIO_SET_MIXER
125153614720SStefan Herdler
125253614720SStefan Herdler.. code-block:: c
125353614720SStefan Herdler
125453614720SStefan Herdler	 int ioctl(int fd, int request = AUDIO_SET_MIXER, audio_mixer_t *mix)
125553614720SStefan Herdler
125653614720SStefan HerdlerArguments
125753614720SStefan Herdler~~~~~~~~~
125853614720SStefan Herdler
125953614720SStefan Herdler.. flat-table::
126053614720SStefan Herdler    :header-rows:  0
126153614720SStefan Herdler    :stub-columns: 0
126253614720SStefan Herdler
126353614720SStefan Herdler    -  ..
126453614720SStefan Herdler
126553614720SStefan Herdler       -  ``int fd``
126653614720SStefan Herdler
126753614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
126853614720SStefan Herdler          to `open()`_.
126953614720SStefan Herdler
127053614720SStefan Herdler    -  ..
127153614720SStefan Herdler
127253614720SStefan Herdler       -  ``int request``
127353614720SStefan Herdler
127453614720SStefan Herdler       -  Equals ``AUDIO_SET_MIXER`` for this command.
127553614720SStefan Herdler
127653614720SStefan Herdler    -  ..
127753614720SStefan Herdler
127853614720SStefan Herdler       -  ``audio_mixer_t *mix``
127953614720SStefan Herdler
128053614720SStefan Herdler       -  Mixer settings.
128153614720SStefan Herdler
128253614720SStefan HerdlerDescription
128353614720SStefan Herdler~~~~~~~~~~~
128453614720SStefan Herdler
128553614720SStefan Herdler.. attention:: Do **not** use in new drivers!
128653614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
128753614720SStefan Herdler
128853614720SStefan HerdlerThis ioctl lets you adjust the mixer settings of the audio decoder.
128953614720SStefan Herdler
129053614720SStefan HerdlerReturn Value
129153614720SStefan Herdler~~~~~~~~~~~~
129253614720SStefan Herdler
129353614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
129453614720SStefan Herdlerappropriately. The generic error codes are described at the
129553614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
129653614720SStefan Herdler
129753614720SStefan Herdler
129853614720SStefan Herdler-----
129953614720SStefan Herdler
130053614720SStefan Herdler
130153614720SStefan HerdlerAUDIO_SET_STREAMTYPE
130253614720SStefan Herdler--------------------
130353614720SStefan Herdler
130453614720SStefan HerdlerSynopsis
130553614720SStefan Herdler~~~~~~~~
130653614720SStefan Herdler
130753614720SStefan Herdler.. c:macro:: AUDIO_SET_STREAMTYPE
130853614720SStefan Herdler
130953614720SStefan Herdler.. code-block:: c
131053614720SStefan Herdler
131153614720SStefan Herdler	 int  ioctl(fd, int request = AUDIO_SET_STREAMTYPE, int type)
131253614720SStefan Herdler
131353614720SStefan HerdlerArguments
131453614720SStefan Herdler~~~~~~~~~
131553614720SStefan Herdler
131653614720SStefan Herdler.. flat-table::
131753614720SStefan Herdler    :header-rows:  0
131853614720SStefan Herdler    :stub-columns: 0
131953614720SStefan Herdler
132053614720SStefan Herdler    -  ..
132153614720SStefan Herdler
132253614720SStefan Herdler       -  ``int fd``
132353614720SStefan Herdler
132453614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
132553614720SStefan Herdler          to `open()`_.
132653614720SStefan Herdler
132753614720SStefan Herdler    -  ..
132853614720SStefan Herdler
132953614720SStefan Herdler       -  ``int request``
133053614720SStefan Herdler
133153614720SStefan Herdler       -  Equals ``AUDIO_SET_STREAMTYPE`` for this command.
133253614720SStefan Herdler
133353614720SStefan Herdler    -  ..
133453614720SStefan Herdler
133553614720SStefan Herdler       -  ``int type``
133653614720SStefan Herdler
133753614720SStefan Herdler       -  Stream type.
133853614720SStefan Herdler
133953614720SStefan HerdlerDescription
134053614720SStefan Herdler~~~~~~~~~~~
134153614720SStefan Herdler
134253614720SStefan Herdler.. attention:: Do **not** use in new drivers!
134353614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
134453614720SStefan Herdler
134553614720SStefan HerdlerThis ioctl tells the driver which kind of audio stream to expect. This
134653614720SStefan Herdleris useful if the stream offers several audio sub-streams like LPCM and
134753614720SStefan HerdlerAC3.
134853614720SStefan Herdler
134953614720SStefan HerdlerStream types defined in ITU-T H.222.0 | ISO/IEC 13818-1 are used.
135053614720SStefan Herdler
135153614720SStefan Herdler
135253614720SStefan HerdlerReturn Value
135353614720SStefan Herdler~~~~~~~~~~~~
135453614720SStefan Herdler
135553614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
135653614720SStefan Herdlerappropriately. The generic error codes are described at the
135753614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
135853614720SStefan Herdler
135953614720SStefan Herdler.. flat-table::
136053614720SStefan Herdler    :header-rows:  0
136153614720SStefan Herdler    :stub-columns: 0
136253614720SStefan Herdler
136353614720SStefan Herdler    -  ..
136453614720SStefan Herdler
136553614720SStefan Herdler       -  ``EINVAL``
136653614720SStefan Herdler
136753614720SStefan Herdler       -  Type is not a valid or supported stream type.
136853614720SStefan Herdler
136953614720SStefan Herdler
137053614720SStefan Herdler-----
137153614720SStefan Herdler
137253614720SStefan Herdler
137353614720SStefan HerdlerAUDIO_BILINGUAL_CHANNEL_SELECT
137453614720SStefan Herdler------------------------------
137553614720SStefan Herdler
137653614720SStefan HerdlerSynopsis
137753614720SStefan Herdler~~~~~~~~
137853614720SStefan Herdler
137953614720SStefan Herdler.. c:macro:: AUDIO_BILINGUAL_CHANNEL_SELECT
138053614720SStefan Herdler
138153614720SStefan Herdler.. code-block:: c
138253614720SStefan Herdler
138353614720SStefan Herdler	 int ioctl(int fd, int request = AUDIO_BILINGUAL_CHANNEL_SELECT,
138453614720SStefan Herdler	 audio_channel_select_t)
138553614720SStefan Herdler
138653614720SStefan HerdlerArguments
138753614720SStefan Herdler~~~~~~~~~
138853614720SStefan Herdler
138953614720SStefan Herdler.. flat-table::
139053614720SStefan Herdler    :header-rows:  0
139153614720SStefan Herdler    :stub-columns: 0
139253614720SStefan Herdler
139353614720SStefan Herdler    -  ..
139453614720SStefan Herdler
139553614720SStefan Herdler       -  ``int fd``
139653614720SStefan Herdler
139753614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
139853614720SStefan Herdler          to `open()`_.
139953614720SStefan Herdler
140053614720SStefan Herdler    -  ..
140153614720SStefan Herdler
140253614720SStefan Herdler       -  ``int request``
140353614720SStefan Herdler
140453614720SStefan Herdler       -  Equals ``AUDIO_BILINGUAL_CHANNEL_SELECT`` for this command.
140553614720SStefan Herdler
140653614720SStefan Herdler    -  ..
140753614720SStefan Herdler
140853614720SStefan Herdler       -  ``audio_channel_select_t ch``
140953614720SStefan Herdler
141053614720SStefan Herdler       -  Select the output format of the audio (mono left/right, stereo).
141153614720SStefan Herdler
141253614720SStefan HerdlerDescription
141353614720SStefan Herdler~~~~~~~~~~~
141453614720SStefan Herdler
141553614720SStefan Herdler.. attention:: Do **not** use in new drivers!
141653614720SStefan Herdler             See: :ref:`legacy_dvb_decoder_notes`
141753614720SStefan Herdler
141853614720SStefan HerdlerThis ioctl has been replaced by the V4L2
141953614720SStefan Herdler``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK`` control
142053614720SStefan Herdlerfor MPEG decoders controlled through V4L2.
142153614720SStefan Herdler
142253614720SStefan HerdlerThis ioctl call asks the Audio Device to select the requested channel
142353614720SStefan Herdlerfor bilingual streams if possible.
142453614720SStefan Herdler
142553614720SStefan HerdlerReturn Value
142653614720SStefan Herdler~~~~~~~~~~~~
142753614720SStefan Herdler
142853614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set
142953614720SStefan Herdlerappropriately. The generic error codes are described at the
143053614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter.
143153614720SStefan Herdler
143253614720SStefan Herdler
143353614720SStefan Herdler-----
143453614720SStefan Herdler
143553614720SStefan Herdler
143653614720SStefan Herdleropen()
143753614720SStefan Herdler------
143853614720SStefan Herdler
143953614720SStefan HerdlerSynopsis
144053614720SStefan Herdler~~~~~~~~
144153614720SStefan Herdler
144253614720SStefan Herdler.. code-block:: c
144353614720SStefan Herdler
144453614720SStefan Herdler    #include <fcntl.h>
144553614720SStefan Herdler
144653614720SStefan Herdler.. c:function:: int  open(const char *deviceName, int flags)
144753614720SStefan Herdler
144853614720SStefan HerdlerArguments
144953614720SStefan Herdler~~~~~~~~~
145053614720SStefan Herdler
145153614720SStefan Herdler.. flat-table::
145253614720SStefan Herdler    :header-rows:  0
145353614720SStefan Herdler    :stub-columns: 0
145453614720SStefan Herdler
145553614720SStefan Herdler    -  ..
145653614720SStefan Herdler
145753614720SStefan Herdler       -  ``const char *deviceName``
145853614720SStefan Herdler
145953614720SStefan Herdler       -  Name of specific audio device.
146053614720SStefan Herdler
146153614720SStefan Herdler    -  ..
146253614720SStefan Herdler
146353614720SStefan Herdler       -  :rspan:`3` ``int flags``
146453614720SStefan Herdler
146553614720SStefan Herdler       -  :cspan:`1` A bit-wise OR of the following flags:
146653614720SStefan Herdler
146753614720SStefan Herdler    -  ..
146853614720SStefan Herdler
146953614720SStefan Herdler       -  ``O_RDONLY``
147053614720SStefan Herdler
147153614720SStefan Herdler       -  read-only access
147253614720SStefan Herdler
147353614720SStefan Herdler    -  ..
147453614720SStefan Herdler
147553614720SStefan Herdler       -  ``O_RDWR``
147653614720SStefan Herdler
147753614720SStefan Herdler       -  read/write access
147853614720SStefan Herdler
147953614720SStefan Herdler    -  ..
148053614720SStefan Herdler
148153614720SStefan Herdler       -  ``O_NONBLOCK``
148253614720SStefan Herdler       -  | Open in non-blocking mode
148353614720SStefan Herdler          | (blocking mode is the default)
148453614720SStefan Herdler
148553614720SStefan HerdlerDescription
148653614720SStefan Herdler~~~~~~~~~~~
148753614720SStefan Herdler
148853614720SStefan HerdlerThis system call opens a named audio device (e.g.
148953614720SStefan Herdler``/dev/dvb/adapter0/audio0``) for subsequent use. When an open() call has
149053614720SStefan Herdlersucceeded, the device will be ready for use. The significance of
149153614720SStefan Herdlerblocking or non-blocking mode is described in the documentation for
149253614720SStefan Herdlerfunctions where there is a difference. It does not affect the semantics
149353614720SStefan Herdlerof the open() call itself. A device opened in blocking mode can later be
149453614720SStefan Herdlerput into non-blocking mode (and vice versa) using the F_SETFL command
149553614720SStefan Herdlerof the fcntl system call. This is a standard system call, documented in
149653614720SStefan Herdlerthe Linux manual page for fcntl. Only one user can open the Audio Device
149753614720SStefan Herdlerin O_RDWR mode. All other attempts to open the device in this mode will
149853614720SStefan Herdlerfail, and an error code will be returned. If the Audio Device is opened
149953614720SStefan Herdlerin O_RDONLY mode, the only ioctl call that can be used is
150053614720SStefan Herdler`AUDIO_GET_STATUS`_. All other call will return with an error code.
150153614720SStefan Herdler
150253614720SStefan HerdlerReturn Value
150353614720SStefan Herdler~~~~~~~~~~~~
150453614720SStefan Herdler
150553614720SStefan Herdler.. flat-table::
150653614720SStefan Herdler    :header-rows:  0
150753614720SStefan Herdler    :stub-columns: 0
150853614720SStefan Herdler
150953614720SStefan Herdler    -  ..
151053614720SStefan Herdler
151153614720SStefan Herdler       -  ``ENODEV``
151253614720SStefan Herdler
151353614720SStefan Herdler       -  Device driver not loaded/available.
151453614720SStefan Herdler
151553614720SStefan Herdler    -  ..
151653614720SStefan Herdler
151753614720SStefan Herdler       -  ``EBUSY``
151853614720SStefan Herdler
151953614720SStefan Herdler       -  Device or resource busy.
152053614720SStefan Herdler
152153614720SStefan Herdler    -  ..
152253614720SStefan Herdler
152353614720SStefan Herdler       -  ``EINVAL``
152453614720SStefan Herdler
152553614720SStefan Herdler       -  Invalid argument.
152653614720SStefan Herdler
152753614720SStefan Herdler
152853614720SStefan Herdler-----
152953614720SStefan Herdler
153053614720SStefan Herdler
153153614720SStefan Herdlerclose()
153253614720SStefan Herdler-------
153353614720SStefan Herdler
153453614720SStefan HerdlerSynopsis
153553614720SStefan Herdler~~~~~~~~
153653614720SStefan Herdler
153753614720SStefan Herdler.. c:function:: 	int close(int fd)
153853614720SStefan Herdler
153953614720SStefan HerdlerArguments
154053614720SStefan Herdler~~~~~~~~~
154153614720SStefan Herdler
154253614720SStefan Herdler.. flat-table::
154353614720SStefan Herdler    :header-rows:  0
154453614720SStefan Herdler    :stub-columns: 0
154553614720SStefan Herdler
154653614720SStefan Herdler    -  ..
154753614720SStefan Herdler
154853614720SStefan Herdler       -  ``int fd``
154953614720SStefan Herdler
155053614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
155153614720SStefan Herdler          to `open()`_.
155253614720SStefan Herdler
155353614720SStefan HerdlerDescription
155453614720SStefan Herdler~~~~~~~~~~~
155553614720SStefan Herdler
155653614720SStefan HerdlerThis system call closes a previously opened audio device.
155753614720SStefan Herdler
155853614720SStefan HerdlerReturn Value
155953614720SStefan Herdler~~~~~~~~~~~~
156053614720SStefan Herdler
156153614720SStefan Herdler.. flat-table::
156253614720SStefan Herdler    :header-rows:  0
156353614720SStefan Herdler    :stub-columns: 0
156453614720SStefan Herdler
156553614720SStefan Herdler    -  ..
156653614720SStefan Herdler
156753614720SStefan Herdler       -  ``EBADF``
156853614720SStefan Herdler
156953614720SStefan Herdler       -  Fd is not a valid open file descriptor.
157053614720SStefan Herdler
157153614720SStefan Herdler-----
157253614720SStefan Herdler
157353614720SStefan Herdler
157453614720SStefan Herdlerwrite()
157553614720SStefan Herdler-------
157653614720SStefan Herdler
157753614720SStefan HerdlerSynopsis
157853614720SStefan Herdler~~~~~~~~
157953614720SStefan Herdler
158053614720SStefan Herdler.. code-block:: c
158153614720SStefan Herdler
158253614720SStefan Herdler	 size_t write(int fd, const void *buf, size_t count)
158353614720SStefan Herdler
158453614720SStefan HerdlerArguments
158553614720SStefan Herdler~~~~~~~~~
158653614720SStefan Herdler
158753614720SStefan Herdler.. flat-table::
158853614720SStefan Herdler    :header-rows:  0
158953614720SStefan Herdler    :stub-columns: 0
159053614720SStefan Herdler
159153614720SStefan Herdler    -  ..
159253614720SStefan Herdler
159353614720SStefan Herdler       -  ``int fd``
159453614720SStefan Herdler
159553614720SStefan Herdler       -  :cspan:`1` File descriptor returned by a previous call
159653614720SStefan Herdler          to `open()`_.
159753614720SStefan Herdler
159853614720SStefan Herdler    -  ..
159953614720SStefan Herdler
160053614720SStefan Herdler       -  ``void *buf``
160153614720SStefan Herdler
160253614720SStefan Herdler       -  Pointer to the buffer containing the PES data.
160353614720SStefan Herdler
160453614720SStefan Herdler    -  ..
160553614720SStefan Herdler
160653614720SStefan Herdler       -  ``size_t count``
160753614720SStefan Herdler
160853614720SStefan Herdler       -  Size of buf.
160953614720SStefan Herdler
161053614720SStefan HerdlerDescription
161153614720SStefan Herdler~~~~~~~~~~~
161253614720SStefan Herdler
161353614720SStefan HerdlerThis system call can only be used if ``AUDIO_SOURCE_MEMORY`` is selected
161453614720SStefan Herdlerin the ioctl call `AUDIO_SELECT_SOURCE`_. The data provided shall be in
161553614720SStefan HerdlerPES format. If ``O_NONBLOCK`` is not specified the function will block
161653614720SStefan Herdleruntil buffer space is available. The amount of data to be transferred is
161753614720SStefan Herdlerimplied by count.
161853614720SStefan Herdler
161953614720SStefan HerdlerReturn Value
162053614720SStefan Herdler~~~~~~~~~~~~
162153614720SStefan Herdler
162253614720SStefan Herdler.. flat-table::
162353614720SStefan Herdler    :header-rows:  0
162453614720SStefan Herdler    :stub-columns: 0
162553614720SStefan Herdler
162653614720SStefan Herdler    -  ..
162753614720SStefan Herdler
162853614720SStefan Herdler       -  ``EPERM``
162953614720SStefan Herdler
163053614720SStefan Herdler       -  :cspan:`1` Mode ``AUDIO_SOURCE_MEMORY`` not selected.
163153614720SStefan Herdler
163253614720SStefan Herdler    -  ..
163353614720SStefan Herdler
163453614720SStefan Herdler       -  ``ENOMEM``
163553614720SStefan Herdler
163653614720SStefan Herdler       -  Attempted to write more data than the internal buffer can hold.
163753614720SStefan Herdler
163853614720SStefan Herdler    -  ..
163953614720SStefan Herdler
164053614720SStefan Herdler       -  ``EBADF``
164153614720SStefan Herdler
164253614720SStefan Herdler       -  Fd is not a valid open file descriptor.
1643