spandsp 0.0.6
oki_adpcm.c File Reference
#include <stdlib.h>
#include <inttypes.h>
#include <string.h>
#include "spandsp/telephony.h"
#include "spandsp/oki_adpcm.h"
#include "spandsp/private/oki_adpcm.h"

Functions

oki_adpcm_state_toki_adpcm_init (oki_adpcm_state_t *s, int bit_rate)
int oki_adpcm_release (oki_adpcm_state_t *s)
int oki_adpcm_free (oki_adpcm_state_t *s)
int oki_adpcm_decode (oki_adpcm_state_t *s, int16_t amp[], const uint8_t oki_data[], int oki_bytes)
int oki_adpcm_encode (oki_adpcm_state_t *s, uint8_t oki_data[], const int16_t amp[], int len)

Function Documentation

◆ oki_adpcm_decode()

int oki_adpcm_decode ( oki_adpcm_state_t * s,
int16_t amp[],
const uint8_t oki_data[],
int oki_bytes )

Decode a buffer of Oki ADPCM data to linear PCM.

Parameters
sThe Oki ADPCM context.
ampThe audio sample buffer.
oki_data
oki_bytes
Returns
The number of samples returned.

References oki_adpcm_state_s::bit_rate, oki_adpcm_state_s::history, oki_adpcm_state_s::phase, and oki_adpcm_state_s::ptr.

◆ oki_adpcm_encode()

int oki_adpcm_encode ( oki_adpcm_state_t * s,
uint8_t oki_data[],
const int16_t amp[],
int len )

Encode a buffer of linear PCM data to Oki ADPCM.

Parameters
sThe Oki ADPCM context.
oki_dataThe Oki ADPCM data produced
ampThe audio sample buffer.
lenThe number of samples in the buffer.
Returns
The number of bytes of Oki ADPCM data produced.

References oki_adpcm_state_s::bit_rate, oki_adpcm_state_s::history, oki_adpcm_state_s::mark, oki_adpcm_state_s::oki_byte, oki_adpcm_state_s::phase, and oki_adpcm_state_s::ptr.

◆ oki_adpcm_free()

int oki_adpcm_free ( oki_adpcm_state_t * s)

Free an Oki ADPCM encode or decode context.

Parameters
sThe Oki ADPCM context.
Returns
0 for OK.

◆ oki_adpcm_init()

oki_adpcm_state_t * oki_adpcm_init ( oki_adpcm_state_t * s,
int bit_rate )

Initialise an Oki ADPCM encode or decode context.

Parameters
sThe Oki ADPCM context.
bit_rateThe required bit rate for the ADPCM data. The valid rates are 24000 and 32000.
Returns
A pointer to the Oki ADPCM context, or NULL for error.

References oki_adpcm_state_s::bit_rate.

◆ oki_adpcm_release()

int oki_adpcm_release ( oki_adpcm_state_t * s)

Release an Oki ADPCM encode or decode context.

Parameters
sThe Oki ADPCM context.
Returns
0 for OK.