-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes mp3 lenght when no ID3v1 tag is added #11168
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This is a workaround for an early abort when missing MAD_BUFFER_GUARD padding bytes.
…the last frame. This is fixed by skipping the first frame likely containing the MP3 Info Tag explicit during tryOpen(): Explain why this can't be made conditional without handling the offset of the analysis data.
@robbert-vdh has confirmed that this PR fixes the issue. |
Swiftb0y
reviewed
Mar 29, 2023
Co-authored-by: Swiftb0y <12380386+Swiftb0y@users.noreply.github.com>
Co-authored-by: Swiftb0y <12380386+Swiftb0y@users.noreply.github.com>
Swiftb0y
approved these changes
Mar 29, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you
Closed
This PR is the root cause for #11521. If I revert these two files, I can load MP3 tracks again. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Without an ID3v1 tag, the MAD_BUFFER_GUARD padding byte after the last frame are missing and the last frame was not considered when calculating the track length. This PR uses a local m_leftoverBuffer to add these padding bytes. An existing solution that was already in place when decoding the file.
This also fixes spurious warnings that happens because of a legacy off-by-one issue. Due to a validity test on the seek destination, the decoding starts with the next frame after the seek target. The bug itself cannot be fixed, because it would make the stored analysis, cues and loops invalid.
This PR fixes also the wrong clearing of the bit reservoir after switching to the m_leftoverBuffer. This is relevant in case of VBR encoded tracks.
If this is merged before merging #11162 the waveform of tracks without an ID3v1 tracks will be off at the end of the track.
Fixes #11159