Diffstat (limited to 'core/multimedia/opieplayer/libflash/adpcm.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/libflash/adpcm.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/libflash/adpcm.h b/core/multimedia/opieplayer/libflash/adpcm.h new file mode 100644 index 0000000..5714c0c --- a/dev/null +++ b/core/multimedia/opieplayer/libflash/adpcm.h @@ -0,0 +1,36 @@ +#ifndef _ADPCM_H_ +#define _ADPCM_H_ + +class Adpcm { + + // Destination format - note we always decompress to 16 bit + long stereo; + int nBits; // number of bits in each sample + + long valpred[2]; // Current state + int index[2]; + + long nSamples; // number of samples decompressed so far + + // Parsing Info + unsigned char *src; + long bitBuf; // this should always contain at least 24 bits of data + int bitPos; + + void FillBuffer(); + + long GetBits(int n); + + long GetSBits(int n); + +public: + Adpcm(unsigned char *buffer, long isStereo); + + void Decompress(short * dst, long n); // return number of good samples +#ifdef DUMP + void dump(BitStream *bs); + void Compress(short *pcm, long n, int bits); +#endif +}; + +#endif /* _ADPCM_H_ */ |