diff options
Diffstat (limited to 'Src/replicant/nsmp3dec/mp3streaminfo.h')
-rw-r--r-- | Src/replicant/nsmp3dec/mp3streaminfo.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/Src/replicant/nsmp3dec/mp3streaminfo.h b/Src/replicant/nsmp3dec/mp3streaminfo.h new file mode 100644 index 00000000..7c1eefda --- /dev/null +++ b/Src/replicant/nsmp3dec/mp3streaminfo.h @@ -0,0 +1,117 @@ +/***************************************************************************\ + * +* MPEG Layer3-Audio Decoder +* © 1997-2006 by Fraunhofer IIS + * All Rights Reserved + * + * filename: mp3streaminfo.h + * project : MPEG Layer-3 Decoder + * author : Martin Sieler + * date : 1998-05-27 + * contents/description: current bitstream parameters + * +\***************************************************************************/ + +/* + * $Date: 2010/11/17 20:46:04 $ + * $Id: mp3streaminfo.h,v 1.1 2010/11/17 20:46:04 audiodsp Exp $ + */ + +#ifndef __MP3STREAMINFO_H__ +#define __MP3STREAMINFO_H__ + +/* ------------------------ structure alignment ---------------------------*/ + +#ifdef WIN32 + #pragma pack(push, 8) +#endif + +/*-------------------------------------------------------------------------*/ + +typedef struct +{ + int m_Layer; /* ISO/MPEG Layer */ + int m_MpegVersion; /* ISO/MPEG Version */ + int m_Bitrate; /* Bitrate (Bit/s) */ + int m_BitrateIndex; /* ISO/MPEG Bitrate index of frame */ + int m_Channels; /* Number of Channels (as indicated) */ + int m_SFreq; /* Sampling Frequency (as indicated) */ + int m_EffectiveChannels; /* Number of effective output channels */ + int m_EffectiveSFreq; /* Effective Sampling Frequency */ + int m_BitsPerFrame; /* Number of bits in frame */ + float m_Duration; /* Duration of frame in milli seconds */ + int m_CrcError; /* Indication of CRC Errors */ + int m_NoMainData; /* Indication of missing main data */ + int m_SamplesPerFrame; + } MP3STREAMINFO; + +/*-------------------------------------------------------------------------*/ + +#ifdef __cplusplus + +// +// Mp3 Streaminfo object. +// +// Object holding information on the last successfully decode frame. +// + +class CMp3StreamInfo : protected MP3STREAMINFO +{ +public: + + CMp3StreamInfo() { Reset(); } + + int GetLayer() const { return m_Layer; } + int GetMpegVersion() const { return m_MpegVersion; } + int GetBitrate() const { return m_Bitrate; } + int GetBitrateIndex() const { return m_BitrateIndex; } + int GetChannels() const { return m_Channels; } + int GetSFreq() const { return m_SFreq; } + int GetBitsPerFrame() const { return m_BitsPerFrame; } + float GetDuration() const { return m_Duration; } + int GetCrcError() const { return m_CrcError; } + int GetNoMainData() const { return m_NoMainData; } + int GetSamplesPerFrame() const { return m_SamplesPerFrame; } + +protected: + + friend class CMpgaDecoder; + + void SetLayer(int nValue) { m_Layer = nValue; } + void SetMpegVersion(int nValue) { m_MpegVersion = nValue; } + void SetBitrate(int nValue) { m_Bitrate = nValue; } + void SetBitrateIndex(int nValue) { m_BitrateIndex = nValue; } + void SetChannels(int nValue) { m_Channels = nValue; } + void SetSFreq(int nValue) { m_SFreq = nValue; } + void SetBitsPerFrame(int nValue) { m_BitsPerFrame = nValue; } + void SetDuration(float fValue) { m_Duration = fValue; } + void SetCrcError(int nValue) { m_CrcError = nValue; } + void SetNoMainData(int nValue) { m_NoMainData = nValue; } + void SetSamplesPerFrame(int nValue) { m_SamplesPerFrame = nValue; } + + void Reset() + { + m_Layer = 0; + m_MpegVersion = 0; + m_Bitrate = 0; + m_BitrateIndex = 0; + m_Channels = 0; + m_SFreq = 0; + m_BitsPerFrame = 0; + m_Duration = 0.0f; + m_CrcError = 0; + m_NoMainData = 0; + m_SamplesPerFrame=0; + } +}; + +#endif /* __cplusplus */ + +/*-------------------------------------------------------------------------*/ + +#ifdef WIN32 + #pragma pack(pop) +#endif + +/*-------------------------------------------------------------------------*/ +#endif |