-
-
Notifications
You must be signed in to change notification settings - Fork 23.4k
Replace minimp3 with dr_mp3
#96547
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
base: master
Are you sure you want to change the base?
Replace minimp3 with dr_mp3
#96547
Conversation
|
Fixed an issue that caused single channel MP3 files to play badly. This fix could also be applied to #80160 if it was viable |
88b551a to
e894f03
Compare
This comment has been minimized.
This comment has been minimized.
|
It looks like a fix is coming: mackron/dr_libs@0463355 |
b1857da to
f592860
Compare
|
Current version has the issue fixed. Despite being a dev version I didn't notice any problems. Maybe it's safe to mark as ready now. I'll keep it updated while it's open. |
|
Considering that I'm also trying to make a module named
|
|
I would rename the module to just |
|
Rebased on top of master. Added a Due to renaming an entire module folder, any minor changes to the |
4997a3d to
70976ad
Compare
|
Reviewed during the Audio team meeting. We will test the PR just to make sure and individually review it in the next days. But this PR should be approved and merged early during 4.6 dev cycle. |
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.
Tested locally on the Run-time saving and loading demo, it works as expected. Code looks good to me.
I can confirm building with LTO also no longer reproduces warnings for MP3 code on GCC 15.2.1. There are still plenty of other LTO warnings produced though (e.g. by polypartition, VHACD, libjpeg-turbo, …).
Edit: There are some bugs with the PR, see #96547 (comment).
|
I actually found that MP3 playback breaks on some longer files (resulting in audible stuttering and slowed down playback), even though it appears fine in the first 5 seconds of playback. It plays correctly in Try playing this MP3 in the run-time loading/saving demo, for instance: Marc A. Pullen - Aeroembolism.zip This one is fine though, in comparison: Crimson Blue - Iceland -02.zip Notice how the first one has no bitrate information, so it has to be guessed from the file by |
|
Rebased.
I tried to modify the PR back then so the code would be similar to the Ogg Vorbis player. Reverting that seems to have solved this issue (given file plays normally). |
3af7fe3 to
1afe615
Compare
|
I just compiled and checked that this PR works on nixos (linux) after the audio meeting, so it looks good to me. Do you think it's possible to write down a "Review date" in the future in the code of frozen third-party libraries like this, when developer teams are encouraged to check upstream for any important versions that should be pulled in? |
a0fc7c6 to
88e48c1
Compare
Because a single repository had tags for a MP3, WAV and FLAC library, I was unsure of how to inform the tags correctly in the thirdparty README so I just pulled it from the latest git. But I recalled: the three tend to have a release at the same time. I have modified so it uses the latest |
|
I can confirm the playback issue I mentioned above is fixed now. |
|
Rebased after recent changes. |
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.
Didn't test any MP3 files, but the code seems right. Thanks @DeeJayLSP !
|
Removed the |
Last time
minimp3got updated was in November 2021 (almost 3 years ago by the time this PR was opened).Meanwhile,
dr_mp3, a piece of work done on top ofminimp3, has been updated quite recently.Within Godot, it fixes a few issues:
Template release binary sizes remain the same.
Since
minimp3is removed, the following are also changed in this PR:minimp3module renamed tomp3, to better reflect its purpose rather than naming its dependency;minimp3_extra_formatsbuild variable renamed tomp3_extra_formats.This should not break compatibility unless module/build option name changes count (does not affect existing projects™).