123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /***************************************************************************\
- *
- * MPEG Layer3-Audio Decoder
- * © 1997-2006 by Fraunhofer IIS
- * All Rights Reserved
- *
- * filename: mpegheader.h
- * project : MPEG Decoder
- * author : Martin Sieler
- * date : 1997-12-05
- * contents/description: ISO/MPEG Header
- *
- *
- \***************************************************************************/
- /*
- * $Date: 2010/11/17 20:46:04 $
- * $Id: mpegheader.h,v 1.1 2010/11/17 20:46:04 audiodsp Exp $
- */
- #ifndef __MPEGHEADER_H__
- #define __MPEGHEADER_H__
- /* ------------------------ includes --------------------------------------*/
- /*-------------------------- defines --------------------------------------*/
- class CBitStream;
- /*-------------------------------------------------------------------------*/
- //
- // MPEG header class.
- //
- // This object reads and decodes an ISO/MPEG header.
- //
- class CMpegHeader
- {
- public:
- CMpegHeader();
- virtual ~CMpegHeader();
- int ReadFrom(CBitStream &sBS);
- int FromInt(unsigned long dwHdrBits);
- int GetMpegVersion() const { return m_MpegVersion;}
- int GetLayer() const { return m_Layer;}
- int GetChannels() const { return m_Channels;}
- int GetSampleRate() const { return m_SampleRate;}
- int GetSampleRateNdx() const { return m_SampleRateNdx;}
- int GetBitrate() const { return m_Bitrate;}
- int GetBitrateNdx() const { return m_BitrateNdx;}
- int GetMode() const { return m_Mode;}
- int GetModeExt() const { return m_ModeExt;}
- int GetPadding() const { return m_Padding; }
- int GetCrcCheck() const { return m_CrcCheck;}
- int GetCopyright() const { return m_Copyright;}
- int GetOriginal() const { return m_Original;}
- int GetEmphasis() const { return m_Emphasis;}
- int GetHeaderLen() const
- { return MPEG_HDRLEN+(m_CrcCheck?MPEG_CRCLEN:0); }
- int GetFrameLen() const { return m_FrameLen;}
- float GetDuration() const { return m_Duration;}
- int GetSamplesPerFrame() const;
- protected:
- private:
- enum { MPEG_HDRLEN = 32, MPEG_CRCLEN = 16 };
- int CalcFrameLen();
- void ResetMembers();
- void SetMembers();
- // header fields
- int m_Syncword;
- int m_Idex;
- int m_Id;
- int m_Layer;
- int m_CrcCheck;
- int m_BitrateNdx;
- int m_SampleRateNdx;
- int m_Padding;
- int m_Private;
- int m_Mode;
- int m_ModeExt;
- int m_Copyright;
- int m_Original;
- int m_Emphasis;
- // calculated data
- int m_HeaderValid;
- int m_MpegVersion;
- int m_Channels;
- int m_SampleRate;
- int m_Bitrate;
- int m_FrameLen;
- float m_Duration;
- };
- /*-------------------------------------------------------------------------*/
- #endif
|