1 #ifndef MP3FRAMEAUDIOSTREAM_H 2 #define MP3FRAMEAUDIOSTREAM_H 6 #include <c++utilities/conversion/types.h> 45 void parseHeader(IoUtilities::BinaryReader &reader);
48 double mpegVersion()
const;
50 bool isProtectedByCrc()
const;
52 uint32 samplingFrequency()
const;
53 uint32 paddingSize()
const;
55 bool hasCopyright()
const;
56 bool isOriginal()
const;
57 uint32 sampleCount()
const;
59 bool isXingHeaderAvailable()
const;
61 bool isXingFramefieldPresent()
const;
62 bool isXingBytesfieldPresent()
const;
63 bool isXingTocFieldPresent()
const;
64 bool isXingQualityIndicatorFieldPresent()
const;
65 uint32 xingFrameCount()
const;
66 uint32 xingBytesfield()
const;
67 uint32 xingQualityIndicator()
const;
70 static const uint64 m_xingHeaderOffset;
71 static const int m_bitrateTable[0x2][0x3][0xF];
72 static const uint32 m_sync;
76 uint32 m_xingFramefield;
77 uint32 m_xingBytesfield;
78 uint32 m_xingQualityIndicator;
84 inline MpegAudioFrame::MpegAudioFrame() :
90 m_xingQualityIndicator(0)
98 return (m_header & m_sync) == m_sync;
106 return (m_header & 0x10000u) != 0x10000u;
115 return m_bitrateTable[
mpegVersion() == 1.0 ? 0 : 1][
layer() - 1][(m_header & 0xf000u) >> 12];
126 return (m_header & 0x60000u) == 0x60000u ? 4u : 1u * (m_header & 0x200u);
137 return (m_header & 0x8u) == 0x8u;
145 return (m_header & 0x4u) == 0x4u;
150 return static_cast<XingHeaderFlags>(
static_cast<int>(lhs) | static_cast<int>(rhs));
155 return static_cast<XingHeaderFlags>(
static_cast<int>(lhs) & static_cast<int>(rhs));
164 return ((m_xingHeader & 0x58696e6700000000uL) == 0x58696e6700000000uL) || ((m_xingHeader & 0x496e666f00000000uL) == 0x496e666f00000000uL);
172 return m_xingHeaderFlags;
220 return m_xingFramefield;
228 return m_xingBytesfield;
236 return m_xingQualityIndicator;
241 #endif // MP3FRAMEAUDIOSTREAM_H
Contains utility classes helping to read and write streams.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.