This repository was archived by the owner on Sep 3, 2025. It is now read-only.
fix(content): Decode IPLS/TIPL/TMCL with odd value count gracefully#154
Merged
polyfloyd merged 2 commits intopolyfloyd:mainfrom Feb 8, 2025
Merged
fix(content): Decode IPLS/TIPL/TMCL with odd value count gracefully#154polyfloyd merged 2 commits intopolyfloyd:mainfrom
polyfloyd merged 2 commits intopolyfloyd:mainfrom
Conversation
The test data from extracted from the sample file attached to polyfloyd#147. $ cargo run --example tagdump sample.mp3 > testdata/github-issue-147.id3 Tag size: 42998 Footer: no Writing 42998 bytes to stdout... Done.
8d9e43f to
7c90acc
Compare
Owner
|
Nice! This seems like a good solution. I am not super concerned about being able to check tags for validity. ID3 is an old standard and there is plenty of mangled data out there. Being able to read as much as possible is preferred. |
This file contains hidden or 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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
This might be an option to fix decoding errors due to broken IPLS/TIPL/TMCL frames. See #147 for details.
Note: The big downside of this solution is that applications have no way to distinguish a tag with a valid TIPL frame where the last even value is empty from a tag with an invalid TIPL frame where the last even value is missing anymore.
If you wanted to bui.d a tool that checks if your tags are valid, you couldn't use
rust-id3anymore. If this should be possible, we'd have to go for options 2/3 described in #147 (comment).Using this branch, the sample file from #147 can be decoded successfully: