mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
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:
@@ -13,61 +13,68 @@ thirdparty_obj = []
|
||||
if env["builtin_libtheora"]:
|
||||
thirdparty_dir = "#thirdparty/libtheora/"
|
||||
thirdparty_sources = [
|
||||
# "analyze.c",
|
||||
# "apiwrapper.c",
|
||||
"bitpack.c",
|
||||
# "collect.c",
|
||||
# "decapiwrapper.c",
|
||||
"decinfo.c",
|
||||
"decode.c",
|
||||
"dequant.c",
|
||||
# "encapiwrapper.c",
|
||||
# "encfrag.c",
|
||||
# "encinfo.c",
|
||||
# "encode.c",
|
||||
# "encoder_disabled.c",
|
||||
# "enquant.c",
|
||||
# "fdct.c",
|
||||
"fragment.c",
|
||||
"huffdec.c",
|
||||
# "huffenc.c",
|
||||
"idct.c",
|
||||
"info.c",
|
||||
"internal.c",
|
||||
# "mathops.c",
|
||||
# "mcenc.c",
|
||||
"quant.c",
|
||||
# "rate.c",
|
||||
"state.c",
|
||||
# "tokenize.c",
|
||||
]
|
||||
|
||||
if env.editor_build:
|
||||
thirdparty_sources += [
|
||||
"analyze.c",
|
||||
"encfrag.c",
|
||||
"encinfo.c",
|
||||
"encode.c",
|
||||
"enquant.c",
|
||||
"fdct.c",
|
||||
"huffenc.c",
|
||||
"mathops.c",
|
||||
"mcenc.c",
|
||||
"rate.c",
|
||||
"tokenize.c",
|
||||
]
|
||||
|
||||
thirdparty_sources_x86 = [
|
||||
# "x86/mmxencfrag.c",
|
||||
# "x86/mmxfdct.c",
|
||||
"x86/mmxfrag.c",
|
||||
"x86/mmxidct.c",
|
||||
"x86/mmxstate.c",
|
||||
# "x86/sse2encfrag.c",
|
||||
# "x86/sse2fdct.c",
|
||||
"x86/sse2idct.c",
|
||||
"x86/x86cpu.c",
|
||||
# "x86/x86enc.c",
|
||||
# "x86/x86enquant.c"
|
||||
"x86/x86state.c",
|
||||
]
|
||||
|
||||
if env.editor_build:
|
||||
thirdparty_sources_x86 += [
|
||||
"x86/mmxencfrag.c",
|
||||
"x86/mmxfdct.c",
|
||||
"x86/sse2encfrag.c",
|
||||
"x86/sse2fdct.c",
|
||||
"x86/x86enc.c",
|
||||
"x86/x86enquant.c",
|
||||
]
|
||||
|
||||
thirdparty_sources_x86_vc = [
|
||||
# "x86_vc/mmxencfrag.c",
|
||||
# "x86_vc/mmxfdct.c",
|
||||
"x86_vc/mmxfrag.c",
|
||||
"x86_vc/mmxidct.c",
|
||||
"x86_vc/mmxstate.c",
|
||||
"x86_vc/x86cpu.c",
|
||||
# "x86_vc/x86enc.c",
|
||||
"x86_vc/x86state.c",
|
||||
]
|
||||
|
||||
if env.editor_build:
|
||||
thirdparty_sources_x86_vc += [
|
||||
"x86_vc/mmxencfrag.c",
|
||||
"x86_vc/mmxfdct.c",
|
||||
"x86_vc/x86enc.c",
|
||||
]
|
||||
|
||||
if env["x86_libtheora_opt_gcc"]:
|
||||
thirdparty_sources += thirdparty_sources_x86
|
||||
|
||||
@@ -98,6 +105,10 @@ if env["builtin_libtheora"]:
|
||||
module_obj = []
|
||||
|
||||
env_theora.add_source_files(module_obj, "*.cpp")
|
||||
|
||||
if env.editor_build:
|
||||
env_theora.add_source_files(module_obj, "editor/*.cpp")
|
||||
|
||||
env.modules_sources += module_obj
|
||||
|
||||
# Needed to force rebuilding the module files when the thirdparty library is updated.
|
||||
|
||||
Reference in New Issue
Block a user