AMR Decoder and Encoder

Decode and encode an audio data stream from / to AMR format. Encoders cover both AMR-NB and AMR-WB formats.

Application Examples

Implementation of this API is demonstrated in the following examples:

API Reference - Decoder

Header File

Functions

audio_element_handle_t amr_decoder_init(amr_decoder_cfg_t *config)

Create an Audio Element handle to decode incoming AMR data.

Return

The audio element handle

Parameters
  • config: The configuration

Structures

struct amr_decoder_cfg_t

AMR Decoder configuration.

Public Members

int out_rb_size

Size of output ringbuffer

int task_stack

Task stack size

int task_core

CPU core number (0 or 1) where decoder task in running

int task_prio

Task priority (based on freeRTOS priority)

bool stack_in_ext

Try to allocate stack in external memory

Macros

AMR_DECODER_TASK_STACK_SIZE
AMR_DECODER_TASK_CORE
AMR_DECODER_TASK_PRIO
AMR_DECODER_RINGBUFFER_SIZE
DEFAULT_AMR_DECODER_CONFIG()

API Reference - AMR-NB Encoder

Header File

Functions

esp_err_t amrnb_encoder_set_bitrate(audio_element_handle_t self, amrnb_encoder_bitrate_t bitrate_mode)

Set AMRNB encoder bitrate.

Return

ESP_OK ESP_FAIL

Parameters
  • self: Audio element handle

  • bitrate_mode: Bitrate choose, value from amrnb_encoder_bitrate_t

audio_element_handle_t amrnb_encoder_init(amrnb_encoder_cfg_t *config)

Create an Audio Element handle to encode incoming AMRNB data.

Return

The audio element handle

Parameters
  • config: The configuration

Structures

struct amrnb_encoder_cfg_t

AMRNB Encoder configurations.

Public Members

int out_rb_size

Size of output ringbuffer

int task_stack

Task stack size

int task_core

Task running in core (0 or 1)

int task_prio

Task priority (based on freeRTOS priority)

amrnb_encoder_bitrate_t bitrate_mode

AMRNB Encoder bitrate choose

bool contain_amrnb_header

Choose to contain amrnb header in amrnb encoder whether or not (true or false, true means choose to contain amrnb header)

bool stack_in_ext

Try to allocate stack in external memory

Macros

AMRNB_ENCODER_TASK_STACK
AMRNB_ENCODER_TASK_CORE
AMRNB_ENCODER_TASK_PRIO
AMRNB_ENCODER_RINGBUFFER_SIZE
DEFAULT_AMRNB_ENCODER_CONFIG()

Enumerations

enum amrnb_encoder_bitrate_t

Enum of AMRNB Encoder bitrate choose.

Values:

AMRNB_ENC_BITRATE_UNKNOW = -1

Invalid mode

AMRNB_ENC_BITRATE_MR475 = 0
AMRNB_ENC_BITRATE_MR515 = 1
AMRNB_ENC_BITRATE_MR59 = 2
AMRNB_ENC_BITRATE_MR67 = 3
AMRNB_ENC_BITRATE_MR74 = 4
AMRNB_ENC_BITRATE_MR795 = 5
AMRNB_ENC_BITRATE_MR102 = 6
AMRNB_ENC_BITRATE_MR122 = 7
AMRNB_ENC_BITRATE_MRDTX = 8
AMRNB_ENC_BITRATE_N_MODES = 9

API Reference - AMR-WB Encoder

Header File

Functions

esp_err_t amrwb_encoder_set_bitrate(audio_element_handle_t self, amrwb_encoder_bitrate_t bitrate_mode)

Set AMRWB encoder bitrate.

Return

ESP_OK ESP_FAIL

Parameters
  • self: Audio element handle

  • bitrate_mode: Bitrate choose, value from amrwb_encoder_bitrate_t

audio_element_handle_t amrwb_encoder_init(amrwb_encoder_cfg_t *config)

Create an Audio Element handle to encode incoming amrwb data.

Return

The audio element handle

Parameters
  • config: The configuration

Structures

struct amrwb_encoder_cfg_t

AMRWB Encoder configurations.

Public Members

int out_rb_size

Size of output ringbuffer

int task_stack

Task stack size

int task_core

Task running in core (0 or 1)

int task_prio

Task priority (based on freeRTOS priority)

amrwb_encoder_bitrate_t bitrate_mode

AMRWB Encoder bitrate choose

bool contain_amrwb_header

Choose to contain amrwb header in amrwb encoder whether or not (true or false, true means choose to contain amrwb header)

bool stack_in_ext

Try to allocate stack in external memory

Macros

AMRWB_ENCODER_TASK_STACK
AMRWB_ENCODER_TASK_CORE
AMRWB_ENCODER_TASK_PRIO
AMRWB_ENCODER_RINGBUFFER_SIZE
DEFAULT_AMRWB_ENCODER_CONFIG()

Enumerations

enum amrwb_encoder_bitrate_t

Enum of AMRWB Encoder bitrate choose.

Values:

AMRWB_ENC_BITRATE_MDNONE = -1

Invalid mode

AMRWB_ENC_BITRATE_MD66 = 0

6.60kbps

AMRWB_ENC_BITRATE_MD885 = 1

8.85kbps

AMRWB_ENC_BITRATE_MD1265 = 2

12.65kbps

AMRWB_ENC_BITRATE_MD1425 = 3

14.25kbps

AMRWB_ENC_BITRATE_MD1585 = 4

15.85bps

AMRWB_ENC_BITRATE_MD1825 = 5

18.25bps

AMRWB_ENC_BITRATE_MD1985 = 6

19.85kbps

AMRWB_ENC_BITRATE_MD2305 = 7

23.05kbps

AMRWB_ENC_BITRATE_MD2385 = 8

23.85kbps>

AMRWB_ENC_BITRATE_N_MODES = 9

Invalid mode