Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

Codec Namespace Reference

Simply supports a decoding variety of sample encodings. More...


Compounds

class  Codec::ALawDecoder
class  Codec::Codex
class  Codec::FibonacciDecoder
class  Codec::MuLawDecoder

Functions

bool DecodeMuLaw (const unsigned char* src, signed short*& dest, unsigned long length)
bool DecodeALaw (const unsigned char* src, signed short*& dest, unsigned long length)
bool DecodeFibonacciDPCM (const unsigned char* src, unsigned char*& dest, unsigned long length)
bool DecodeExponentialDPCM (const unsigned char* src, unsigned char*& dest, unsigned long length)
long DecodeAdpcmSample (unsigned char adpcm, long& previous, int step_table_index)
 Decode Adaptive Differential Pulse Code Modulation. More...

unsigned char EncodeAdpcmSample (unsigned char sample, long& previous, int& step_table_index)
bool DecodeIT8bitSamples (const unsigned char* src, unsigned long srclen, unsigned char*& dest, unsigned long destlen, bool it215=false)
bool DecodeIT16bitSamples (const short* src, short*& dest, unsigned long length)
unsigned long Convert32 (unsigned long x)
unsigned short Convert16 (unsigned short x)
unsigned short LE16 (unsigned short x)
 Convert an unsigned short to little endian.

unsigned long LE32 (unsigned long x)
 Convert an unsigned long to little endian.

unsigned short BE16 (unsigned short x)
 Convert an unsigned short to big endian.

unsigned long BE32 (unsigned long x)
 Convert an unsigned long to big endian.

unsigned short Little (unsigned short& x)
signed short Little (signed short& x)
unsigned long Little (unsigned long& x)
signed long Little (signed long& x)
unsigned short Big (unsigned short& x)
signed short Big (signed short& x)
unsigned long Big (unsigned long& x)
signed long Big (signed long& x)


Detailed Description

Simply supports a decoding variety of sample encodings.

It also has some code for dealing with endianism.

Convert these to functors? -- Problem: some encodings encode from/to 4 bit values. This doesn't quite gel with functors.


Function Documentation

long Codec::DecodeAdpcmSample ( unsigned char adpcm,
long & previous,
int step_table_index )
 

Decode Adaptive Differential Pulse Code Modulation.

Compressed Samples are stored in four bits. Take the value of the stored sample, multiply it by the current step size and add it to the previous sample and you have the uncompressed value of the sample.

The delta is the difference between the last sample and the current one.

The step size is not stored directly instead 88 possible values are stored in a table.


Generated at Mon Nov 27 01:47:22 2000 for LibPenguinPlay by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000