1 #ifndef TAG_PARSER_MP3FRAMEAUDIOSTREAM_H 2 #define TAG_PARSER_MP3FRAMEAUDIOSTREAM_H 6 #include <c++utilities/conversion/types.h> 41 void parseHeader(IoUtilities::BinaryReader &reader);
44 double mpegVersion()
const;
46 bool isProtectedByCrc()
const;
48 uint32 samplingFrequency()
const;
49 uint32 paddingSize()
const;
51 bool hasCopyright()
const;
52 bool isOriginal()
const;
53 uint32 sampleCount()
const;
55 bool isXingHeaderAvailable()
const;
57 bool isXingFramefieldPresent()
const;
58 bool isXingBytesfieldPresent()
const;
59 bool isXingTocFieldPresent()
const;
60 bool isXingQualityIndicatorFieldPresent()
const;
61 uint32 xingFrameCount()
const;
62 uint32 xingBytesfield()
const;
63 uint32 xingQualityIndicator()
const;
66 static const uint64 m_xingHeaderOffset;
67 static const int m_bitrateTable[0x2][0x3][0xF];
68 static const uint32 m_sync;
72 uint32 m_xingFramefield;
73 uint32 m_xingBytesfield;
74 uint32 m_xingQualityIndicator;
86 , m_xingQualityIndicator(0)
95 return (m_header & m_sync) == m_sync;
103 return (m_header & 0x10000u) != 0x10000u;
112 return m_bitrateTable[
mpegVersion() == 1.0 ? 0 : 1][
layer() - 1][(m_header & 0xf000u) >> 12];
123 return (m_header & 0x60000u) == 0x60000u ? 4u : 1u * (m_header & 0x200u);
134 return (m_header & 0x8u) == 0x8u;
142 return (m_header & 0x4u) == 0x4u;
147 return static_cast<XingHeaderFlags>(
static_cast<int>(lhs) | static_cast<int>(rhs));
152 return static_cast<XingHeaderFlags>(
static_cast<int>(lhs) & static_cast<int>(rhs));
160 return ((m_xingHeader & 0x58696e6700000000uL) == 0x58696e6700000000uL) || ((m_xingHeader & 0x496e666f00000000uL) == 0x496e666f00000000uL);
168 return m_xingHeaderFlags;
208 return m_xingFramefield;
216 return m_xingBytesfield;
224 return m_xingQualityIndicator;
229 #endif // TAG_PARSER_MP3FRAMEAUDIOSTREAM_H XingHeaderFlags xingHeaderFlags() const
Returns the Xing header flags.
MpegChannelMode
Specifies the channel mode.
double mpegVersion() const
Returns the MPEG version if known (1.0, 2.0 or 2.5); otherwise returns 0.
TAG_PARSER_EXPORT const char * bitrate()
The track's bit rate in bits per second.
bool isProtectedByCrc() const
Returns an indication whether the frame is protected by CRC.
bool isXingHeaderAvailable() const
Returns an indication whether a Xing header is present.
bool isXingBytesfieldPresent() const
Returns an indication whether the Xing bytes field is present.
MpegAudioFrame()
Constructs a new frame.
uint32 paddingSize() const
Returns the padding size if known; otherwise returns 0.
int layer() const
Returns the MPEG layer if known (1, 2, or 3); otherwise returns 0.
Contains utility classes helping to read and write streams.
bool isXingFramefieldPresent() const
Returns an indication whether the Xing frame field is present.
uint32 xingBytesfield() const
Returns the Xing bytes field if known; otherwise returns 0.
uint32 xingQualityIndicator() const
Returns the Xing quality indicator if known; otherwise returns 0.
TAG_PARSER_EXPORT const char * mpegChannelModeString(MpegChannelMode channelMode)
Returns the string representation for the specified channelMode.
bool isXingTocFieldPresent() const
Returns an indication whether the Xing TOC is present.
XingHeaderFlags operator|(XingHeaderFlags lhs, XingHeaderFlags rhs)
bool isOriginal() const
Returns an indication whether the frame labeled as original.
bool isXingQualityIndicatorFieldPresent() const
Returns an indication whether the Xing quality indicator field is present.
XingHeaderFlags operator &(XingHeaderFlags lhs, XingHeaderFlags rhs)
bool isValid() const
Returns an indication whether the frame is valid.
uint32 xingFrameCount() const
Returns an indication whether the Xing frame count is present.
bool hasCopyright() const
Returns an indication whether the frame is copyrighted.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
uint32 bitrate() const
Returns the bitrate of the frame if known; otherwise returns 0.