1*793e52d4SMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2*793e52d4SMauro Carvalho Chehab 3*793e52d4SMauro Carvalho Chehab.. _audio_data_types: 4*793e52d4SMauro Carvalho Chehab 5*793e52d4SMauro Carvalho Chehab**************** 6*793e52d4SMauro Carvalho ChehabAudio Data Types 7*793e52d4SMauro Carvalho Chehab**************** 8*793e52d4SMauro Carvalho Chehab 9*793e52d4SMauro Carvalho ChehabThis section describes the structures, data types and defines used when 10*793e52d4SMauro Carvalho Chehabtalking to the audio device. 11*793e52d4SMauro Carvalho Chehab 12*793e52d4SMauro Carvalho Chehab.. c:type:: audio_stream_source 13*793e52d4SMauro Carvalho Chehab 14*793e52d4SMauro Carvalho ChehabThe audio stream source is set through the AUDIO_SELECT_SOURCE call 15*793e52d4SMauro Carvalho Chehaband can take the following values, depending on whether we are replaying 16*793e52d4SMauro Carvalho Chehabfrom an internal (demux) or external (user write) source. 17*793e52d4SMauro Carvalho Chehab 18*793e52d4SMauro Carvalho Chehab 19*793e52d4SMauro Carvalho Chehab.. code-block:: c 20*793e52d4SMauro Carvalho Chehab 21*793e52d4SMauro Carvalho Chehab typedef enum { 22*793e52d4SMauro Carvalho Chehab AUDIO_SOURCE_DEMUX, 23*793e52d4SMauro Carvalho Chehab AUDIO_SOURCE_MEMORY 24*793e52d4SMauro Carvalho Chehab } audio_stream_source_t; 25*793e52d4SMauro Carvalho Chehab 26*793e52d4SMauro Carvalho ChehabAUDIO_SOURCE_DEMUX selects the demultiplexer (fed either by the 27*793e52d4SMauro Carvalho Chehabfrontend or the DVR device) as the source of the video stream. If 28*793e52d4SMauro Carvalho ChehabAUDIO_SOURCE_MEMORY is selected the stream comes from the application 29*793e52d4SMauro Carvalho Chehabthrough the ``write()`` system call. 30*793e52d4SMauro Carvalho Chehab 31*793e52d4SMauro Carvalho Chehab 32*793e52d4SMauro Carvalho Chehab.. c:type:: audio_play_state 33*793e52d4SMauro Carvalho Chehab 34*793e52d4SMauro Carvalho ChehabThe following values can be returned by the AUDIO_GET_STATUS call 35*793e52d4SMauro Carvalho Chehabrepresenting the state of audio playback. 36*793e52d4SMauro Carvalho Chehab 37*793e52d4SMauro Carvalho Chehab 38*793e52d4SMauro Carvalho Chehab.. code-block:: c 39*793e52d4SMauro Carvalho Chehab 40*793e52d4SMauro Carvalho Chehab typedef enum { 41*793e52d4SMauro Carvalho Chehab AUDIO_STOPPED, 42*793e52d4SMauro Carvalho Chehab AUDIO_PLAYING, 43*793e52d4SMauro Carvalho Chehab AUDIO_PAUSED 44*793e52d4SMauro Carvalho Chehab } audio_play_state_t; 45*793e52d4SMauro Carvalho Chehab 46*793e52d4SMauro Carvalho Chehab 47*793e52d4SMauro Carvalho Chehab.. c:type:: audio_channel_select 48*793e52d4SMauro Carvalho Chehab 49*793e52d4SMauro Carvalho ChehabThe audio channel selected via AUDIO_CHANNEL_SELECT is determined by 50*793e52d4SMauro Carvalho Chehabthe following values. 51*793e52d4SMauro Carvalho Chehab 52*793e52d4SMauro Carvalho Chehab 53*793e52d4SMauro Carvalho Chehab.. code-block:: c 54*793e52d4SMauro Carvalho Chehab 55*793e52d4SMauro Carvalho Chehab typedef enum { 56*793e52d4SMauro Carvalho Chehab AUDIO_STEREO, 57*793e52d4SMauro Carvalho Chehab AUDIO_MONO_LEFT, 58*793e52d4SMauro Carvalho Chehab AUDIO_MONO_RIGHT, 59*793e52d4SMauro Carvalho Chehab AUDIO_MONO, 60*793e52d4SMauro Carvalho Chehab AUDIO_STEREO_SWAPPED 61*793e52d4SMauro Carvalho Chehab } audio_channel_select_t; 62*793e52d4SMauro Carvalho Chehab 63*793e52d4SMauro Carvalho Chehab 64*793e52d4SMauro Carvalho Chehab.. c:type:: audio_status 65*793e52d4SMauro Carvalho Chehab 66*793e52d4SMauro Carvalho ChehabThe AUDIO_GET_STATUS call returns the following structure informing 67*793e52d4SMauro Carvalho Chehababout various states of the playback operation. 68*793e52d4SMauro Carvalho Chehab 69*793e52d4SMauro Carvalho Chehab 70*793e52d4SMauro Carvalho Chehab.. code-block:: c 71*793e52d4SMauro Carvalho Chehab 72*793e52d4SMauro Carvalho Chehab typedef struct audio_status { 73*793e52d4SMauro Carvalho Chehab boolean AV_sync_state; 74*793e52d4SMauro Carvalho Chehab boolean mute_state; 75*793e52d4SMauro Carvalho Chehab audio_play_state_t play_state; 76*793e52d4SMauro Carvalho Chehab audio_stream_source_t stream_source; 77*793e52d4SMauro Carvalho Chehab audio_channel_select_t channel_select; 78*793e52d4SMauro Carvalho Chehab boolean bypass_mode; 79*793e52d4SMauro Carvalho Chehab audio_mixer_t mixer_state; 80*793e52d4SMauro Carvalho Chehab } audio_status_t; 81*793e52d4SMauro Carvalho Chehab 82*793e52d4SMauro Carvalho Chehab 83*793e52d4SMauro Carvalho Chehab.. c:type:: audio_mixer 84*793e52d4SMauro Carvalho Chehab 85*793e52d4SMauro Carvalho ChehabThe following structure is used by the AUDIO_SET_MIXER call to set the 86*793e52d4SMauro Carvalho Chehabaudio volume. 87*793e52d4SMauro Carvalho Chehab 88*793e52d4SMauro Carvalho Chehab 89*793e52d4SMauro Carvalho Chehab.. code-block:: c 90*793e52d4SMauro Carvalho Chehab 91*793e52d4SMauro Carvalho Chehab typedef struct audio_mixer { 92*793e52d4SMauro Carvalho Chehab unsigned int volume_left; 93*793e52d4SMauro Carvalho Chehab unsigned int volume_right; 94*793e52d4SMauro Carvalho Chehab } audio_mixer_t; 95*793e52d4SMauro Carvalho Chehab 96*793e52d4SMauro Carvalho Chehab 97*793e52d4SMauro Carvalho Chehab.. _audio_encodings: 98*793e52d4SMauro Carvalho Chehab 99*793e52d4SMauro Carvalho Chehabaudio encodings 100*793e52d4SMauro Carvalho Chehab=============== 101*793e52d4SMauro Carvalho Chehab 102*793e52d4SMauro Carvalho ChehabA call to AUDIO_GET_CAPABILITIES returns an unsigned integer with the 103*793e52d4SMauro Carvalho Chehabfollowing bits set according to the hardwares capabilities. 104*793e52d4SMauro Carvalho Chehab 105*793e52d4SMauro Carvalho Chehab 106*793e52d4SMauro Carvalho Chehab.. code-block:: c 107*793e52d4SMauro Carvalho Chehab 108*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_DTS 1 109*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_LPCM 2 110*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_MP1 4 111*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_MP2 8 112*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_MP3 16 113*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_AAC 32 114*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_OGG 64 115*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_SDDS 128 116*793e52d4SMauro Carvalho Chehab #define AUDIO_CAP_AC3 256 117