mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-09-24 15:54:12 +00:00
51 lines
1.1 KiB
C
51 lines
1.1 KiB
C
|
#ifndef __MP2DECODE_H__
|
||
|
#define __MP2DECODE_H__
|
||
|
|
||
|
/* ------------------------ includes --------------------------------------*/
|
||
|
|
||
|
#include "mpeg.h"
|
||
|
#include "mpegbitstream.h"
|
||
|
#include "polyphase.h"
|
||
|
|
||
|
/*-------------------------------------------------------------------------*/
|
||
|
|
||
|
//
|
||
|
// MPEG Layer-2 decoding class.
|
||
|
//
|
||
|
// This is the main MPEG Layer-2 decoder object.
|
||
|
//
|
||
|
|
||
|
class CMp2Decode
|
||
|
{
|
||
|
public:
|
||
|
CMp2Decode(CMpegBitStream &_Bs, DecoderHooks *_hooks=0);
|
||
|
~CMp2Decode();
|
||
|
|
||
|
void Init(bool fFullReset = true);
|
||
|
|
||
|
SSC Decode(void *pPcm, size_t cbPcm, size_t *pcbUsed);
|
||
|
|
||
|
private:
|
||
|
SSC Decode2(void *pPcm);
|
||
|
SSC Decode1(void *pPcm);
|
||
|
|
||
|
void ZeroPolySpectrum();
|
||
|
void SetInfo();
|
||
|
|
||
|
CPolyphase m_Polyphase; // polyphase
|
||
|
|
||
|
MPEG_INFO m_Info; // info structure
|
||
|
CMpegBitStream &m_Bs; // bitstream
|
||
|
|
||
|
POLYSPECTRUM m_PolySpectrum; // spectrum (post-mdct)
|
||
|
|
||
|
char m_tab_3[32 * 3];
|
||
|
char m_tab_5[128 * 3];
|
||
|
char m_tab_9[1024 * 3];
|
||
|
float m_scales[27][64];
|
||
|
DecoderHooks *hooks;
|
||
|
};
|
||
|
|
||
|
/*-------------------------------------------------------------------------*/
|
||
|
#endif
|