mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-11 15:21:00 -05:00
61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
/***************************************************************************\
|
|
*
|
|
* MPEG Layer3-Audio Decoder
|
|
* © 1997-2006 by Fraunhofer IIS
|
|
* All Rights Reserved
|
|
*
|
|
* filename: polyphase.h
|
|
* project : ISO/MPEG-Decoder
|
|
* author : Stefan Gewinner
|
|
* date : 1998-05-26
|
|
* contents/description: polyphase class - HEADER
|
|
*
|
|
*
|
|
\***************************************************************************/
|
|
|
|
/*
|
|
* $Date: 2011/02/14 14:48:56 $
|
|
* $Id: polyphase.h,v 1.6 2011/02/14 14:48:56 bigg Exp $
|
|
*/
|
|
|
|
#pragma once
|
|
//#ifndef __POLYPHASE_H__
|
|
//#define __POLYPHASE_H__
|
|
|
|
/* ------------------------ includes --------------------------------------*/
|
|
|
|
#include "mpeg.h"
|
|
#include "foundation/align.h"
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
#define HAN_SIZE 512
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
// Class for (inverse) Polyphase calculation.
|
|
|
|
class CPolyphase
|
|
{
|
|
|
|
public:
|
|
|
|
CPolyphase(const MPEG_INFO &_info);
|
|
|
|
~CPolyphase() {}
|
|
|
|
void Init();
|
|
float *Apply(POLYSPECTRUM &sample, float *pPcm, int frms=18);
|
|
static void Reorder(int channels, POLYSPECTRUM &output, const SPECTRUM &input);
|
|
protected:
|
|
|
|
int bufOffset;
|
|
NALIGN(16) float syn_buf[2][HAN_SIZE];
|
|
|
|
const MPEG_INFO &info ; // info-structure
|
|
|
|
void window_band_m(int bufOffset, float *out_samples) const;
|
|
void window_band_s(int bufOffset, float *out_samples) const;
|
|
};
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
//#endif
|