diff --git a/dom/media/wave/WaveDemuxer.cpp b/dom/media/wave/WaveDemuxer.cpp index 64d1eec6ba6c..18a2376aeed0 100644 --- a/dom/media/wave/WaveDemuxer.cpp +++ b/dom/media/wave/WaveDemuxer.cpp @@ -113,8 +113,6 @@ WAVTrackDemuxer::Init() uint32_t aChunkName = mHeaderParser.GiveHeader().ChunkName(); uint32_t aChunkSize = mHeaderParser.GiveHeader().ChunkSize(); - aChunkSize += aChunkSize % 2; - if (aChunkName == FRMT_CODE) { if (!FmtChunkParserInit()) { return false; @@ -135,7 +133,8 @@ WAVTrackDemuxer::Init() } break; } else { - mOffset += aChunkSize; // Skip other irrelevant chunks. + // Wave files are 2-byte aligned so we need to round up + mOffset += (aChunkSize + 1) & ~1; // Skip other irrelevant chunks. } mHeaderParser.Reset(); }