Encoding and decoding


Functions

CELTModecelt_mode_create (celt_int32_t Fs, int channels, int frame_size, int lookahead, int *error)
void celt_mode_destroy (CELTMode *mode)
int celt_mode_info (const CELTMode *mode, int request, celt_int32_t *value)
CELTEncodercelt_encoder_create (const CELTMode *mode)
void celt_encoder_destroy (CELTEncoder *st)
int celt_encode (CELTEncoder *st, celt_int16_t *pcm, unsigned char *compressed, int nbCompressedBytes)
CELTDecodercelt_decoder_create (const CELTMode *mode)
void celt_decoder_destroy (CELTDecoder *st)
int celt_decode (CELTDecoder *st, unsigned char *data, int len, celt_int16_t *pcm)

Detailed Description


Function Documentation

int celt_decode ( CELTDecoder st,
unsigned char *  data,
int  len,
celt_int16_t *  pcm 
)

Decodes a frame of audio.

Parameters:
st Decoder state
data Compressed data produced by an encoder
len Number of bytes to read from "data". This MUST be exactly the number of bytes returned by the encoder. Using a larger value WILL NOT WORK.
pcm One frame (frame_size samples per channel) of decoded PCM will be returned here.
Returns:
Error code.

CELTDecoder* celt_decoder_create ( const CELTMode mode  ) 

Creates a new decoder state. Each stream needs its own decoder state (can't be shared across simultaneous streams).

Parameters:
mode Contains all the information about the characteristics of the stream (must be the same characteristics as used for the encoder)
Returns:
Newly created decoder state.

void celt_decoder_destroy ( CELTDecoder st  ) 

Destroys a a decoder state.

Parameters:
st Decoder state to be destroyed

int celt_encode ( CELTEncoder st,
celt_int16_t *  pcm,
unsigned char *  compressed,
int  nbCompressedBytes 
)

Encodes a frame of audio.

Parameters:
st Encoder state
pcm PCM audio in signed 16-bit format (native endian). There must be exactly frame_size samples per channel. The input data is overwritten by a copy of what the remote decoder would decode.
compressed The compressed data is written here
nbCompressedBytes Number of bytes to use for compressing the frame (can change from one frame to another)
Returns:
Number of bytes written to "compressed". Should be the same as "nbCompressedBytes" unless the stream is VBR. If negative, an error has occured (see error codes). It is IMPORTANT that the length returned be somehow transmitted to the decoder. Otherwise, no decoding is possible.

CELTEncoder* celt_encoder_create ( const CELTMode mode  ) 

Creates a new encoder state. Each stream needs its own encoder state (can't be shared across simultaneous streams).

Parameters:
mode Contains all the information about the characteristics of the stream (must be the same characteristics as used for the decoder)
Returns:
Newly created encoder state.

void celt_encoder_destroy ( CELTEncoder st  ) 

Destroys a an encoder state.

Parameters:
st Encoder state to be destroyed

CELTMode* celt_mode_create ( celt_int32_t  Fs,
int  channels,
int  frame_size,
int  lookahead,
int *  error 
)

Creates a new mode struct. This will be passed to an encoder or decoder. The mode MUST NOT BE DESTROYED until the encoders and decoders that use it are destroyed as well.

Parameters:
Fs Sampling rate (32000 to 64000 Hz)
channels Number of channels
frame_size Number of samples (per channel) to encode in each packet (64 - 256)
lookahead Extra latency (in samples per channel) in addition to the frame size (between 32 and frame_size). The larger that value, the better the quality (at the expense of latency)
error Returned error code (if NULL, no error will be returned)
Returns:
A newly created mode

void celt_mode_destroy ( CELTMode mode  ) 

Destroys a mode struct. Only call this after all encoders and decoders using this mode are destroyed as well.

Parameters:
mode Mode to be destroyed

int celt_mode_info ( const CELTMode mode,
int  request,
celt_int32_t *  value 
)

Query information from a mode


Generated on Mon May 19 16:11:39 2008 for CELT by  doxygen 1.5.5