63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
|
/* $Header: /cvs/root/winamp/vlb/stereo.h,v 1.1 2009/04/28 20:21:10 audiodsp Exp $ */
|
||
|
|
||
|
/***************************************************************************\
|
||
|
*
|
||
|
* Copyright 2000-2002 Dolby Laboratories, Inc. All Rights
|
||
|
* Reserved. Do not copy. Do not distribute.
|
||
|
* Confidential information.
|
||
|
*
|
||
|
* (C) copyright Fraunhofer - IIS (1998)
|
||
|
* All Rights Reserved
|
||
|
*
|
||
|
* filename: stereo.h
|
||
|
* project : MPEG-2 AAC Decoder
|
||
|
* contents/description: mid/side and intensity stereo processing
|
||
|
*
|
||
|
\***************************************************************************/
|
||
|
|
||
|
#ifndef __STEREO_H__
|
||
|
#define __STEREO_H__
|
||
|
|
||
|
#include "bitsequence.h"
|
||
|
|
||
|
class CChannelInfo ;
|
||
|
class CBlock ;
|
||
|
|
||
|
/** Joint Stereo Processing.
|
||
|
|
||
|
This class represents the stereo processing tool for decoding mid/side and
|
||
|
intensity coded bands of spectral coefficients.
|
||
|
|
||
|
The Stereo Processing tool is not profile-dependent and the CJointStereo
|
||
|
implementation follows the Read()/Apply() convention used for all tools
|
||
|
as far as applicable.
|
||
|
*/
|
||
|
|
||
|
class CJointStereo
|
||
|
{
|
||
|
public :
|
||
|
|
||
|
CJointStereo () ;
|
||
|
~CJointStereo () ;
|
||
|
|
||
|
void Read (const CChannelInfo &info, CDolbyBitStream &bs) ;
|
||
|
|
||
|
void ApplyMS (const CChannelInfo &info, CBlock &left, CBlock &right) ;
|
||
|
void ApplyIS (const CChannelInfo &info, CBlock &left, CBlock &right) ;
|
||
|
|
||
|
protected :
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
MaximumGroups = 8,
|
||
|
MaximumBands = 64
|
||
|
} ;
|
||
|
|
||
|
bool m_MsUsed [CJointStereo::MaximumGroups][CJointStereo::MaximumBands] ;
|
||
|
|
||
|
CVLBBitSequence m_MsMaskPresent ;
|
||
|
|
||
|
} ;
|
||
|
|
||
|
#endif
|