mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-09-24 15:54:12 +00:00
117 lines
4 KiB
C++
117 lines
4 KiB
C++
/***************************************************************************\
|
|
*
|
|
* 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
|