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

Functions

uint8_t alaw_to_ulaw (uint8_t alaw)
 Transcode from A-law to u-law, using the procedure defined in G.711.
uint8_t ulaw_to_alaw (uint8_t ulaw)
 Transcode from u-law to A-law, using the procedure defined in G.711.
int g711_decode (g711_state_t *s, int16_t amp[], const uint8_t g711_data[], int g711_bytes)
 Decode from u-law or A-law to linear.
int g711_encode (g711_state_t *s, uint8_t g711_data[], const int16_t amp[], int len)
 Encode from linear to u-law or A-law.
int g711_transcode (g711_state_t *s, uint8_t g711_out[], const uint8_t g711_in[], int g711_bytes)
 Transcode between u-law and A-law.
g711_state_tg711_init (g711_state_t *s, int mode)
int g711_release (g711_state_t *s)
int g711_free (g711_state_t *s)

Function Documentation

◆ alaw_to_ulaw()

uint8_t alaw_to_ulaw ( uint8_t alaw)

Transcode from A-law to u-law, using the procedure defined in G.711.

Parameters
alawThe A-law sample to transcode.
Returns
The best matching u-law value.

◆ g711_decode()

int g711_decode ( g711_state_t * s,
int16_t amp[],
const uint8_t g711_data[],
int g711_bytes )

Decode from u-law or A-law to linear.

Parameters
sThe G.711 context.
ampThe linear audio buffer.
g711_dataThe G.711 data.
g711_bytesThe number of G.711 samples to decode.
Returns
The number of samples of linear audio produced.

References g711_state_s::mode.

◆ g711_encode()

int g711_encode ( g711_state_t * s,
uint8_t g711_data[],
const int16_t amp[],
int len )

Encode from linear to u-law or A-law.

Parameters
sThe G.711 context.
g711_dataThe G.711 data.
ampThe linear audio buffer.
lenThe number of samples to encode.
Returns
The number of G.711 samples produced.

References g711_state_s::mode.

◆ g711_free()

int g711_free ( g711_state_t * s)

Free a G.711 encode or decode context.

Parameters
sThe G.711 context.
Returns
0 for OK.

◆ g711_init()

g711_state_t * g711_init ( g711_state_t * s,
int mode )

Initialise a G.711 encode or decode context.

Parameters
sThe G.711 context.
modeThe G.711 mode.
Returns
A pointer to the G.711 context, or NULL for error.

References g711_state_s::mode.

◆ g711_release()

int g711_release ( g711_state_t * s)

Release a G.711 encode or decode context.

Parameters
sThe G.711 context.
Returns
0 for OK.

◆ g711_transcode()

int g711_transcode ( g711_state_t * s,
uint8_t g711_out[],
const uint8_t g711_in[],
int g711_bytes )

Transcode between u-law and A-law.

Parameters
sThe G.711 context.
g711_outThe resulting G.711 data.
g711_inThe original G.711 data.
g711_bytesThe number of G.711 samples to transcode.
Returns
The number of G.711 samples produced.

References g711_state_s::mode.

◆ ulaw_to_alaw()

uint8_t ulaw_to_alaw ( uint8_t ulaw)

Transcode from u-law to A-law, using the procedure defined in G.711.

Parameters
ulawThe u-law sample to transcode.
Returns
The best matching A-law value.