Add Ogg Theora support to MovieWriter

Movie Maker mode can now record files in `.ogv` format, which can be
directly viewed in Godot's VideoStreamPlayer node along with most
video players. This is a lossy format with inter-frame compression,
unlike AVI + MJPEG which only performs intra-frame compression.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: Leo de Penning <leo.depenning@illuminoo.com>
This commit is contained in:
Bernat Arlandis 2025-06-07 00:40:41 +02:00
parent 26df04377e
commit a16b04fe07
13 changed files with 774 additions and 53 deletions

View file

@ -257,14 +257,20 @@ def configure(env: "SConsEnvironment"):
if not env["builtin_libtheora"]:
env["builtin_libogg"] = False # Needed to link against system libtheora
env["builtin_libvorbis"] = False # Needed to link against system libtheora
env.ParseConfig("pkg-config theora theoradec --cflags --libs")
if env.editor_build:
env.ParseConfig("pkg-config theora theoradec theoraenc --cflags --libs")
else:
env.ParseConfig("pkg-config theora theoradec --cflags --libs")
else:
if env["arch"] in ["x86_64", "x86_32"]:
env["x86_libtheora_opt_gcc"] = True
if not env["builtin_libvorbis"]:
env["builtin_libogg"] = False # Needed to link against system libvorbis
env.ParseConfig("pkg-config vorbis vorbisfile --cflags --libs")
if env.editor_build:
env.ParseConfig("pkg-config vorbis vorbisfile vorbisenc --cflags --libs")
else:
env.ParseConfig("pkg-config vorbis vorbisfile --cflags --libs")
if not env["builtin_libogg"]:
env.ParseConfig("pkg-config ogg --cflags --libs")