Fix incorrect MP3 frame size calculation (fixes #140)

This commit is contained in:
Vanilagy
2025-09-21 17:42:31 +02:00
parent 9e1a23aefd
commit d855038fd4
2 changed files with 4 additions and 4 deletions
+3 -3
View File
@@ -52,11 +52,11 @@ export const computeMp3FrameSize = (
if (layer === 0) {
return 0; // Not expected that this is hit
} else if (layer === 1) {
return Math.round(144 * bitrate / (sampleRate << lowSamplingFrequency)) + padding;
return Math.floor(144 * bitrate / (sampleRate << lowSamplingFrequency)) + padding;
} else if (layer === 2) {
return Math.round(144 * bitrate / sampleRate) + padding;
return Math.floor(144 * bitrate / sampleRate) + padding;
} else { // layer === 3
return (Math.round(12 * bitrate / sampleRate) + padding) * 4;
return (Math.floor(12 * bitrate / sampleRate) + padding) * 4;
}
};
+1 -1
View File
@@ -289,7 +289,7 @@ export class Mp3InputFormat extends InputFormat {
return true;
}
currentPos = firstResult.startPos += firstResult.header.totalSize;
currentPos = firstResult.startPos + firstResult.header.totalSize;
// Fine, we found one frame header, but we're still not entirely sure this is MP3. Let's check if we can find
// another header right after it: