aboutsummaryrefslogtreecommitdiff
path: root/Src/replicant/nsmp3dec/mp3streaminfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/replicant/nsmp3dec/mp3streaminfo.h')
-rw-r--r--Src/replicant/nsmp3dec/mp3streaminfo.h117
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