winamp/Src/replicant/nsmp3dec/mp2decode.h
2024-09-24 14:54:57 +02:00

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