-
-
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
Recover from FLAC decoding errors #2315
Conversation
By chance, is this also fixing https://bugs.launchpad.net/mixxx/+bug/1846409 ? |
No, FLAC decoding worked and still works perfectly. This PR only fixes issues with really bad and corrupt files. |
My mistake, encoding/decoding :) |
@ronso0 Nevertheless please forward the file also to me (Zulip link or e-mail), just in case. |
<< precedingFrames; | ||
if (!FLAC__stream_decoder_reset(m_decoder)) { | ||
kLogger.critical() |
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.
This crashes Mixxx, right? Doe we have alternatives?
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.
Not by default: "It exits if the environment variable QT_FATAL_CRITICALS is not empty."
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.
If even resetting the decoder fails then we are in big trouble. Like a destructor this operation should never fail, but the API allows failure and we need to handle this case.
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.
Playback was stuttering and Mixxx became almost unusable when not resetting the decoder. This is already our very last chance. If even this option fails everything is lost.
This is still only a DJ application, not the control unit of some deadly weapon. Let's keep things in perspective.
LGTM. Thank you. |
Retested corrupt files and fixed some hiccups.