64 lines
1.5 KiB
C++
64 lines
1.5 KiB
C++
/* $Header: /cvs/root/winamp/vlb/bitsequence.h,v 1.1 2009/04/28 20:21:08 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: bitsequence.h
|
|
* project : MPEG-2 AAC Decoder
|
|
* contents/description: bitstream helper object
|
|
*
|
|
\***************************************************************************/
|
|
|
|
#ifndef __VLB_BITSEQUENCE_H__
|
|
#define __VLB_BITSEQUENCE_H__
|
|
|
|
#include "bitstream.h"
|
|
|
|
/** Bitstream Parser Utility.
|
|
|
|
This helper class is basically a numerical value that can read itself from a
|
|
\Ref{CDolbyBitStream} interface for convenience. The decoder almost completely
|
|
does the bitstream parsing through CVLBBitSequence rather than \Ref{CDolbyBitStream} directly.
|
|
*/
|
|
|
|
class CVLBBitSequence
|
|
{
|
|
|
|
public :
|
|
|
|
CVLBBitSequence (const int length = 0) ;
|
|
CVLBBitSequence (const int length, const int value) ;
|
|
|
|
~CVLBBitSequence () ;
|
|
|
|
int Read (CDolbyBitStream& bs, const int length) ;
|
|
|
|
int Read (CDolbyBitStream& bs)
|
|
{
|
|
m_Value = bs.Get (m_Length) ;
|
|
return m_Value ;
|
|
}
|
|
|
|
operator int() const
|
|
{
|
|
return m_Value ;
|
|
}
|
|
|
|
CVLBBitSequence &operator=(int) ;
|
|
CVLBBitSequence &operator+=(int) ;
|
|
|
|
protected :
|
|
|
|
int m_Length ;
|
|
int m_Value ;
|
|
|
|
} ;
|
|
|
|
#endif
|