diff --git a/mpegaudio/mpegaudioframe.cpp b/mpegaudio/mpegaudioframe.cpp index 1869f5e..c7ec3c1 100644 --- a/mpegaudio/mpegaudioframe.cpp +++ b/mpegaudio/mpegaudioframe.cpp @@ -196,12 +196,13 @@ std::uint32_t MpegAudioFrame::sampleCount() const std::uint32_t MpegAudioFrame::size() const { switch (m_header & 0x60000u) { - case 0x60000u: + case 0x60000u: // layer 1 return static_cast( - ((static_cast(bitrate()) * 1024.0 / 8.0) / static_cast(samplingFrequency())) * static_cast(sampleCount()) - + static_cast(paddingSize())); - case 0x40000u: - case 0x20000u: + ((static_cast(bitrate()) * 1024.0 / 8.0) / static_cast(samplingFrequency())) * static_cast(sampleCount()) + + static_cast(paddingSize())) + * 4; + case 0x40000u: // layer 2 + case 0x20000u: // layer 3 return static_cast( ((static_cast(bitrate()) * 1024.0 / 8.0) / static_cast(samplingFrequency())) * static_cast(sampleCount()) + static_cast(paddingSize()));