62 lines
1.5 KiB
C
62 lines
1.5 KiB
C
|
/***************************************************************************\
|
|||
|
*
|
|||
|
* MPEG Layer3-Audio Decoder
|
|||
|
* <EFBFBD> 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
|