Strip AudioStream WAV/Ogg/MP3 data using placeholders for dedicated server exports #112773
+523
−0
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 greatly reduces PCK size for dedicated servers in projects that use audio in WAV, Ogg Vorbis and MP3 formats. Additionally, this prevents errors from being printed on export when using
--headlessto export a dedicated server PCK in a project that uses a VoxelGI node.Testing project: test_dedicated_server_export_2.zip
Preview
File sizes are in bytes. The test project includes 3 short sound files (2.25s each): one WAV, one Ogg Vorbis and one MP3 sound.
Before this PR, both PCK/ZIPs would be the same size as the project doesn't include any textures.
PCK size
ZIP size
TODO
finishedsignal. We want this signal to be emitted at the right time just like in a standard build, as it may be relied upon server-side for gameplay purposes.mix()implemented (returning-1instead), it made AudioStreamPlayer emit itsfinishedsignal instantly instead.finishedsignal is emitted). The AudioStreamPlayer'splayback_speedproperty should also be respected, as well as manual seeking.loop_beginandloop_endto be stored in seconds as opposed to samples, as there's no concept of samples in PlaceholderAudioStream (we don't store the sound's original sample rate).