winamp/Src/vlb/adif.h
2024-09-24 14:54:57 +02:00

88 lines
1.9 KiB
C++

/* $Header: /cvs/root/winamp/vlb/adif.h,v 1.1 2009/04/28 20:21:07 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: adif.h
* project : MPEG-2 AAC Decoder
* contents/description: audio data interchange format header
*
\***************************************************************************/
#ifndef __ADIF_H__
#define __ADIF_H__
#include "bitsequence.h"
#include "programcfg.h"
#include "exception.h"
class CDolbyBitStream ;
/** Audio Data Interchange Format.
This class is able to read the header information from an ADIF file
and serves as a container for the Program Configuration Elements
\Ref{CProgramConfig} found in the bitstream.
*/
class CAdifHeader
{
public :
CAdifHeader () ;
~CAdifHeader () ;
void Read (CDolbyBitStream &bs) ;
CProgramConfig &GetProgramConfig (int index) ;
unsigned int GetBitRate (void) const
{
return m_BitRate ;
}
unsigned int GetNumProgramConfigElements (void) const
{
return m_NumProgramConfigElements;
}
unsigned int GetOriginalCopy (void) const
{
return m_OriginalCopy;
}
unsigned int GetHome (void) const
{
return m_Home;
}
protected :
enum
{
MaximumPCEs = 16
} ;
CVLBBitSequence m_CopyrightIdPresent ;
CVLBBitSequence m_OriginalCopy ;
CVLBBitSequence m_Home ;
CVLBBitSequence m_BitstreamType ;
CVLBBitSequence m_NumProgramConfigElements ;
CProgramConfig m_ProgramConfigElement [MaximumPCEs] ;
unsigned int m_BitRate ;
DECLARE_EXCEPTION(ENoAdifHeader, AAC_NOTADIFHEADER, "Not Valid ADIF Header") ;
} ;
#endif