aboutsummaryrefslogtreecommitdiff
path: root/Src/replicant/nsmp3dec/mp2decode.h
blob: d918330b2bbb968da47e2779f90f2971731ef8bd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#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