Skip to content
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

Remove WebM support (and deps libvpx and opus) #53833

Merged
merged 1 commit into from
Oct 15, 2021

Conversation

akien-mga
Copy link
Member

@akien-mga akien-mga commented Oct 15, 2021

We've had many issues with WebM support and specifically the libvpx library
over the years, mostly due to its poor integration in Godot's buildsystem,
but without anyone really interested in improving this state.

With the new GDExtensions in Godot 4.0, we intend to move video decoding to
first-party extensions, and this would likely be done using something like
libvlc to expose more codecs.

Removing the webm module means we can remove libsimplewebm, libvpx and
opus, which we were only used for that purpose. Both libvpx and opus were
fairly complex pieces of the buildsystem, so this is a nice cleanup.

This also removes the compile-time dependency on yasm.

For now I kept the Theora plugin, as it's much simpler/better integrated in
our buildsystem, so it can still be useful until we actually provide a
GDExtension option that can be used in production.

For the record, this naturally makes the compiled binaries somewhat smaller,
though nothing huge. Current Linux release export template with LTO goes from
53.83 MiB to 53.05 MiB (so ~800 KiB reduction).

Closes #8334.
Closes #13272.
Closes #19319.
Closes #30333.
Closes #30914.
Closes #33472.
Closes #34660.
Closes #37648.
Closes #39178.
Closes #42698.
Closes #44706.
Closes #50862.
Closes #51951.

Related to godotengine/godot-proposals#3286.

We've had many issues with WebM support and specifically the libvpx library
over the years, mostly due to its poor integration in Godot's buildsystem,
but without anyone really interested in improving this state.

With the new GDExtensions in Godot 4.0, we intend to move video decoding to
first-party extensions, and this would likely be done using something like
libvlc to expose more codecs.

Removing the `webm` module means we can remove libsimplewebm, libvpx and
opus, which we were only used for that purpose. Both libvpx and opus were
fairly complex pieces of the buildsystem, so this is a nice cleanup.

This also removes the compile-time dependency on `yasm`.

Fixes lots of compilation or non-working WebM issues which will be linked
in the PR.
@akien-mga akien-mga added this to the 4.0 milestone Oct 15, 2021
@akien-mga akien-mga requested review from a team as code owners October 15, 2021 10:12
akien-mga added a commit to akien-mga/godot-docs that referenced this pull request Oct 15, 2021
WebM support is dropped from the core engine with
godotengine/godot#53833
Copy link
Member

@aaronfranke aaronfranke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a good idea, this functionality makes more sense to have in a GDExtension plugin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment