-
-
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
lp1766834: Detect M4A decoding errors on Windows #1646
lp1766834: Detect M4A decoding errors on Windows #1646
Conversation
Still doesn't work as expected, need more testing. Rounding errors seem to accumulate while reading. i.e. the reader is reporting inaccurate positions. |
...and avoid to update if not necessary to prevent rounding errors. Just log any suspicious values.
Finally I understood that the example file is actually corrupt and IMFSourceReader is reporting wrong read positions! The implementation is now more robust and logs those errors, many errors. I'm won't touch this again without any important reasons to do so. Lots of wasted time hunting ghost bugs, frustrating. |
I'm confused. What does this PR end up doing? More error-checking such that corrupt files are handled more gracefully? |
In the end this might not even be a bug in our code, although improving robustness for corrupt files is at least one actual benefit. Otherwise the effort I spent on this would be totally lost. |
Reading should not abort without an indication why. Now you get some nice logs:
|
The deviations vary gradually, up to > 20 sample frames at some point. |
Knowing why a problem is happening is much better in my view. I'm in favor of merging this. |
Tested this with some valid M4A files. All reported stream positions are accurate, no log spam. |
LGTM. Thank you for nailing this down. Ready for merge. |
Ready for merge? |
@Pegasus-RPG merge? |
Since we get no answer I will merge it now. If there are still pending issues we can fix them later. |
https://bugs.launchpad.net/mixxx/+bug/1766834
I don't know how frequently the decoder gets out of sync while reading. Currently we have only a single
example provided by Sean. But it is definitely a critical issue if playback or analysis stops unexpectedly!!