diff options
-rw-r--r-- | SConstruct | 10 | ||||
-rw-r--r-- | drivers/SCsub | 2 | ||||
-rw-r--r-- | drivers/register_driver_types.cpp | 22 | ||||
-rw-r--r-- | drivers/theora/SCsub | 65 | ||||
-rw-r--r-- | drivers/theora/theora.exp | 55 | ||||
-rw-r--r-- | modules/theora/SCsub | 81 | ||||
-rw-r--r-- | modules/theora/config.py | 6 | ||||
-rw-r--r-- | modules/theora/register_types.cpp | 45 | ||||
-rw-r--r-- | modules/theora/register_types.h | 30 | ||||
-rw-r--r-- | modules/theora/video_stream_theora.cpp (renamed from drivers/theora/video_stream_theora.cpp) | 9 | ||||
-rw-r--r-- | modules/theora/video_stream_theora.h (renamed from drivers/theora/video_stream_theora.h) | 17 | ||||
-rw-r--r-- | modules/theora/yuv2rgb.h (renamed from drivers/theora/yuv2rgb.h) | 0 | ||||
-rw-r--r-- | platform/bb10/detect.py | 3 | ||||
-rw-r--r-- | platform/javascript/detect.py | 2 | ||||
-rw-r--r-- | platform/x11/detect.py | 17 | ||||
-rw-r--r-- | thirdparty/README.md | 13 | ||||
-rw-r--r-- | thirdparty/libtheora/COPYING (renamed from drivers/theora/COPYING) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/LICENSE (renamed from drivers/theora/LICENSE) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/analyze.c (renamed from drivers/theora/analyze.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/apiwrapper.c (renamed from drivers/theora/apiwrapper.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/apiwrapper.h (renamed from drivers/theora/apiwrapper.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/bitpack.c (renamed from drivers/theora/bitpack.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/bitpack.h (renamed from drivers/theora/bitpack.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/cpu.c (renamed from drivers/theora/cpu.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/cpu.h (renamed from drivers/theora/cpu.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/dct.h (renamed from drivers/theora/dct.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/decapiwrapper.c (renamed from drivers/theora/decapiwrapper.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/decinfo.c (renamed from drivers/theora/decinfo.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/decint.h (renamed from drivers/theora/decint.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/decode.c (renamed from drivers/theora/decode.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/dequant.c (renamed from drivers/theora/dequant.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/dequant.h (renamed from drivers/theora/dequant.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/encapiwrapper.c (renamed from drivers/theora/encapiwrapper.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/encfrag.c (renamed from drivers/theora/encfrag.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/encinfo.c (renamed from drivers/theora/encinfo.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/encint.h (renamed from drivers/theora/encint.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/encode.c (renamed from drivers/theora/encode.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/encoder_disabled.c (renamed from drivers/theora/encoder_disabled.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/enquant.c (renamed from drivers/theora/enquant.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/enquant.h (renamed from drivers/theora/enquant.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/fdct.c (renamed from drivers/theora/fdct.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/fragment.c (renamed from drivers/theora/fragment.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/huffdec.c (renamed from drivers/theora/huffdec.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/huffdec.h (renamed from drivers/theora/huffdec.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/huffenc.c (renamed from drivers/theora/huffenc.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/huffenc.h (renamed from drivers/theora/huffenc.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/huffman.h (renamed from drivers/theora/huffman.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/idct.c (renamed from drivers/theora/idct.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/info.c (renamed from drivers/theora/info.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/internal.c (renamed from drivers/theora/internal.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/internal.h (renamed from drivers/theora/internal.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/mathops.c (renamed from drivers/theora/mathops.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/mathops.h (renamed from drivers/theora/mathops.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/mcenc.c (renamed from drivers/theora/mcenc.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/modedec.h (renamed from drivers/theora/modedec.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/ocintrin.h (renamed from drivers/theora/ocintrin.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/quant.c (renamed from drivers/theora/quant.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/quant.h (renamed from drivers/theora/quant.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/rate.c (renamed from drivers/theora/rate.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/state.c (renamed from drivers/theora/state.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/theora/codec.h (renamed from drivers/theora/codec.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/theora/theora.h (renamed from drivers/theora/theora.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/theora/theoradec.h (renamed from drivers/theora/theoradec.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/theora/theoraenc.h (renamed from drivers/theora/theoraenc.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/tokenize.c (renamed from drivers/theora/tokenize.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/mmxencfrag.c (renamed from drivers/theora/x86/mmxencfrag.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/mmxfdct.c (renamed from drivers/theora/x86/mmxfdct.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/mmxfrag.c (renamed from drivers/theora/x86/mmxfrag.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/mmxfrag.h (renamed from drivers/theora/x86/mmxfrag.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/mmxidct.c (renamed from drivers/theora/x86/mmxidct.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/mmxloop.h (renamed from drivers/theora/x86/mmxloop.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/mmxstate.c (renamed from drivers/theora/x86/mmxstate.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/sse2fdct.c (renamed from drivers/theora/x86/sse2fdct.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/x86enc.c (renamed from drivers/theora/x86/x86enc.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/x86enc.h (renamed from drivers/theora/x86/x86enc.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/x86int.h (renamed from drivers/theora/x86/x86int.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86/x86state.c (renamed from drivers/theora/x86/x86state.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/mmxencfrag.c (renamed from drivers/theora/x86_vc/mmxencfrag.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/mmxfdct.c (renamed from drivers/theora/x86_vc/mmxfdct.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/mmxfrag.c (renamed from drivers/theora/x86_vc/mmxfrag.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/mmxfrag.h (renamed from drivers/theora/x86_vc/mmxfrag.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/mmxidct.c (renamed from drivers/theora/x86_vc/mmxidct.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/mmxloop.h (renamed from drivers/theora/x86_vc/mmxloop.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/mmxstate.c (renamed from drivers/theora/x86_vc/mmxstate.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/x86enc.c (renamed from drivers/theora/x86_vc/x86enc.c) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/x86enc.h (renamed from drivers/theora/x86_vc/x86enc.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/x86int.h (renamed from drivers/theora/x86_vc/x86int.h) | 0 | ||||
-rw-r--r-- | thirdparty/libtheora/x86_vc/x86state.c (renamed from drivers/theora/x86_vc/x86state.c) | 0 |
88 files changed, 199 insertions, 178 deletions
diff --git a/SConstruct b/SConstruct index e52e224de7..4ed3845f97 100644 --- a/SConstruct +++ b/SConstruct @@ -121,11 +121,10 @@ opts.Add('tools','Build Tools (Including Editor): (yes/no)','yes') opts.Add('gdscript','Build GDSCript support: (yes/no)','yes') opts.Add('libogg','Ogg library for ogg container support (system/builtin)','builtin') opts.Add('libvorbis','Ogg Vorbis library for vorbis support (system/builtin)','builtin') +opts.Add('libtheora','Theora library for theora module (system/builtin)','builtin') opts.Add('opus','Opus and opusfile library for Opus format support: (system/builtin)','builtin') opts.Add('minizip','Build Minizip Archive Support: (yes/no)','yes') opts.Add('squish','Squish BC Texture Compression in editor (yes/no)','yes') -opts.Add('theora','Theora Video (yes/no)','yes') -opts.Add('theoralib','Theora Video (yes/no)','no') opts.Add('freetype','Freetype support in editor','builtin') opts.Add('xml','XML Save/Load support (yes/no)','yes') opts.Add('libpng','libpng library for image loader support (system/builtin)','builtin') @@ -331,13 +330,6 @@ if selected_platform in platform_list: if (env_base['squish']=='yes'): env.Append(CPPFLAGS=['-DSQUISH_ENABLED']); - - if (env['theora']=='yes'): - env['theoralib']='yes' - env.Append(CPPFLAGS=['-DTHEORA_ENABLED']); - if (env['theoralib']=='yes'): - env.Append(CPPFLAGS=['-DTHEORALIB_ENABLED']); - if (env['tools']=='yes'): env.Append(CPPFLAGS=['-DTOOLS_ENABLED']) if (env['disable_3d']=='yes'): diff --git a/drivers/SCsub b/drivers/SCsub index 4ce95c7970..8b7ec80dcd 100644 --- a/drivers/SCsub +++ b/drivers/SCsub @@ -24,8 +24,6 @@ SConscript("chibi/SCsub"); if (env["tools"]=="yes"): SConscript("convex_decomp/SCsub"); -if (env["theoralib"]=="yes"): - SConscript("theora/SCsub"); if (env['musepack']=='yes'): SConscript("mpc/SCsub"); if (env["squish"]=="yes" and env["tools"]=="yes"): diff --git a/drivers/register_driver_types.cpp b/drivers/register_driver_types.cpp index 8aead0e2fc..6d48d94d44 100644 --- a/drivers/register_driver_types.cpp +++ b/drivers/register_driver_types.cpp @@ -28,6 +28,7 @@ /*************************************************************************/ #include "register_driver_types.h" +#include "core/math/geometry.h" #include "png/image_loader_png.h" #include "png/resource_saver_png.h" #include "chibi/event_stream_chibi.h" @@ -45,11 +46,6 @@ #include "platform/windows/export/export.h" #endif -#ifdef THEORA_ENABLED -#include "theora/video_stream_theora.h" -#endif - - #include "drivers/nrex/regex.h" #ifdef MUSEPACK_ENABLED @@ -59,10 +55,6 @@ static ImageLoaderPNG *image_loader_png=NULL; static ResourceSaverPNG *resource_saver_png=NULL; -#ifdef THEORA_ENABLED -static ResourceFormatLoaderVideoStreamTheora* theora_stream_loader = NULL; -#endif - #ifdef MUSEPACK_ENABLED static ResourceFormatLoaderAudioStreamMPC * mpc_stream_loader=NULL; #endif @@ -103,13 +95,6 @@ void register_driver_types() { #endif -#ifdef THEORA_ENABLED - theora_stream_loader = memnew( ResourceFormatLoaderVideoStreamTheora ); - ResourceLoader::add_resource_format_loader(theora_stream_loader); - ObjectTypeDB::register_type<VideoStreamTheora>(); -#endif - - #ifdef TOOLS_ENABLED #ifdef SQUISH_ENABLED @@ -123,11 +108,6 @@ void register_driver_types() { void unregister_driver_types() { -#ifdef THEORA_ENABLED - memdelete (theora_stream_loader); -#endif - - #ifdef MUSEPACK_ENABLED memdelete (mpc_stream_loader); diff --git a/drivers/theora/SCsub b/drivers/theora/SCsub deleted file mode 100644 index 94477d2827..0000000000 --- a/drivers/theora/SCsub +++ /dev/null @@ -1,65 +0,0 @@ -Import('env') - -sources = [ - #"theora/analyze.c", - #"theora/apiwrapper.c", - "theora/bitpack.c", - "theora/cpu.c", - #"theora/decapiwrapper.c", - "theora/decinfo.c", - "theora/decode.c", - "theora/dequant.c", - #"theora/encapiwrapper.c", - #"theora/encfrag.c", - #"theora/encinfo.c", - #"theora/encode.c", - #"theora/encoder_disabled.c", - #"theora/enquant.c", - #"theora/fdct.c", - "theora/fragment.c", - "theora/huffdec.c", - #"theora/huffenc.c", - "theora/idct.c", - "theora/info.c", - "theora/internal.c", - #"theora/mathops.c", - #"theora/mcenc.c", - "theora/quant.c", - #"theora/rate.c", - "theora/state.c", - #"theora/tokenize.c", - "theora/video_stream_theora.cpp", -] - -sources_x86 = [ - #"theora/x86/mmxencfrag.c", - #"theora/x86/mmxfdct.c", - "theora/x86/mmxfrag.c", - "theora/x86/mmxidct.c", - "theora/x86/mmxstate.c", - #"theora/x86/sse2fdct.c", - #"theora/x86/x86enc.c", - "theora/x86/x86state.c", -] - -sources_x86_vc = [ - #"theora/x86_vc/mmxencfrag.c", - #"theora/x86_vc/mmxfdct.c", - "theora/x86_vc/mmxfrag.c", - "theora/x86_vc/mmxidct.c", - "theora/x86_vc/mmxstate.c", - #"theora/x86_vc/x86enc.c", - "theora/x86_vc/x86state.c", -] - -env.drivers_sources += sources - -if (env["x86_opt_gcc"]): - env.drivers_sources += sources_x86 - -if (env["x86_opt_vc"]): - env.drivers_sources += sources_x86_vc - -if (env["x86_opt_gcc"] or env["x86_opt_vc"]): - Import('env_drivers') - env_drivers.Append(CCFLAGS=["-DOC_X86_ASM"]) diff --git a/drivers/theora/theora.exp b/drivers/theora/theora.exp deleted file mode 100644 index b4e0225f1e..0000000000 --- a/drivers/theora/theora.exp +++ /dev/null @@ -1,55 +0,0 @@ -# export list for libtheora
-_theora_version_string
-_theora_version_number
-_theora_encode_init
-_theora_encode_YUVin
-_theora_encode_packetout
-_theora_encode_header
-_theora_encode_comment
-_theora_encode_tables
-_theora_decode_header
-_theora_decode_init
-_theora_decode_packetin
-_theora_decode_YUVout
-_theora_control
-_theora_packet_isheader
-_theora_packet_iskeyframe
-_theora_granule_shift
-_theora_granule_frame
-_theora_granule_time
-_theora_info_init
-_theora_info_clear
-_theora_clear
-_theora_comment_init
-_theora_comment_add
-_theora_comment_add_tag
-_theora_comment_query
-_theora_comment_query_count
-_theora_comment_clear
-_th_version_string
-_th_version_number
-_th_decode_headerin
-_th_decode_alloc
-_th_setup_free
-_th_decode_ctl
-_th_decode_packetin
-_th_decode_ycbcr_out
-_th_decode_free
-_th_packet_isheader
-_th_packet_iskeyframe
-_th_granule_frame
-_th_granule_time
-_th_info_init
-_th_info_clear
-_th_comment_init
-_th_comment_add
-_th_comment_add_tag
-_th_comment_query
-_th_comment_query_count
-_th_comment_clear
-_th_encode_alloc
-_th_encode_ctl
-_th_encode_flushheader
-_th_encode_packetout
-_th_encode_ycbcr_in
-_th_encode_free
diff --git a/modules/theora/SCsub b/modules/theora/SCsub new file mode 100644 index 0000000000..cdb78e955e --- /dev/null +++ b/modules/theora/SCsub @@ -0,0 +1,81 @@ +Import('env') +Import('env_modules') + +env_theora = env_modules.Clone() + +# Thirdparty source files +if (env["libtheora"] != "system"): # builtin + thirdparty_dir = "#thirdparty/libtheora/" + thirdparty_sources = [ + "analyze.c", + "apiwrapper.c", + "bitpack.c", + "cpu.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", + ] + + thirdparty_sources_x86 = [ + "x86/mmxencfrag.c", + "x86/mmxfdct.c", + "x86/mmxfrag.c", + "x86/mmxidct.c", + "x86/mmxstate.c", + "x86/sse2fdct.c", + "x86/x86enc.c", + "x86/x86state.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/x86enc.c", + "x86_vc/x86state.c", + ] + + if (env["x86_opt_gcc"]): + thirdparty_sources += thirdparty_sources_x86 + + if (env["x86_opt_vc"]): + thirdparty_sources += thirdparty_sources_x86_vc + + if (env["x86_opt_gcc"] or env["x86_opt_vc"]): + env_theora.Append(CCFLAGS = ["-DOC_X86_ASM"]) + + thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources] + + env_theora.add_source_files(env.modules_sources, thirdparty_sources) + env_theora.Append(CPPPATH = [thirdparty_dir]) + + # also requires libogg and libvorbis + if (env["libogg"] != "system"): # builtin + env_theora.Append(CPPPATH = ["#thirdparty/libogg"]) + if (env["libvorbis"] != "system"): # builtin + env_theora.Append(CPPPATH = ["#thirdparty/libvorbis"]) + +# Godot source files +env_theora.add_source_files(env.modules_sources, "*.cpp") diff --git a/modules/theora/config.py b/modules/theora/config.py new file mode 100644 index 0000000000..368e97e152 --- /dev/null +++ b/modules/theora/config.py @@ -0,0 +1,6 @@ + +def can_build(platform): + return True + +def configure(env): + pass diff --git a/modules/theora/register_types.cpp b/modules/theora/register_types.cpp new file mode 100644 index 0000000000..282b59b0ec --- /dev/null +++ b/modules/theora/register_types.cpp @@ -0,0 +1,45 @@ +/*************************************************************************/ +/* register_types.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +#include "register_types.h" + +#include "video_stream_theora.h" + +static ResourceFormatLoaderVideoStreamTheora* theora_stream_loader = NULL; + +void register_theora_types() { + + theora_stream_loader = memnew( ResourceFormatLoaderVideoStreamTheora ); + ResourceLoader::add_resource_format_loader(theora_stream_loader); + ObjectTypeDB::register_type<VideoStreamTheora>(); +} + +void unregister_theora_types() { + + memdelete( theora_stream_loader ); +} diff --git a/modules/theora/register_types.h b/modules/theora/register_types.h new file mode 100644 index 0000000000..18bdbf0c4c --- /dev/null +++ b/modules/theora/register_types.h @@ -0,0 +1,30 @@ +/*************************************************************************/ +/* register_types.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +void register_theora_types(); +void unregister_theora_types(); diff --git a/drivers/theora/video_stream_theora.cpp b/modules/theora/video_stream_theora.cpp index 1f3832ec16..3ddfee3a1d 100644 --- a/drivers/theora/video_stream_theora.cpp +++ b/modules/theora/video_stream_theora.cpp @@ -26,13 +26,11 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifdef THEORA_ENABLED - #include "video_stream_theora.h" + +#include "globals.h" #include "os/os.h" #include "yuv2rgb.h" -#include "globals.h" - int VideoStreamPlaybackTheora:: buffer_data() { @@ -940,6 +938,3 @@ String ResourceFormatLoaderVideoStreamTheora::get_resource_type(const String &p_ return "VideoStreamTheora"; return ""; } - -#endif - diff --git a/drivers/theora/video_stream_theora.h b/modules/theora/video_stream_theora.h index 5484815844..04a5c56ee5 100644 --- a/drivers/theora/video_stream_theora.h +++ b/modules/theora/video_stream_theora.h @@ -29,16 +29,15 @@ #ifndef VIDEO_STREAM_THEORA_H #define VIDEO_STREAM_THEORA_H -#ifdef THEORA_ENABLED - -#include "theora/theoradec.h" -#include "vorbis/codec.h" -#include "os/file_access.h" -#include "ring_buffer.h" #include "io/resource_loader.h" -#include "scene/resources/video_stream.h" +#include "os/file_access.h" #include "os/thread.h" #include "os/semaphore.h" +#include "ring_buffer.h" +#include "scene/resources/video_stream.h" + +#include <theora/theoradec.h> +#include <vorbis/codec.h> //#define THEORA_USE_THREAD_STREAMING @@ -197,8 +196,4 @@ public: }; - - -#endif - #endif diff --git a/drivers/theora/yuv2rgb.h b/modules/theora/yuv2rgb.h index 59101bd057..59101bd057 100644 --- a/drivers/theora/yuv2rgb.h +++ b/modules/theora/yuv2rgb.h diff --git a/platform/bb10/detect.py b/platform/bb10/detect.py index 2860b7f090..5aa68b36dc 100644 --- a/platform/bb10/detect.py +++ b/platform/bb10/detect.py @@ -33,8 +33,7 @@ def get_flags(): return [ ('tools', 'no'), - ('theora', 'no'), - + ('module_theora_enabled', 'no'), ] def configure(env): diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index f80c3b4915..fce680b002 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -26,10 +26,10 @@ def get_flags(): return [ ('tools', 'no'), - ('theora', 'no'), ('musepack', 'no'), ('squish', 'no'), ('etc1', 'no'), + ('module_theora_enabled', 'no'), ] diff --git a/platform/x11/detect.py b/platform/x11/detect.py index 98c2d1e8fd..7c22bd97ff 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -73,7 +73,6 @@ def get_flags(): ("openssl", "system"), ('freetype','yes'), # use system freetype ('libpng', 'system'), - #("theora","no"), ] @@ -155,16 +154,24 @@ def configure(env): if (env["enet"] == "system"): env.ParseConfig('pkg-config libenet --cflags --libs') - if (env["libogg"] == "system"): - env.ParseConfig('pkg-config ogg --cflags --libs') + # Sound and video libraries + # Keep the order as it triggers chained dependencies (ogg needed by others, etc.) + + if (env["libtheora"] == "system"): + env["libogg"] = "system" # Needed to link against system libtheora + env["libvorbis"] = "system" # Needed to link against system libtheora + env.ParseConfig('pkg-config theora theoradec --cflags --libs') if (env["libvorbis"] == "system"): env["libogg"] = "system" # Needed to link against system libvorbis - env.ParseConfig('pkg-config vorbis vorbisfile ogg --cflags --libs') + env.ParseConfig('pkg-config vorbis vorbisfile --cflags --libs') if (env["opus"] == "system"): env["libogg"] = "system" # Needed to link against system opus - env.ParseConfig('pkg-config opus opusfile ogg --cflags --libs') + env.ParseConfig('pkg-config opus opusfile --cflags --libs') + + if (env["libogg"] == "system"): + env.ParseConfig('pkg-config ogg --cflags --libs') env.Append(CPPFLAGS=['-DOPENGL_ENABLED']) diff --git a/thirdparty/README.md b/thirdparty/README.md index a8c2c7df95..a567eb177d 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -132,3 +132,16 @@ Files extracted from upstream source: Files extracted from upstream source: - all of them: rg_etc1.{cpp,h} + + +## theora + +- Upstream: https://www.theora.org +- Version: 1.1.1 +- License: BSD-3-Clause + +Files extracted from upstream source: + +- all .c, .h in lib/ +- all .h files in include/theora/ as theora/ +- COPYING and LICENSE diff --git a/drivers/theora/COPYING b/thirdparty/libtheora/COPYING index c8ccce4ffb..c8ccce4ffb 100644 --- a/drivers/theora/COPYING +++ b/thirdparty/libtheora/COPYING diff --git a/drivers/theora/LICENSE b/thirdparty/libtheora/LICENSE index 5e5ec08469..5e5ec08469 100644 --- a/drivers/theora/LICENSE +++ b/thirdparty/libtheora/LICENSE diff --git a/drivers/theora/analyze.c b/thirdparty/libtheora/analyze.c index af01b60dff..af01b60dff 100644 --- a/drivers/theora/analyze.c +++ b/thirdparty/libtheora/analyze.c diff --git a/drivers/theora/apiwrapper.c b/thirdparty/libtheora/apiwrapper.c index dc959b8d13..dc959b8d13 100644 --- a/drivers/theora/apiwrapper.c +++ b/thirdparty/libtheora/apiwrapper.c diff --git a/drivers/theora/apiwrapper.h b/thirdparty/libtheora/apiwrapper.h index 93454d7bda..93454d7bda 100644 --- a/drivers/theora/apiwrapper.h +++ b/thirdparty/libtheora/apiwrapper.h diff --git a/drivers/theora/bitpack.c b/thirdparty/libtheora/bitpack.c index 8195003bad..8195003bad 100644 --- a/drivers/theora/bitpack.c +++ b/thirdparty/libtheora/bitpack.c diff --git a/drivers/theora/bitpack.h b/thirdparty/libtheora/bitpack.h index a020a292f5..a020a292f5 100644 --- a/drivers/theora/bitpack.h +++ b/thirdparty/libtheora/bitpack.h diff --git a/drivers/theora/cpu.c b/thirdparty/libtheora/cpu.c index a863aad7f3..a863aad7f3 100644 --- a/drivers/theora/cpu.c +++ b/thirdparty/libtheora/cpu.c diff --git a/drivers/theora/cpu.h b/thirdparty/libtheora/cpu.h index a43c957a39..a43c957a39 100644 --- a/drivers/theora/cpu.h +++ b/thirdparty/libtheora/cpu.h diff --git a/drivers/theora/dct.h b/thirdparty/libtheora/dct.h index 24ba6f111a..24ba6f111a 100644 --- a/drivers/theora/dct.h +++ b/thirdparty/libtheora/dct.h diff --git a/drivers/theora/decapiwrapper.c b/thirdparty/libtheora/decapiwrapper.c index 12ea475d17..12ea475d17 100644 --- a/drivers/theora/decapiwrapper.c +++ b/thirdparty/libtheora/decapiwrapper.c diff --git a/drivers/theora/decinfo.c b/thirdparty/libtheora/decinfo.c index 845eb1361c..845eb1361c 100644 --- a/drivers/theora/decinfo.c +++ b/thirdparty/libtheora/decinfo.c diff --git a/drivers/theora/decint.h b/thirdparty/libtheora/decint.h index 261b67631a..261b67631a 100644 --- a/drivers/theora/decint.h +++ b/thirdparty/libtheora/decint.h diff --git a/drivers/theora/decode.c b/thirdparty/libtheora/decode.c index 7be66463d8..7be66463d8 100644 --- a/drivers/theora/decode.c +++ b/thirdparty/libtheora/decode.c diff --git a/drivers/theora/dequant.c b/thirdparty/libtheora/dequant.c index e554872d4e..e554872d4e 100644 --- a/drivers/theora/dequant.c +++ b/thirdparty/libtheora/dequant.c diff --git a/drivers/theora/dequant.h b/thirdparty/libtheora/dequant.h index ef25838e35..ef25838e35 100644 --- a/drivers/theora/dequant.h +++ b/thirdparty/libtheora/dequant.h diff --git a/drivers/theora/encapiwrapper.c b/thirdparty/libtheora/encapiwrapper.c index 874f12442d..874f12442d 100644 --- a/drivers/theora/encapiwrapper.c +++ b/thirdparty/libtheora/encapiwrapper.c diff --git a/drivers/theora/encfrag.c b/thirdparty/libtheora/encfrag.c index bb814c8e4a..bb814c8e4a 100644 --- a/drivers/theora/encfrag.c +++ b/thirdparty/libtheora/encfrag.c diff --git a/drivers/theora/encinfo.c b/thirdparty/libtheora/encinfo.c index 83be1dae72..83be1dae72 100644 --- a/drivers/theora/encinfo.c +++ b/thirdparty/libtheora/encinfo.c diff --git a/drivers/theora/encint.h b/thirdparty/libtheora/encint.h index 97897d5a04..97897d5a04 100644 --- a/drivers/theora/encint.h +++ b/thirdparty/libtheora/encint.h diff --git a/drivers/theora/encode.c b/thirdparty/libtheora/encode.c index 0c5ea6a172..0c5ea6a172 100644 --- a/drivers/theora/encode.c +++ b/thirdparty/libtheora/encode.c diff --git a/drivers/theora/encoder_disabled.c b/thirdparty/libtheora/encoder_disabled.c index 0cbf6645ac..0cbf6645ac 100644 --- a/drivers/theora/encoder_disabled.c +++ b/thirdparty/libtheora/encoder_disabled.c diff --git a/drivers/theora/enquant.c b/thirdparty/libtheora/enquant.c index 3372fed221..3372fed221 100644 --- a/drivers/theora/enquant.c +++ b/thirdparty/libtheora/enquant.c diff --git a/drivers/theora/enquant.h b/thirdparty/libtheora/enquant.h index d62df10d1a..d62df10d1a 100644 --- a/drivers/theora/enquant.h +++ b/thirdparty/libtheora/enquant.h diff --git a/drivers/theora/fdct.c b/thirdparty/libtheora/fdct.c index dc3a66f245..dc3a66f245 100644 --- a/drivers/theora/fdct.c +++ b/thirdparty/libtheora/fdct.c diff --git a/drivers/theora/fragment.c b/thirdparty/libtheora/fragment.c index 15372e9d9f..15372e9d9f 100644 --- a/drivers/theora/fragment.c +++ b/thirdparty/libtheora/fragment.c diff --git a/drivers/theora/huffdec.c b/thirdparty/libtheora/huffdec.c index 8cf27f0341..8cf27f0341 100644 --- a/drivers/theora/huffdec.c +++ b/thirdparty/libtheora/huffdec.c diff --git a/drivers/theora/huffdec.h b/thirdparty/libtheora/huffdec.h index d7ffa0e99b..d7ffa0e99b 100644 --- a/drivers/theora/huffdec.h +++ b/thirdparty/libtheora/huffdec.h diff --git a/drivers/theora/huffenc.c b/thirdparty/libtheora/huffenc.c index bf624e0523..bf624e0523 100644 --- a/drivers/theora/huffenc.c +++ b/thirdparty/libtheora/huffenc.c diff --git a/drivers/theora/huffenc.h b/thirdparty/libtheora/huffenc.h index c5a3956f1f..c5a3956f1f 100644 --- a/drivers/theora/huffenc.h +++ b/thirdparty/libtheora/huffenc.h diff --git a/drivers/theora/huffman.h b/thirdparty/libtheora/huffman.h index 36cf7572e5..36cf7572e5 100644 --- a/drivers/theora/huffman.h +++ b/thirdparty/libtheora/huffman.h diff --git a/drivers/theora/idct.c b/thirdparty/libtheora/idct.c index 0e68ac7658..0e68ac7658 100644 --- a/drivers/theora/idct.c +++ b/thirdparty/libtheora/idct.c diff --git a/drivers/theora/info.c b/thirdparty/libtheora/info.c index 6b9762978b..6b9762978b 100644 --- a/drivers/theora/info.c +++ b/thirdparty/libtheora/info.c diff --git a/drivers/theora/internal.c b/thirdparty/libtheora/internal.c index 0fe4f63e72..0fe4f63e72 100644 --- a/drivers/theora/internal.c +++ b/thirdparty/libtheora/internal.c diff --git a/drivers/theora/internal.h b/thirdparty/libtheora/internal.h index d81263e13e..d81263e13e 100644 --- a/drivers/theora/internal.h +++ b/thirdparty/libtheora/internal.h diff --git a/drivers/theora/mathops.c b/thirdparty/libtheora/mathops.c index d3fb909194..d3fb909194 100644 --- a/drivers/theora/mathops.c +++ b/thirdparty/libtheora/mathops.c diff --git a/drivers/theora/mathops.h b/thirdparty/libtheora/mathops.h index efbc5377b0..efbc5377b0 100644 --- a/drivers/theora/mathops.h +++ b/thirdparty/libtheora/mathops.h diff --git a/drivers/theora/mcenc.c b/thirdparty/libtheora/mcenc.c index 797e81f4f9..797e81f4f9 100644 --- a/drivers/theora/mcenc.c +++ b/thirdparty/libtheora/mcenc.c diff --git a/drivers/theora/modedec.h b/thirdparty/libtheora/modedec.h index ea12c64afd..ea12c64afd 100644 --- a/drivers/theora/modedec.h +++ b/thirdparty/libtheora/modedec.h diff --git a/drivers/theora/ocintrin.h b/thirdparty/libtheora/ocintrin.h index d49ebb2159..d49ebb2159 100644 --- a/drivers/theora/ocintrin.h +++ b/thirdparty/libtheora/ocintrin.h diff --git a/drivers/theora/quant.c b/thirdparty/libtheora/quant.c index 8359f5abea..8359f5abea 100644 --- a/drivers/theora/quant.c +++ b/thirdparty/libtheora/quant.c diff --git a/drivers/theora/quant.h b/thirdparty/libtheora/quant.h index 49ce13a65c..49ce13a65c 100644 --- a/drivers/theora/quant.h +++ b/thirdparty/libtheora/quant.h diff --git a/drivers/theora/rate.c b/thirdparty/libtheora/rate.c index 4f43bb2e5f..4f43bb2e5f 100644 --- a/drivers/theora/rate.c +++ b/thirdparty/libtheora/rate.c diff --git a/drivers/theora/state.c b/thirdparty/libtheora/state.c index 42ed33a9a3..42ed33a9a3 100644 --- a/drivers/theora/state.c +++ b/thirdparty/libtheora/state.c diff --git a/drivers/theora/codec.h b/thirdparty/libtheora/theora/codec.h index 5c2669630c..5c2669630c 100644 --- a/drivers/theora/codec.h +++ b/thirdparty/libtheora/theora/codec.h diff --git a/drivers/theora/theora.h b/thirdparty/libtheora/theora/theora.h index af6eb6f380..af6eb6f380 100644 --- a/drivers/theora/theora.h +++ b/thirdparty/libtheora/theora/theora.h diff --git a/drivers/theora/theoradec.h b/thirdparty/libtheora/theora/theoradec.h index b20f0e3a64..b20f0e3a64 100644 --- a/drivers/theora/theoradec.h +++ b/thirdparty/libtheora/theora/theoradec.h diff --git a/drivers/theora/theoraenc.h b/thirdparty/libtheora/theora/theoraenc.h index fdf2ab21e2..fdf2ab21e2 100644 --- a/drivers/theora/theoraenc.h +++ b/thirdparty/libtheora/theora/theoraenc.h diff --git a/drivers/theora/tokenize.c b/thirdparty/libtheora/tokenize.c index 60574c3594..60574c3594 100644 --- a/drivers/theora/tokenize.c +++ b/thirdparty/libtheora/tokenize.c diff --git a/drivers/theora/x86/mmxencfrag.c b/thirdparty/libtheora/x86/mmxencfrag.c index c79ff01fcc..c79ff01fcc 100644 --- a/drivers/theora/x86/mmxencfrag.c +++ b/thirdparty/libtheora/x86/mmxencfrag.c diff --git a/drivers/theora/x86/mmxfdct.c b/thirdparty/libtheora/x86/mmxfdct.c index 211875255e..211875255e 100644 --- a/drivers/theora/x86/mmxfdct.c +++ b/thirdparty/libtheora/x86/mmxfdct.c diff --git a/drivers/theora/x86/mmxfrag.c b/thirdparty/libtheora/x86/mmxfrag.c index 2c732939c3..2c732939c3 100644 --- a/drivers/theora/x86/mmxfrag.c +++ b/thirdparty/libtheora/x86/mmxfrag.c diff --git a/drivers/theora/x86/mmxfrag.h b/thirdparty/libtheora/x86/mmxfrag.h index a398427629..a398427629 100644 --- a/drivers/theora/x86/mmxfrag.h +++ b/thirdparty/libtheora/x86/mmxfrag.h diff --git a/drivers/theora/x86/mmxidct.c b/thirdparty/libtheora/x86/mmxidct.c index 76424e6364..76424e6364 100644 --- a/drivers/theora/x86/mmxidct.c +++ b/thirdparty/libtheora/x86/mmxidct.c diff --git a/drivers/theora/x86/mmxloop.h b/thirdparty/libtheora/x86/mmxloop.h index 2e870c795d..2e870c795d 100644 --- a/drivers/theora/x86/mmxloop.h +++ b/thirdparty/libtheora/x86/mmxloop.h diff --git a/drivers/theora/x86/mmxstate.c b/thirdparty/libtheora/x86/mmxstate.c index 808b0a789b..808b0a789b 100644 --- a/drivers/theora/x86/mmxstate.c +++ b/thirdparty/libtheora/x86/mmxstate.c diff --git a/drivers/theora/x86/sse2fdct.c b/thirdparty/libtheora/x86/sse2fdct.c index 86c17d68b1..86c17d68b1 100644 --- a/drivers/theora/x86/sse2fdct.c +++ b/thirdparty/libtheora/x86/sse2fdct.c diff --git a/drivers/theora/x86/x86enc.c b/thirdparty/libtheora/x86/x86enc.c index 43b7be3ea3..43b7be3ea3 100644 --- a/drivers/theora/x86/x86enc.c +++ b/thirdparty/libtheora/x86/x86enc.c diff --git a/drivers/theora/x86/x86enc.h b/thirdparty/libtheora/x86/x86enc.h index 06c3908bcd..06c3908bcd 100644 --- a/drivers/theora/x86/x86enc.h +++ b/thirdparty/libtheora/x86/x86enc.h diff --git a/drivers/theora/x86/x86int.h b/thirdparty/libtheora/x86/x86int.h index ede724f5aa..ede724f5aa 100644 --- a/drivers/theora/x86/x86int.h +++ b/thirdparty/libtheora/x86/x86int.h diff --git a/drivers/theora/x86/x86state.c b/thirdparty/libtheora/x86/x86state.c index a786bec284..a786bec284 100644 --- a/drivers/theora/x86/x86state.c +++ b/thirdparty/libtheora/x86/x86state.c diff --git a/drivers/theora/x86_vc/mmxencfrag.c b/thirdparty/libtheora/x86_vc/mmxencfrag.c index ac9dacf377..ac9dacf377 100644 --- a/drivers/theora/x86_vc/mmxencfrag.c +++ b/thirdparty/libtheora/x86_vc/mmxencfrag.c diff --git a/drivers/theora/x86_vc/mmxfdct.c b/thirdparty/libtheora/x86_vc/mmxfdct.c index dcf17c9fa7..dcf17c9fa7 100644 --- a/drivers/theora/x86_vc/mmxfdct.c +++ b/thirdparty/libtheora/x86_vc/mmxfdct.c diff --git a/drivers/theora/x86_vc/mmxfrag.c b/thirdparty/libtheora/x86_vc/mmxfrag.c index 4eb2084dc6..4eb2084dc6 100644 --- a/drivers/theora/x86_vc/mmxfrag.c +++ b/thirdparty/libtheora/x86_vc/mmxfrag.c diff --git a/drivers/theora/x86_vc/mmxfrag.h b/thirdparty/libtheora/x86_vc/mmxfrag.h index 45ee93e777..45ee93e777 100644 --- a/drivers/theora/x86_vc/mmxfrag.h +++ b/thirdparty/libtheora/x86_vc/mmxfrag.h diff --git a/drivers/theora/x86_vc/mmxidct.c b/thirdparty/libtheora/x86_vc/mmxidct.c index 8f5ff6803c..8f5ff6803c 100644 --- a/drivers/theora/x86_vc/mmxidct.c +++ b/thirdparty/libtheora/x86_vc/mmxidct.c diff --git a/drivers/theora/x86_vc/mmxloop.h b/thirdparty/libtheora/x86_vc/mmxloop.h index 2561fca2ae..2561fca2ae 100644 --- a/drivers/theora/x86_vc/mmxloop.h +++ b/thirdparty/libtheora/x86_vc/mmxloop.h diff --git a/drivers/theora/x86_vc/mmxstate.c b/thirdparty/libtheora/x86_vc/mmxstate.c index 73bd1981cf..73bd1981cf 100644 --- a/drivers/theora/x86_vc/mmxstate.c +++ b/thirdparty/libtheora/x86_vc/mmxstate.c diff --git a/drivers/theora/x86_vc/x86enc.c b/thirdparty/libtheora/x86_vc/x86enc.c index e1960e1f0b..e1960e1f0b 100644 --- a/drivers/theora/x86_vc/x86enc.c +++ b/thirdparty/libtheora/x86_vc/x86enc.c diff --git a/drivers/theora/x86_vc/x86enc.h b/thirdparty/libtheora/x86_vc/x86enc.h index 581484641f..581484641f 100644 --- a/drivers/theora/x86_vc/x86enc.h +++ b/thirdparty/libtheora/x86_vc/x86enc.h diff --git a/drivers/theora/x86_vc/x86int.h b/thirdparty/libtheora/x86_vc/x86int.h index 4cca485311..4cca485311 100644 --- a/drivers/theora/x86_vc/x86int.h +++ b/thirdparty/libtheora/x86_vc/x86int.h diff --git a/drivers/theora/x86_vc/x86state.c b/thirdparty/libtheora/x86_vc/x86state.c index a786bec284..a786bec284 100644 --- a/drivers/theora/x86_vc/x86state.c +++ b/thirdparty/libtheora/x86_vc/x86state.c |