g726.c File Reference
`#include <inttypes.h>`
`#include <memory.h>`
`#include <stdlib.h>`
`#include "floating_fudge.h"`
`#include "spandsp/telephony.h"`
`#include "spandsp/dc_restore.h"`
`#include "spandsp/bitstream.h"`
`#include "spandsp/bit_operations.h"`
`#include "spandsp/g711.h"`
`#include "spandsp/g726.h"`
`#include "spandsp/private/bitstream.h"`
`#include "spandsp/private/g726.h"`

## Functions

g726_state_t * | g726_init (g726_state_t *s, int bit_rate, int ext_coding, int packing)
int | g726_release (g726_state_t *s)
int | g726_free (g726_state_t *s)
int | g726_decode (g726_state_t *s, int16_t amp[], const uint8_t g726_data[], int g726_bytes)
int | g726_encode (g726_state_t *s, uint8_t g726_data[], const int16_t amp[], int len)

## Function Documentation

## g726_decode()

int g726_decode | ( | g726_state_t * | s,
|  | int16_t | amp[],
|  | const uint8_t | g726_data[],
|  | int | g726_bytes )

Decode a buffer of G.726 ADPCM data to linear PCM, a-law or u-law.

Parameters

  s | The G.726 context.
  amp | The audio sample buffer.
  g726_data |
  g726_bytes |

Returns
  The number of samples returned.

References g726_state_s::bits_per_sample, bitstream_state_s::bitstream, g726_state_s::bs, g726_state_s::dec_func, g726_state_s::ext_coding, g726_state_s::packing, and bitstream_state_s::residue.

## g726_encode()

int g726_encode | ( | g726_state_t * | s,
|  | uint8_t | g726_data[],
|  | const int16_t | amp[],
|  | int | len )

Encode a buffer of linear PCM data to G.726 ADPCM.

Parameters

  s | The G.726 context.
  g726_data | The G.726 data produced.
  amp | The audio sample buffer.
  len | The number of samples in the buffer.

Returns
  The number of bytes of G.726 data produced.

References g726_state_s::bits_per_sample, bitstream_state_s::bitstream, g726_state_s::bs, g726_state_s::enc_func, g726_state_s::ext_coding, g726_state_s::packing, and bitstream_state_s::residue.

## g726_free()

int g726_free | ( | g726_state_t * | s | ) |

Free a G.726 encode or decode context.

Parameters

  s | The G.726 context.

Returns
  0 for OK.

## g726_init()

g726_state_t * g726_init | ( | g726_state_t * | s,
|  | int | bit_rate,
|  | int | ext_coding,
|  | int | packing )

Initialise a G.726 encode or decode context.

Parameters

  s | The G.726 context.
  bit_rate | The required bit rate for the ADPCM data. The valid rates are 16000, 24000, 32000 and 40000.
  ext_coding | The coding used outside G.726.
  packing | One of the G.726_PACKING_xxx options.

Returns
  A pointer to the G.726 context, or NULL for error.

References g726_state_s::a, g726_state_s::ap, g726_state_s::b, g726_state_s::bits_per_sample, bitstream_init(), g726_state_s::bs, g726_state_s::dec_func, g726_state_s::dml, g726_state_s::dms, g726_state_s::dq, g726_state_s::enc_func, g726_state_s::ext_coding, g726_state_s::packing, g726_state_s::pk, g726_state_s::rate, g726_state_s::sr, g726_state_s::td, g726_state_s::yl, and g726_state_s::yu.

## g726_release()

int g726_release | ( | g726_state_t * | s | ) |

Release a G.726 encode or decode context.

Parameters

  s | The G.726 context.

Returns
  0 for OK.