-
Notifications
You must be signed in to change notification settings - Fork 26
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
audio_simple_with_error.ogg gives wrong decoded output #24
Labels
Comments
Interestingly, the file has only a single mapping, just like the |
Just ran |
Indeed, it was the same bug. Fixed in 1073e58 . |
est31
added a commit
that referenced
this issue
Oct 7, 2018
There has been a bug that led lewton to wrongly decode singlemap-test.ogg as well as audio_simple_with_error.ogg. I tracked it down by printing out intermediary values for lewton as well as for stb_vorbis and comparing them. First, I saw that there was a mismatch in the pre imdct values. Then, I tracked it down to a mismatch in the residue values. After that, I found out that the codebook values were wrong. And then, I saw that the settings for codebook_minimum_value and codebook_delta_value have been parsed wrongly by lewton, which caused all the other mismatches. This wrong parsing has been caused by a bug in the behaviour of the float conversion routine float32_unpack. The deployed fix was to replace the overengineered and overoptimized bit twiddling implementation by a more straight forward, spec following one. Performance impact wasn't measured, but the code is super cold: It's called only during header setup and even there only twice per codebook. In singlemap-test.ogg, it was called a few dozen times or such. Fixes #24, and also addresses parts of #26.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Originally reported at ggez/ggez#207 then brought to rodio at RustAudio/rodio#147 . Our output is very bad audio. It can be heard, and comparison shows a difference as well:
A small example is: audio_simple_err.zip (actually an ogg file but I had to change the extension in order for github to accept it).
The text was updated successfully, but these errors were encountered: