The latest development version of this page may be more current than this released 3.5.0 version.

Audio Codec

Overview

The Audio Codec API provides access to digital audio codecs.

Configuration Options

Related configuration options:

API Reference

group audio_codec_interface

Abstraction for audio codecs.

Enums

enum audio_pcm_rate_t

PCM audio sample rates.

Values:

enumerator AUDIO_PCM_RATE_8K = 8000

8 kHz sample rate

enumerator AUDIO_PCM_RATE_16K = 16000

16 kHz sample rate

enumerator AUDIO_PCM_RATE_24K = 24000

24 kHz sample rate

enumerator AUDIO_PCM_RATE_32K = 32000

32 kHz sample rate

enumerator AUDIO_PCM_RATE_44P1K = 44100

44.1 kHz sample rate

enumerator AUDIO_PCM_RATE_48K = 48000

48 kHz sample rate

enumerator AUDIO_PCM_RATE_96K = 96000

96 kHz sample rate

enumerator AUDIO_PCM_RATE_192K = 192000

192 kHz sample rate

enum audio_pcm_width_t

PCM audio sample bit widths.

Values:

enumerator AUDIO_PCM_WIDTH_16_BITS = 16

16-bit sample width

enumerator AUDIO_PCM_WIDTH_20_BITS = 20

20-bit sample width

enumerator AUDIO_PCM_WIDTH_24_BITS = 24

24-bit sample width

enumerator AUDIO_PCM_WIDTH_32_BITS = 32

32-bit sample width

enum audio_dai_type_t

Digital Audio Interface (DAI) type.

Values:

enumerator AUDIO_DAI_TYPE_I2S

I2S Interface.

enumerator AUDIO_DAI_TYPE_INVALID

Other interfaces can be added here.

enum audio_property_t

Codec properties that can be set by audio_codec_set_property().

Values:

enumerator AUDIO_PROPERTY_OUTPUT_VOLUME

Output volume.

enumerator AUDIO_PROPERTY_OUTPUT_MUTE

Output mute/unmute.

enum audio_channel_t

Audio channel identifiers to use in audio_codec_set_property().

Values:

enumerator AUDIO_CHANNEL_FRONT_LEFT

Front left channel.

enumerator AUDIO_CHANNEL_FRONT_RIGHT

Front right channel.

enumerator AUDIO_CHANNEL_LFE

Low frequency effect channel.

enumerator AUDIO_CHANNEL_FRONT_CENTER

Front center channel.

enumerator AUDIO_CHANNEL_REAR_LEFT

Rear left channel.

enumerator AUDIO_CHANNEL_REAR_RIGHT

Rear right channel.

enumerator AUDIO_CHANNEL_REAR_CENTER

Rear center channel.

enumerator AUDIO_CHANNEL_SIDE_LEFT

Side left channel.

enumerator AUDIO_CHANNEL_SIDE_RIGHT

Side right channel.

enumerator AUDIO_CHANNEL_ALL

All channels.

Functions

static inline int audio_codec_configure(const struct device *dev, struct audio_codec_cfg *cfg)

Configure the audio codec.

Configure the audio codec device according to the configuration parameters provided as input

Parameters:
  • dev – Pointer to the device structure for codec driver instance.

  • cfg – Pointer to the structure containing the codec configuration.

Returns:

0 on success, negative error code on failure

static inline void audio_codec_start_output(const struct device *dev)

Set codec to start output audio playback.

Setup the audio codec device to start the audio playback

Parameters:
  • dev – Pointer to the device structure for codec driver instance.

static inline void audio_codec_stop_output(const struct device *dev)

Set codec to stop output audio playback.

Setup the audio codec device to stop the audio playback

Parameters:
  • dev – Pointer to the device structure for codec driver instance.

static inline int audio_codec_set_property(const struct device *dev, audio_property_t property, audio_channel_t channel, audio_property_value_t val)

Set a codec property defined by audio_property_t.

Set a property such as volume level, clock configuration etc.

Parameters:
  • dev – Pointer to the device structure for codec driver instance.

  • property – The codec property to set

  • channel – The audio channel for which the property has to be set

  • val – pointer to a property value of type audio_codec_property_value_t

Returns:

0 on success, negative error code on failure

static inline int audio_codec_apply_properties(const struct device *dev)

Atomically apply any cached properties.

Following one or more invocations of audio_codec_set_property, that may have been cached by the driver, audio_codec_apply_properties can be invoked to apply all the properties as atomic as possible

Parameters:
  • dev – Pointer to the device structure for codec driver instance.

Returns:

0 on success, negative error code on failure

union audio_dai_cfg_t
#include <codec.h>

Digital Audio Interface Configuration.

Configuration is dependent on DAI type

Public Members

struct i2s_config i2s

I2S configuration.

struct audio_codec_cfg
#include <codec.h>

Codec configuration parameters.

Public Members

uint32_t mclk_freq

MCLK input frequency in Hz.

audio_dai_type_t dai_type

Digital interface type.

audio_dai_cfg_t dai_cfg

DAI configuration info.

union audio_property_value_t
#include <codec.h>

Codec property values.

Public Members

int vol

Volume level in 0.5dB resolution.

bool mute

Mute if true, unmute if false.