 |
RSeries astromech firmware
|
|
Go to the documentation of this file.
3 #pragma GCC optimize ("O3")
8 static const uint8_t m_HUFF_PAIRTABS =32;
9 static const uint8_t m_BLOCK_SIZE =18;
10 static const uint8_t m_NBANDS =32;
11 static const uint8_t m_MAX_REORDER_SAMPS =(192-126)*3;
12 static const uint16_t m_VBUF_LENGTH =17*2* m_NBANDS;
13 static const uint8_t m_MAX_SCFBD =4;
14 static const uint16_t m_MAINBUF_SIZE =1940;
15 static const uint8_t m_MAX_NGRAN =2;
16 static const uint8_t m_MAX_NCHAN =2;
17 static const uint16_t m_MAX_NSAMP =576;
106 int scfsi[m_MAX_NCHAN][m_MAX_SCFBD];
142 int outBuf[m_MAX_NCHAN][m_BLOCK_SIZE][m_NBANDS];
177 int vbuf[m_MAX_NCHAN * m_VBUF_LENGTH];
223 const int c6[3] = { 0x7ba3751d, 0x5a82799a, 0x2120fb83 };
228 const uint32_t
c18[9] = { 0x7f834ed0, 0x7ba3751d, 0x7401e4c1, 0x68d9f964, 0x5a82799a, 0x496af3e2, 0x36185aee, 0x2120fb83, 0x0b27eb5c};
231 const char m_SFLenTab[16][2] = { {0, 0}, {0, 1}, {0, 2}, {0, 3}, {3, 0}, {1, 1}, {1, 2}, {1, 3},
232 {2, 1}, {2, 2}, {2, 3}, {3, 1}, {3, 2}, {3, 3}, {4, 2}, {4, 3}};
245 {{ 6, 5, 5, 5}, {3, 3, 3, 3}, {6, 3, 3, 3}},
246 {{ 6, 5, 7, 3}, {3, 3, 4, 2}, {6, 3, 4, 2}},
247 {{11, 10, 0, 0}, {6, 6, 0, 0}, {6, 3, 6, 0}},
248 {{ 7, 7, 7, 0}, {4, 4, 4, 0}, {6, 5, 4, 0}},
249 {{ 6, 6, 6, 3}, {4, 3, 3, 2}, {6, 4, 3, 2}},
250 {{ 8, 8, 5, 0}, {5, 4, 3, 0}, {6, 6, 3, 0}}
256 const char preTab[22] = { 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0 };
260 0x7fffffff, 0x6ba27e65, 0x5a82799a, 0x4c1bf829
272 const unsigned int poly43lo[5]
PROGMEM = { 0x29a0bda9, 0xb02e4828, 0x5957aa1b, 0x236c498d, 0xff581859 };
273 const unsigned int poly43hi[5]
PROGMEM = { 0x10852163, 0xd333f6a4, 0x46e9408b, 0x27c2cef0, 0xfef577b4 };
276 const int pow2exp[8]
PROGMEM = { 14, 13, 11, 10, 9, 7, 6, 5 };
278 const int pow2frac[8]
PROGMEM = {
279 0x6597fa94, 0x50a28be6, 0x7fffffff, 0x6597fa94,
280 0x50a28be6, 0x7fffffff, 0x6597fa94, 0x50a28be6
299 const int huffTabOffset[m_HUFF_PAIRTABS]
PROGMEM = {
345 const int quadTabOffset[2]
PROGMEM = {0, 64};
346 const int quadTabMaxBits[2]
PROGMEM = {6, 4};
351 const int samplerateTab[3][3]
PROGMEM = {
352 { 44100, 48000, 32000 },
353 { 22050, 24000, 16000 },
354 { 11025, 12000, 8000 },
362 const intsamplesPerFrameTab[3][3]
PROGMEM = { { 384, 1152, 1152 },
373 const intsideBytesTab[3][2]
PROGMEM = { { 17, 32 },
384 { {0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576 },
385 {0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192} },
386 { {0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576 },
387 {0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192} },
388 { {0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576 },
389 {0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192} } },
391 { {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576 },
392 {0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192} },
393 { {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464, 540, 576 },
394 {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192} },
395 { {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576 },
396 {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192} }, },
398 { {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576 },
399 {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192 } },
400 { {0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576 },
401 {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192 } },
402 { {0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570, 572, 574, 576 },
403 {0, 8, 16, 24, 36, 52, 72, 96, 124, 160, 162, 164, 166, 192 } }, },
412 const int ISFIIP[2][2]
PROGMEM = {
413 {0x40000000, 0x00000000},
414 {0x40000000, 0x40000000},
417 const unsigned char uniqueIDTab[8] = {0x5f, 0x4b, 0x43, 0x5f, 0x5f, 0x4a, 0x52, 0x5f};
423 const uint32_t csa[8][2]
PROGMEM = {
424 {0x6dc253f0, 0xbe2500aa},
425 {0x70dcebe4, 0xc39e4949},
426 {0x798d6e73, 0xd7e33f4a},
427 {0x7ddd40a7, 0xe8b71176},
428 {0x7f6d20b7, 0xf3e4fe2f},
429 {0x7fe47e40, 0xfac1a3c7},
430 {0x7ffcb263, 0xfe2ebdc6},
431 {0x7fffc694, 0xff86c25d},
461 int MP3Decode(
unsigned char *inbuf,
int *bytesLeft,
short *outbuf,
int useSize);
474 void PolyphaseMono(
short *pcm,
int *vbuf,
const uint32_t *coefBase);
480 void MidSideProc(
int x[m_MAX_NCHAN][m_MAX_NSAMP],
int nSamps,
int mOut[2]);
483 void FDCT32(
int *x,
int *d,
int offset,
int oddBlock,
int gb);
488 int DecodeHuffman(
unsigned char *buf,
int *bitOffset,
int huffBlockBits,
int gr,
int ch);
490 int IMDCT(
int gr,
int ch);
491 int UnpackScaleFactors(
unsigned char *buf,
int *bitOffset,
int bitsAvail,
int gr,
int ch);
497 int MP3FindFreeSync(
unsigned char *buf,
unsigned char firstFH[4],
int nBytes);
499 int DecodeHuffmanPairs(
int *xy,
int nVals,
int tabIdx,
int bitsLeft,
unsigned char *buf,
int bitOffset);
500 int DecodeHuffmanQuads(
int *vwxy,
int nVals,
int tabIdx,
int bitsLeft,
unsigned char *buf,
int bitOffset);
501 int DequantBlock(
int *inbuf,
int *outbuf,
int num,
int scale);
503 void WinPrevious(
int *xPrev,
int *xPrevWin,
int btPrev);
506 int IMDCT36(
int *xCurr,
int *xPrev,
int *y,
int btCurr,
int btPrev,
int blockIdx,
int gb);
507 void imdct12(
int *x,
int *out);
508 int IMDCT12x3(
int *xCurr,
int *xPrev,
int *y,
int btPrev,
int blockIdx,
int gb);
510 inline uint64_t
SAR64(uint64_t x,
int n) {
return x >> n;}
511 inline int MULSHIFT32(
int x,
int y) {
int z; z = (uint64_t) x * (uint64_t) y >> 32;
return z;}
512 inline uint64_t
MADD64(uint64_t sum64,
int x,
int y) {sum64 += (uint64_t) x * (uint64_t) y;
return sum64;}
513 inline int CLZ(
int x){
int numZeros;
if (!x)
return(
sizeof(
int) * 8); numZeros = 0;
while (!(x & 0x80000000)){numZeros++; x <<= 1;}
return numZeros;}
514 inline uint64_t
xSAR64(uint64_t x,
int n){
return x >> n;}
515 inline int FASTABS(
int x){
int sign; sign=x>>(
sizeof(int)*8-1); x^=sign; x-=sign;
return x;}
struct SubbandInfo SubbandInfo_t
int samprate
Definition: mp3_decoder.h:40
struct FrameHeader FrameHeader_t
const short bitsPerSlotTab[3]
Definition: mp3_decoder.h:368
int workBuf[m_MAX_REORDER_SAMPS]
Definition: mp3_decoder.h:117
@ ERR_MP3_INVALID_SUBBAND
Definition: mp3_decoder.h:32
int nGrans
Definition: mp3_decoder.h:191
int sfactScale
Definition: mp3_decoder.h:99
int samprate
Definition: mp3_decoder.h:190
void MP3ClearBadFrame(short *outbuf)
int part23Length[m_MAX_NGRAN][m_MAX_NCHAN]
Definition: mp3_decoder.h:198
int FASTABS(int x)
Definition: mp3_decoder.h:515
struct SideInfoSub SideInfoSub_t
struct ScaleFactorJS ScaleFactorJS_t
int HybridTransform(int *xCurr, int *xPrev, int y[m_BLOCK_SIZE][m_NBANDS], SideInfoSub_t *sis, BlockCount_t *bc)
void MP3GetLastFrameInfo()
struct BitStreamInfo BitStreamInfo_t
int nChans
Definition: mp3_decoder.h:189
Definition: mp3_decoder.h:150
int cbEndL
Definition: mp3_decoder.h:113
@ ERR_MP3_INVALID_FRAMEHEADER
Definition: mp3_decoder.h:26
struct ScaleFactorInfoSub ScaleFactorInfoSub_t
uint64_t SAR64(uint64_t x, int n)
Definition: mp3_decoder.h:510
int UnpackScaleFactors(unsigned char *buf, int *bitOffset, int bitsAvail, int gr, int ch)
int currWinSwitch
Definition: mp3_decoder.h:156
int nBlocksPrev
Definition: mp3_decoder.h:153
@ Mono
Definition: mp3_decoder.h:63
int gb[m_MAX_NCHAN]
Definition: mp3_decoder.h:123
Definition: mp3_decoder.h:86
Definition: mp3_decoder.h:116
@ noBits
Definition: mp3_decoder.h:127
int bitrate
Definition: mp3_decoder.h:188
enum HuffTabType HuffTabType_t
int linBits
Definition: mp3_decoder.h:137
uint64_t MADD64(uint64_t sum64, int x, int y)
Definition: mp3_decoder.h:512
void RefillBitstreamCache(BitStreamInfo_t *bsi)
@ Stereo
Definition: mp3_decoder.h:60
int intensityScale
Definition: mp3_decoder.h:167
@ ERR_UNKNOWN
Definition: mp3_decoder.h:34
const int c9_2
Definition: mp3_decoder.h:216
const unsigned char uniqueIDTab[8]
Definition: mp3_decoder.h:417
Definition: mp3_decoder.h:52
int DecodeHuffmanPairs(int *xy, int nVals, int tabIdx, int bitsLeft, unsigned char *buf, int bitOffset)
int MP3FindSyncWord(unsigned char *buf, int nBytes)
int overBuf[m_MAX_NCHAN][m_MAX_NSAMP/2]
Definition: mp3_decoder.h:143
int subBlockGain[3]
Definition: mp3_decoder.h:95
int prevWinSwitch
Definition: mp3_decoder.h:155
Definition: mp3_decoder.h:181
Definition: mp3_decoder.h:141
int gbOut
Definition: mp3_decoder.h:158
@ loopLinbits
Definition: mp3_decoder.h:130
const uint16_t m_HUFF_OFFSET_08
Definition: mp3_decoder.h:289
bool MP3Decoder_AllocateBuffers(void)
@ Joint
Definition: mp3_decoder.h:61
int slen[4]
Definition: mp3_decoder.h:168
const int c9_4
Definition: mp3_decoder.h:218
int huffDecBuf[m_MAX_NCHAN][m_MAX_NSAMP]
Definition: mp3_decoder.h:121
Definition: mp3_decoder.h:166
const uint16_t m_HUFF_OFFSET_06
Definition: mp3_decoder.h:287
int blockType
Definition: mp3_decoder.h:92
@ ERR_MP3_OUT_OF_MEMORY
Definition: mp3_decoder.h:24
void PolyphaseMono(short *pcm, int *vbuf, const uint32_t *coefBase)
int mixedBlock
Definition: mp3_decoder.h:93
uint64_t xSAR64(uint64_t x, int n)
Definition: mp3_decoder.h:514
int CalcBitsUsed(BitStreamInfo_t *bsi, unsigned char *startBuf, int startOffset)
int outBuf[m_MAX_NCHAN][m_BLOCK_SIZE][m_NBANDS]
Definition: mp3_decoder.h:142
void UnpackSFMPEG2(BitStreamInfo_t *bsi, SideInfoSub_t *sis, ScaleFactorInfoSub_t *sfis, int gr, int ch, int modeExt, ScaleFactorJS_t *sfjs)
int layer
Definition: mp3_decoder.h:194
int prevWinSwitch[m_MAX_NCHAN]
Definition: mp3_decoder.h:146
void IntensityProcMPEG1(int x[m_MAX_NCHAN][m_MAX_NSAMP], int nSamps, ScaleFactorInfoSub_t *sfis, CriticalBandInfo_t *cbi, int midSideFlag, int mixFlag, int mOut[2])
struct SideInfo SideInfo_t
const char NRTab[6][3][4]
Definition: mp3_decoder.h:244
Definition: mp3_decoder.h:47
int part23Length
Definition: mp3_decoder.h:87
int MP3Dequantize(int gr)
void AntiAlias(int *x, int nBfly)
int IMDCT(int gr, int ch)
@ quadB
Definition: mp3_decoder.h:132
int nBytes
Definition: mp3_decoder.h:56
struct HuffTabLookup HuffTabLookup_t
int MULSHIFT32(int x, int y)
Definition: mp3_decoder.h:511
const uint16_t m_HUFF_OFFSET_12
Definition: mp3_decoder.h:293
Definition: mp3_decoder.h:161
int DecodeHuffmanQuads(int *vwxy, int nVals, int tabIdx, int bitsLeft, unsigned char *buf, int bitOffset)
@ ERR_MP3_INVALID_IMDCT
Definition: mp3_decoder.h:31
struct MP3FrameInfo MP3FrameInfo_t
int winSwitchFlag
Definition: mp3_decoder.h:91
const uint16_t m_HUFF_OFFSET_13
Definition: mp3_decoder.h:294
const int c9_3
Definition: mp3_decoder.h:217
const uint16_t m_HUFF_OFFSET_07
Definition: mp3_decoder.h:288
int nSlots
Definition: mp3_decoder.h:193
@ ERR_MP3_NULL_POINTER
Definition: mp3_decoder.h:25
void imdct12(int *x, int *out)
int cachedBits
Definition: mp3_decoder.h:55
MPEGVersion_t
Definition: mp3_decoder.h:66
@ ERR_MP3_INVALID_HUFFCODES
Definition: mp3_decoder.h:29
@ invalidTab
Definition: mp3_decoder.h:133
const uint16_t m_HUFF_OFFSET_01
Definition: mp3_decoder.h:283
int vbuf[m_MAX_NCHAN *m_VBUF_LENGTH]
Definition: mp3_decoder.h:177
const uint16_t m_HUFF_OFFSET_16
Definition: mp3_decoder.h:296
@ oneShot
Definition: mp3_decoder.h:128
@ Dual
Definition: mp3_decoder.h:62
const uint16_t m_HUFF_OFFSET_05
Definition: mp3_decoder.h:286
void SetBitstreamPointer(BitStreamInfo_t *bsi, int nBytes, unsigned char *buf)
int IMDCT36(int *xCurr, int *xPrev, int *y, int btCurr, int btPrev, int blockIdx, int gb)
Definition: mp3_decoder.h:120
int privateBits
Definition: mp3_decoder.h:105
const uint16_t m_HUFF_OFFSET_03
Definition: mp3_decoder.h:285
const int c3_0
Definition: mp3_decoder.h:222
int vindex
Definition: mp3_decoder.h:178
const uint16_t m_HUFF_OFFSET_02
Definition: mp3_decoder.h:284
int l[23]
Definition: mp3_decoder.h:48
int cbEndSMax
Definition: mp3_decoder.h:112
struct IMDCTInfo IMDCTInfo_t
int IMDCT12x3(int *xCurr, int *xPrev, int *y, int btPrev, int blockIdx, int gb)
int FreqInvertRescale(int *y, int *xPrev, int blockIdx, int es)
const uint16_t m_HUFF_OFFSET_15
Definition: mp3_decoder.h:295
int nGranSamps
Definition: mp3_decoder.h:192
@ ERR_MP3_INVALID_SIDEINFO
Definition: mp3_decoder.h:27
void MP3Decoder_FreeBuffers()
void IntensityProcMPEG2(int x[m_MAX_NCHAN][m_MAX_NSAMP], int nSamps, ScaleFactorInfoSub_t *sfis, CriticalBandInfo_t *cbi, ScaleFactorJS_t *sfjs, int midSideFlag, int mixFlag, int mOut[2])
@ ERR_MP3_INVALID_DEQUANTIZE
Definition: mp3_decoder.h:30
int region0Count
Definition: mp3_decoder.h:96
const int c9_0
Definition: mp3_decoder.h:214
int count1TableSelect
Definition: mp3_decoder.h:100
int tabType
Definition: mp3_decoder.h:138
const int c9_1
Definition: mp3_decoder.h:215
char l[23]
Definition: mp3_decoder.h:162
void UnpackSFMPEG1(BitStreamInfo_t *bsi, SideInfoSub_t *sis, ScaleFactorInfoSub_t *sfis, int *scfsi, int gr, ScaleFactorInfoSub_t *sfisGr0)
StereoMode_t
Definition: mp3_decoder.h:59
HuffTabType
Definition: mp3_decoder.h:126
int mainDataBytes
Definition: mp3_decoder.h:197
int nChans
Definition: mp3_decoder.h:39
int UnpackFrameHeader(unsigned char *buf)
int freeBitrateFlag
Definition: mp3_decoder.h:185
char s[13][3]
Definition: mp3_decoder.h:163
int MP3GetNextFrameInfo(unsigned char *buf)
int prevType
Definition: mp3_decoder.h:154
int MP3GetBitsPerSample()
int preFlag
Definition: mp3_decoder.h:98
int nonZeroBound[m_MAX_NCHAN]
Definition: mp3_decoder.h:122
int bitsPerSample
Definition: mp3_decoder.h:41
int outputSamps
Definition: mp3_decoder.h:42
int CLZ(int x)
Definition: mp3_decoder.h:513
const uint16_t m_HUFF_OFFSET_11
Definition: mp3_decoder.h:292
short ClipToShort(int x, int fracBits)
int prevType[m_MAX_NCHAN]
Definition: mp3_decoder.h:145
@ loopNoLinbits
Definition: mp3_decoder.h:129
void FDCT32(int *x, int *d, int offset, int oddBlock, int gb)
const uint32_t c18[9]
Definition: mp3_decoder.h:228
int DecodeHuffman(unsigned char *buf, int *bitOffset, int huffBlockBits, int gr, int ch)
const char m_SFLenTab[16][2]
Definition: mp3_decoder.h:231
@ ERR_MP3_FREE_BITRATE_SYNC
Definition: mp3_decoder.h:23
Definition: mp3_decoder.h:37
int bitrate
Definition: mp3_decoder.h:38
int tableSelect[3]
Definition: mp3_decoder.h:94
int layer
Definition: mp3_decoder.h:43
unsigned int GetBits(BitStreamInfo_t *bsi, int nBits)
const uint16_t m_HUFF_OFFSET_09
Definition: mp3_decoder.h:290
int mainDataBegin
Definition: mp3_decoder.h:196
const int c6[3]
Definition: mp3_decoder.h:223
int numPrevIMDCT[m_MAX_NCHAN]
Definition: mp3_decoder.h:144
int scfsi[m_MAX_NCHAN][m_MAX_SCFBD]
Definition: mp3_decoder.h:106
void WinPrevious(int *xPrev, int *xPrevWin, int btPrev)
@ ERR_MP3_INVALID_SCALEFACT
Definition: mp3_decoder.h:28
void PolyphaseStereo(short *pcm, int *vbuf, const uint32_t *coefBase)
const uint16_t m_HUFF_OFFSET_24
Definition: mp3_decoder.h:297
struct HuffmanInfo HuffmanInfo_t
Definition: mp3_decoder.h:103
int nr[4]
Definition: mp3_decoder.h:169
int MP3FindFreeSync(unsigned char *buf, unsigned char firstFH[4], int nBytes)
int nBigvals
Definition: mp3_decoder.h:88
struct DequantInfo DequantInfo_t
Definition: mp3_decoder.h:176
@ ERR_MP3_NONE
Definition: mp3_decoder.h:20
int sfCompress
Definition: mp3_decoder.h:90
int gb[m_MAX_NCHAN]
Definition: mp3_decoder.h:147
int nBlocksLong
Definition: mp3_decoder.h:151
void MidSideProc(int x[m_MAX_NCHAN][m_MAX_NSAMP], int nSamps, int mOut[2])
int DequantChannel(int *sampleBuf, int *workBuf, int *nonZeroBound, SideInfoSub_t *sis, ScaleFactorInfoSub_t *sfis, CriticalBandInfo_t *cbi)
struct MP3DecInfo MP3DecInfo_t
int mainDataBegin
Definition: mp3_decoder.h:104
const int pow14[4] PROGMEM
Definition: mp3_decoder.h:259
int s[14]
Definition: mp3_decoder.h:49
@ MPEG25
Definition: mp3_decoder.h:69
int freeBitrateSlots
Definition: mp3_decoder.h:186
@ MPEG2
Definition: mp3_decoder.h:68
@ MPEG1
Definition: mp3_decoder.h:67
const uint16_t m_HUFF_OFFSET_10
Definition: mp3_decoder.h:291
int UnpackSideInfo(unsigned char *buf)
@ quadA
Definition: mp3_decoder.h:131
int gbIn
Definition: mp3_decoder.h:157
int region1Count
Definition: mp3_decoder.h:97
@ ERR_MP3_MAINDATA_UNDERFLOW
Definition: mp3_decoder.h:22
int Subband(short *pcmBuf)
@ ERR_MP3_INDATA_UNDERFLOW
Definition: mp3_decoder.h:21
unsigned char * bytePtr
Definition: mp3_decoder.h:53
struct SFBandTable SFBandTable_t
int cbType
Definition: mp3_decoder.h:110
int globalGain
Definition: mp3_decoder.h:89
const char preTab[22]
Definition: mp3_decoder.h:256
int version
Definition: mp3_decoder.h:44
int MP3Decode(unsigned char *inbuf, int *bytesLeft, short *outbuf, int useSize)
int DequantBlock(int *inbuf, int *outbuf, int num, int scale)
Definition: mp3_decoder.h:109
struct BlockCount BlockCount_t
int nBlocksTotal
Definition: mp3_decoder.h:152
Definition: mp3_decoder.h:136
unsigned int iCache
Definition: mp3_decoder.h:54
void MP3Decoder_ClearBuffer(void)
unsigned char mainBuf[m_MAINBUF_SIZE]
Definition: mp3_decoder.h:183