diff --git a/CMakeLists.txt b/CMakeLists.txt index f4c018c551..2cbcec6489 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,11 +79,6 @@ if(CMAKE_SYSTEM_PROCESSOR) endif() endif() -# the libraries in the ffmpeg/ directory are not compatible with mingw -if(MINGW AND NOT USE_SYSTEM_FFMPEG AND NOT BUILD_BUNDLED_FFMPEG) - set(USE_SYSTEM_FFMPEG ON) -endif() - if(NOT ANDROID AND NOT IOS) if(ARM_DEVICE OR SIMULATOR) set(USING_EGL ON) @@ -198,7 +193,6 @@ option(USE_DISCORD "Build with Discord support" ON) option(USE_MINIUPNPC "Build with miniUPnPc support" ON) option(USE_SYSTEM_SNAPPY "Dynamically link against system snappy" ${USE_SYSTEM_SNAPPY}) option(USE_SYSTEM_FFMPEG "Dynamically link against system FFMPEG" ${USE_SYSTEM_FFMPEG}) -option(BUILD_BUNDLED_FFMPEG "Build bundled ffmpeg module" ${BUILD_BUNDLED_FFMPEG}) option(USE_SYSTEM_FREETYPE "Dynamically link against system freetype" ${USE_SYSTEM_FREETYPE}) option(USE_SYSTEM_LIBCHDR "Dynamically link against system libchdr" ${USE_SYSTEM_LIBCHDR}) option(USE_SYSTEM_LIBZIP "Dynamically link against system libzip" ${USE_SYSTEM_LIBZIP}) @@ -226,6 +220,14 @@ if(USE_SYSTEM_MINIUPNPC) add_compile_definitions(USE_SYSTEM_MINIUPNPC) endif() +# FFmpeg is built from the sources in ffmpeg/ (see ext/ffmpeg-build), unless the system's or one in +# FFMPEG_DIR is asked for. +if(USE_FFMPEG AND NOT USE_SYSTEM_FFMPEG AND NOT FFMPEG_DIR) + set(BUILD_BUNDLED_FFMPEG ON) +else() + set(BUILD_BUNDLED_FFMPEG OFF) +endif() + if(WEBOS) set(USING_X11_VULKAN OFF) set(USING_GLES2 ON) @@ -607,88 +609,27 @@ if(USING_GLES2 OR (USING_EGL AND NOT USING_FBDEV)) find_package(X11) endif() -if(USE_FFMPEG) - if(NOT BUILD_BUNDLED_FFMPEG) - if(NOT FFMPEG_DIR) - if(NOT USE_SYSTEM_FFMPEG) - if(ANDROID) - if(ARMV7) - set(PLATFORM_ARCH "android/armv7") - elseif(ARM64) - set(PLATFORM_ARCH "android/arm64") - elseif(X86_64) - set(PLATFORM_ARCH "android/x86_64") - elseif(X86) - set(PLATFORM_ARCH "android/x86") - endif() - elseif(IOS) - if(IOS_PLATFORM STREQUAL "TVOS") - set(PLATFORM_ARCH "tvos/arm64") - else() - set(PLATFORM_ARCH "ios/universal") - endif() - elseif(MACOSX) - set(PLATFORM_ARCH "macosx/universal") - elseif(LINUX) - if(ARMV7) - set(PLATFORM_ARCH "linux/armv7") - elseif(ARM64) - set(PLATFORM_ARCH "linux/aarch64") - elseif(ARM) - set(PLATFORM_ARCH "linux/arm") - elseif(MIPS) - set(PLATFORM_ARCH "linux/mips32") - elseif(RISCV64) - set(PLATFORM_ARCH "linux/riscv64") - elseif(LOONGARCH64) - set(PLATFORM_ARCH "linux/loongarch64") - elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(PLATFORM_ARCH "linux/x86_64") - elseif(X86) - set(PLATFORM_ARCH "linux/x86") - endif() - elseif(WIN32) - if(X86_64) - set(PLATFORM_ARCH "Windows/x86_64") - elseif(X86) - set(PLATFORM_ARCH "Windows/x86") - endif() - endif() - if(WEBOS AND ARMV7) - set(PLATFORM_ARCH "linux/webos") - endif() - if(PLATFORM_ARCH) - set(FFMPEG_DIR "ffmpeg/${PLATFORM_ARCH}") - else() - message("Couldn't find an internal FFmpeg build, using system FFmpeg instead") - endif() - endif() - endif() - - find_package(FFmpeg REQUIRED avcodec avformat avutil swresample swscale) - # Check if we need to use avcodec_(alloc|free)_frame instead of av_frame_(alloc|free) - # Check if we need to use const AVCodec - set(CMAKE_REQUIRED_INCLUDES ${FFmpeg_INCLUDE_avcodec};${FFmpeg_INCLUDE_avformat}) - set(CMAKE_REQUIRED_LIBRARIES FFmpeg::avcodec;FFmpeg::avformat) - set(CMAKE_REQUIRED_FLAGS "-pedantic -Wall -Werror -Wno-unused-variable") - check_cxx_source_compiles("extern \"C\" { - #include - #include - } - static AVCodecContext *s_codec_context = NULL; - int main() { - const AVCodec *codec = avcodec_find_encoder(s_codec_context->codec_id); - return 0; - } - " HAVE_LIBAVCODEC_CONST_AVCODEC FAIL_REGEX "invalid conversion") - - # Check if we need to use avcodec_alloc_context3 instead of stream->codec - # Check if we need to use av_frame_get_buffer instead of avcodec_default_get_buffer - endif() - if(BUILD_BUNDLED_FFMPEG) - set(CMAKE_REQUIRED_FLAGS "-pedantic -Wall -Werror -Wno-unused-variable") - endif() -endif(USE_FFMPEG) +if(USE_FFMPEG AND NOT BUILD_BUNDLED_FFMPEG) + find_package(FFmpeg REQUIRED avcodec avformat avutil swresample swscale) + # Check if we need to use avcodec_(alloc|free)_frame instead of av_frame_(alloc|free) + # Check if we need to use const AVCodec + set(CMAKE_REQUIRED_INCLUDES ${FFmpeg_INCLUDE_avcodec};${FFmpeg_INCLUDE_avformat}) + set(CMAKE_REQUIRED_LIBRARIES FFmpeg::avcodec;FFmpeg::avformat) + set(CMAKE_REQUIRED_FLAGS "-pedantic -Wall -Werror -Wno-unused-variable") + check_cxx_source_compiles("extern \"C\" { + #include + #include + } + static AVCodecContext *s_codec_context = NULL; + int main() { + const AVCodec *codec = avcodec_find_encoder(s_codec_context->codec_id); + return 0; + } + " HAVE_LIBAVCODEC_CONST_AVCODEC FAIL_REGEX "invalid conversion") + + # Check if we need to use avcodec_alloc_context3 instead of stream->codec + # Check if we need to use av_frame_get_buffer instead of avcodec_default_get_buffer +endif() find_package(ZLIB) if(ZLIB_FOUND AND NOT ANDROID) diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index c5d74a0f96..56423ab636 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -763,14 +763,7 @@ if(FFmpeg_FOUND) elseif(BUILD_BUNDLED_FFMPEG) target_compile_definitions(Core PRIVATE USE_FFMPEG=1) set_target_properties(Core PROPERTIES NO_SYSTEM_FROM_IMPORTED true) - target_link_libraries(Core - avcodec - avformat - avutil - swresample - swscale - ${ZLIB_LIBRARY} - ) + target_link_libraries(Core ffmpeg) endif() # Discord integration diff --git a/ext/ffmpeg-build/CMakeLists.txt b/ext/ffmpeg-build/CMakeLists.txt index de785841a0..33862aff5c 100644 --- a/ext/ffmpeg-build/CMakeLists.txt +++ b/ext/ffmpeg-build/CMakeLists.txt @@ -1,109 +1,52 @@ cmake_minimum_required (VERSION 3.13.0) -project (ffmpeg) +project (ffmpeg C) -include(FindPkgConfig) +# Builds the parts of FFmpeg PPSSPP uses as one static library, from the source tree in ffmpeg/. +# There's no configure step: config.h is the one it would write, and sources.mk lists the files. + +set(FFMPEG_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../ffmpeg) + +# FFmpeg leaves calls to disabled components in if (CONFIG_...) blocks for the compiler to drop, +# which MSVC only does when optimizing, so it's optimized in every configuration. These are +# directory variables, so only the targets here get them. +if(MSVC) + foreach(config DEBUG RELWITHDEBINFO) + string(REGEX REPLACE "/RTC[1csu]+" "" CMAKE_C_FLAGS_${config} "${CMAKE_C_FLAGS_${config}}") + string(REPLACE "/Od" "/O2" CMAKE_C_FLAGS_${config} "${CMAKE_C_FLAGS_${config}}") + string(REPLACE "/Ob0" "" CMAKE_C_FLAGS_${config} "${CMAKE_C_FLAGS_${config}}") + string(REPLACE "/Ob1" "" CMAKE_C_FLAGS_${config} "${CMAKE_C_FLAGS_${config}}") + endforeach() +endif() + +file(READ sources.mk FFMPEG_SOURCES_MK) +string(REGEX MATCHALL "lib[a-z]+/[A-Za-z0-9_/]+\\.c" FFMPEG_SOURCES "${FFMPEG_SOURCES_MK}") +list(TRANSFORM FFMPEG_SOURCES PREPEND ${FFMPEG_SRC_DIR}/) +# Reconfigure when the list changes. +set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS sources.mk) + +add_library(ffmpeg STATIC ${FFMPEG_SOURCES}) +set_target_properties(ffmpeg PROPERTIES POSITION_INDEPENDENT_CODE TRUE) + +# config.h and ffversion.h are only for FFmpeg itself, avconfig.h (in include/) also for its users. +# Both come before the source tree, which may have the ones an old configure run wrote. +target_include_directories(ffmpeg PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${FFMPEG_SRC_DIR}) +target_include_directories(ffmpeg BEFORE PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) +target_compile_definitions(ffmpeg PRIVATE HAVE_AV_CONFIG_H _ISOC99_SOURCE _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE) -# Threads are required find_package(Threads REQUIRED) - -set(SRC_DIR ../../ffmpeg) -set(LIBAVCODEC_SRC_DIR ${SRC_DIR}/libavcodec) -set(LIBAVFORMAT_SRC_DIR ${SRC_DIR}/libavformat) -set(LIBAVUTIL_SRC_DIR ${SRC_DIR}/libavutil) -set(LIBSWRESAMPLE_SRC_DIR ${SRC_DIR}/libswresample) -set(LIBSWSCALE_SRC_DIR ${SRC_DIR}/libswscale) - -# Check for exotic cross-compiling configurations such as MinGW sysroot with clang compiler -if(WIN32 AND NOT MSVC) - set(MINGW_SYSROOT TRUE) -elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_C_COMPILER_TARGET MATCHES "mingw") - set(MINGW_SYSROOT TRUE) +target_link_libraries(ffmpeg PRIVATE Threads::Threads) +if(NOT MSVC) + target_link_libraries(ffmpeg PRIVATE m) endif() -# Additional lib and include dirs for configure checks -set(ADDL_INCLUDES "") -set(ADDL_LIB_DIRS "") +if(MSVC) + target_compile_definitions(ffmpeg PRIVATE _USE_MATH_DEFINES _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS) +endif() -# For cross-compiling, let CMake handle the sysroot via search paths (although toolchains probably already do this) -if(CMAKE_CROSSCOMPILING) - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) +# FFmpeg's code predates a lot of what modern compilers warn about. +if(MSVC AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang") + target_compile_options(ffmpeg PRIVATE /W0) else() - if(NOT CMAKE_OSX_SYSROOT AND UNIX AND NOT APPLE) - list(APPEND ADDL_INCLUDES "/usr/local/include") - list(APPEND ADDL_LIB_DIRS "/usr/local/lib") - endif() + # Except calls to undeclared functions, which mean a wrong HAVE_ in config.h. + target_compile_options(ffmpeg PRIVATE -w -Werror=implicit-function-declaration) endif() - -# Silence warnings due to design philosophy differences between ffmpeg and modern compilers -# Taken primarily from meson-ports/ffmpeg's meson.build script at -# https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/-/blob/meson-4.4/meson.build?ref_type=heads -if (MSVC AND NOT (CMAKE_C_COMPILER_ID STREQUAL "Clang")) - add_compile_options(/wd4005 /wd4018 /wd4146 /wd4244 /wd4305 /wd4554 /wd4114 /wd4028 /wd4090 /wd4133) -else() # Compiler options for both clang and gcc (includes clang-cl in MSVC mode) - add_compile_options(-D_LARGEFILE_SOURCE -DPIC -Wno-parentheses -Wno-pointer-sign -Wno-switch -Wno-format-truncation -Wno-deprecated-declarations -Wno-unused-function -Wno-uninitialized -Wno-ignored-qualifiers -Wno-unused-variable -Wno-bool-operation -Wno-incompatible-pointer-types -Wno-address -Wno-empty-body) -endif() -if (CMAKE_C_COMPILER_ID STREQUAL "Clang") # additional options not recognized by gcc - add_compile_options(-Wno-string-plus-int -Wno-implicit-const-int-float-conversion) -endif() - -# Run an abbreviated version of ffmpeg's configure script's checks required to generate usable config.h, -# libavutil/avconfig.h, and libavutil/ffversion.h headers with hardcoded minimal features required by PPSSPP -include(configure_checks.cmake) - -# libavcodec -include(libs/libavcodec.cmake) -add_library(avcodec STATIC ${LIBAVCODEC_SOURCE_FILES}) -set_target_properties(avcodec PROPERTIES POSITION_INDEPENDENT_CODE TRUE) # Enable PIC -target_precompile_headers(avcodec PRIVATE ${LIBAVUTIL_SRC_DIR}/internal.h ${LIBAVUTIL_SRC_DIR}/intmath.h) -target_link_libraries(avcodec) -target_include_directories(avcodec PRIVATE ${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -target_include_directories(avcodec INTERFACE ${LIBAVCODEC_HEADERS}) # expose libavcodec headers to PPSSPP build -set(LIBAVCODEC_LIBRARY avcodec) - -# libavformat -include(libs/libavformat.cmake) -add_library(avformat STATIC ${LIBAVFORMAT_SOURCE_FILES}) -set_target_properties(avformat PROPERTIES POSITION_INDEPENDENT_CODE TRUE) # Enable PIC -target_precompile_headers(avformat PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/config.h ${LIBAVUTIL_SRC_DIR}/internal.h) -target_link_libraries(avformat PUBLIC avcodec) -target_include_directories(avformat PRIVATE ${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -target_include_directories(avformat INTERFACE ${LIBAVFORMAT_HEADERS}) -set(LIBAVFORMAT_LIBRARY avformat) - -# libavutil -include(libs/libavutil.cmake) -add_library(avutil STATIC ${LIBAVUTIL_SOURCE_FILES}) -target_precompile_headers(avutil PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}/libavutil/ffversion.h - ${CMAKE_CURRENT_BINARY_DIR}/libavutil/avconfig.h - ${LIBAVUTIL_SRC_DIR}/internal.h -) -set_target_properties(avutil PROPERTIES POSITION_INDEPENDENT_CODE TRUE) # Enable PIC -target_link_libraries(avutil) -target_include_directories(avutil PRIVATE ${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -target_include_directories(avutil INTERFACE ${LIBAVUTIL_HEADERS}) -set(LIBAVUTIL_LIBRARY avutil) - -# libswresample -include(libs/libswresample.cmake) -add_library(swresample STATIC ${LIBSWRESAMPLE_SOURCE_FILES}) -set_target_properties(swresample PROPERTIES POSITION_INDEPENDENT_CODE TRUE) # Enable PIC -target_precompile_headers(swresample PRIVATE ${LIBAVUTIL_SRC_DIR}/cpu.h ${LIBAVUTIL_SRC_DIR}/internal.h) -target_link_libraries(swresample) -target_include_directories(swresample PUBLIC ${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -target_include_directories(swresample INTERFACE ${LIBSWRESAMPLE_HEADERS}) -set(LIBSWRESAMPLE_LIBRARY swresample) - -# libswscale -include(libs/libswscale.cmake) -add_library(swscale STATIC ${LIBSWSCALE_SOURCE_FILES}) -set_target_properties(swscale PROPERTIES POSITION_INDEPENDENT_CODE TRUE) # Enable PIC -target_precompile_headers(swscale PRIVATE ${LIBAVUTIL_SRC_DIR}/internal.h) -target_link_libraries(swscale) -target_include_directories(swscale PRIVATE ${SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -target_include_directories(swscale INTERFACE ${LIBSWSCALE_HEADERS}) -set(LIBSWSCALE_LIBRARY swscale) - diff --git a/ext/ffmpeg-build/config.h.in b/ext/ffmpeg-build/config.h similarity index 77% rename from ext/ffmpeg-build/config.h.in rename to ext/ffmpeg-build/config.h index e30b3608c0..903f9b5dfb 100644 --- a/ext/ffmpeg-build/config.h.in +++ b/ext/ffmpeg-build/config.h @@ -1,30 +1,91 @@ -/* Generated by cmake with numerous options deliberately disabled and designed only to build ppsspp-ffmpeg module */ +/* Hand-maintained config.h for building FFmpeg as part of PPSSPP (ext/ffmpeg-build), in place + * of the one FFmpeg's configure would write. All assembly and arch-specific code is off, as in the + * --disable-asm builds of the old prebuilt libraries, and only the platform has to be told apart, + * which the FF_PPSSPP_ switches below do. Components are enabled with the CONFIG_*_DECODER etc. + * lines, and each needs its sources in sources.mk. include/libavutil/avconfig.h and + * libavutil/ffversion.h stand in for the other two files configure writes. */ #ifndef FFMPEG_CONFIG_H #define FFMPEG_CONFIG_H -#define FFMPEG_CONFIGURATION "this is where configure options are normally listed, although technically we don't need them and ffmpeg builds just fine in a pure cmake environment without them" -#define FFMPEG_LICENSE "GPL version 2 or later" + +#if defined(_WIN32) +#include +#define FF_PPSSPP_WIN32 1 +#define FF_PPSSPP_POSIX 0 +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#define FF_PPSSPP_WINRT 0 +#else +#define FF_PPSSPP_WINRT 1 +#endif +#define FF_PPSSPP_WIN32_DESKTOP (!FF_PPSSPP_WINRT) +#else +#define FF_PPSSPP_WIN32 0 +#define FF_PPSSPP_POSIX 1 +#define FF_PPSSPP_WINRT 0 +#define FF_PPSSPP_WIN32_DESKTOP 0 +#endif + +#if defined(__GNUC__) || defined(__clang__) && !defined(_MSC_VER) +#define FF_PPSSPP_GNUC 1 +#else +#define FF_PPSSPP_GNUC 0 +#endif + +#if defined(_MSC_VER) +#define FF_PPSSPP_MSVC 1 +#else +#define FF_PPSSPP_MSVC 0 +#endif + +#define FF_PPSSPP_WIN32_NOT_GNUC (FF_PPSSPP_WIN32 && !FF_PPSSPP_GNUC) + +#if defined(__linux__) +#define FF_PPSSPP_LINUX 1 +#else +#define FF_PPSSPP_LINUX 0 +#endif + +#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) +#define FF_PPSSPP_BSD 1 +#else +#define FF_PPSSPP_BSD 0 +#endif + +/* The BSDs' malloc.h is missing or an #error. */ +#if defined(_WIN32) || defined(__linux__) +#define FF_PPSSPP_MALLOC_H 1 +#else +#define FF_PPSSPP_MALLOC_H 0 +#endif + +#if defined(__APPLE__) || defined(_WIN32) && defined(_M_IX86) +#define FF_PPSSPP_EXTERN_PREFIX "_" +#else +#define FF_PPSSPP_EXTERN_PREFIX "" +#endif +#define FFMPEG_CONFIGURATION "ppsspp ext/ffmpeg-build" +#define FFMPEG_LICENSE "LGPL version 2.1 or later" #define CONFIG_THIS_YEAR 2016 -#define FFMPEG_DATADIR @CMAKE_CURRENT_BINARY_DIR@ -#define AVCONV_DATADIR @CMAKE_CURRENT_BINARY_DIR@ -#define CC_IDENT @CC_IDENT@ -#define av_restrict @_RESTRICT@ -#define EXTERN_PREFIX @extern_prefix@ -#define EXTERN_ASM @extern_asm@ -#define BUILDSUF @build_suffix@ -#define SLIBSUF @SLIBSUF@ +#define FFMPEG_DATADIR "." +#define AVCONV_DATADIR "." +#define CC_IDENT "unknown" +#define av_restrict __restrict +#define EXTERN_PREFIX FF_PPSSPP_EXTERN_PREFIX +#define EXTERN_ASM +#define BUILDSUF "" +#define SLIBSUF "" #define HAVE_MMX2 HAVE_MMXEXT -#define SWS_MAX_FILTER_SIZE @sws_max_filter_size@ -#define ARCH_AARCH64 @ARCH_AARCH64@ +#define SWS_MAX_FILTER_SIZE 256 +#define ARCH_AARCH64 0 #define ARCH_ALPHA 0 -#define ARCH_ARM @ARCH_ARM@ +#define ARCH_ARM 0 #define ARCH_AVR32 0 #define ARCH_AVR32_AP 0 #define ARCH_AVR32_UC 0 #define ARCH_BFIN 0 #define ARCH_IA64 0 #define ARCH_M68K 0 -#define ARCH_MIPS @ARCH_MIPS@ -#define ARCH_MIPS64 @ARCH_MIPS64@ +#define ARCH_MIPS 0 +#define ARCH_MIPS64 0 #define ARCH_PARISC 0 #define ARCH_PPC 0 #define ARCH_PPC64 0 @@ -35,340 +96,340 @@ #define ARCH_TILEGX 0 #define ARCH_TILEPRO 0 #define ARCH_TOMI 0 -#define ARCH_X86 @ARCH_X86@ -#define ARCH_X86_32 @ARCH_X86_32@ -#define ARCH_X86_64 @ARCH_X86_64@ -#define HAVE_ARMV5TE @HAVE_ARMV5TE@ -#define HAVE_ARMV6 @HAVE_ARMV6@ -#define HAVE_ARMV6T2 @HAVE_ARMV6T2@ -#define HAVE_ARMV8 @HAVE_ARMV8@ -#define HAVE_NEON @HAVE_NEON@ -#define HAVE_VFP @HAVE_VFP@ -#define HAVE_VFPV3 @HAVE_VFPV3@ -#define HAVE_SETEND @HAVE_SETEND@ +#define ARCH_X86 0 +#define ARCH_X86_32 0 +#define ARCH_X86_64 0 +#define HAVE_ARMV5TE 0 +#define HAVE_ARMV6 0 +#define HAVE_ARMV6T2 0 +#define HAVE_ARMV8 0 +#define HAVE_NEON 0 +#define HAVE_VFP 0 +#define HAVE_VFPV3 0 +#define HAVE_SETEND 0 #define HAVE_ALTIVEC 0 #define HAVE_DCBZL 0 #define HAVE_LDBRX 0 #define HAVE_POWER8 0 #define HAVE_PPC4XX 0 #define HAVE_VSX 0 -#define HAVE_AESNI @HAVE_AESNI@ -#define HAVE_AMD3DNOW @HAVE_AMD3DNOW@ -#define HAVE_AMD3DNOWEXT @HAVE_AMD3DNOWEXT@ -#define HAVE_AVX @HAVE_AVX@ -#define HAVE_AVX2 @HAVE_AVX2@ -#define HAVE_FMA3 @HAVE_FMA3@ -#define HAVE_FMA4 @HAVE_FMA4@ -#define HAVE_MMX @HAVE_MMX@ -#define HAVE_MMXEXT @HAVE_MMXEXT@ -#define HAVE_SSE @HAVE_SSE@ -#define HAVE_SSE2 @HAVE_SSE2@ -#define HAVE_SSE3 @HAVE_SSE3@ -#define HAVE_SSE4 @HAVE_SSE4@ -#define HAVE_SSE42 @HAVE_SSE42@ -#define HAVE_SSSE3 @HAVE_SSSE3@ -#define HAVE_XOP @HAVE_XOP@ -#define HAVE_CPUNOP @HAVE_CPUNOP@ -#define HAVE_I686 @HAVE_I686@ -#define HAVE_MIPSFPU @HAVE_MIPSFPU@ -#define HAVE_MIPS32R2 @HAVE_MIPS32R2@ -#define HAVE_MIPS32R5 @HAVE_MIPS32R5@ -#define HAVE_MIPS64R2 @HAVE_MIPS64R2@ -#define HAVE_MIPS32R6 @HAVE_MIPS32R6@ -#define HAVE_MIPS64R6 @HAVE_MIPS64R6@ -#define HAVE_MIPSDSP @HAVE_MIPSDSP@ -#define HAVE_MIPSDSPR2 @HAVE_MIPSDSPR2@ -#define HAVE_MSA @HAVE_MSA@ -#define HAVE_LOONGSON2 @HAVE_LOONGSON2@ -#define HAVE_LOONGSON3 @HAVE_LOONGSON3@ -#define HAVE_MMI @HAVE_MMI@ -#define HAVE_ARMV5TE_EXTERNAL @HAVE_ARMV5TE_EXTERNAL@ -#define HAVE_ARMV6_EXTERNAL @HAVE_ARMV6_EXTERNAL@ -#define HAVE_ARMV6T2_EXTERNAL @HAVE_ARMV6T2_EXTERNAL@ -#define HAVE_ARMV8_EXTERNAL @HAVE_ARMV8_EXTERNAL@ -#define HAVE_NEON_EXTERNAL @HAVE_NEON_EXTERNAL@ -#define HAVE_VFP_EXTERNAL @HAVE_VFP_EXTERNAL@ -#define HAVE_VFPV3_EXTERNAL @HAVE_VFPV3_EXTERNAL@ -#define HAVE_SETEND_EXTERNAL @HAVE_SETEND_EXTERNAL@ +#define HAVE_AESNI 0 +#define HAVE_AMD3DNOW 0 +#define HAVE_AMD3DNOWEXT 0 +#define HAVE_AVX 0 +#define HAVE_AVX2 0 +#define HAVE_FMA3 0 +#define HAVE_FMA4 0 +#define HAVE_MMX 0 +#define HAVE_MMXEXT 0 +#define HAVE_SSE 0 +#define HAVE_SSE2 0 +#define HAVE_SSE3 0 +#define HAVE_SSE4 0 +#define HAVE_SSE42 0 +#define HAVE_SSSE3 0 +#define HAVE_XOP 0 +#define HAVE_CPUNOP 0 +#define HAVE_I686 0 +#define HAVE_MIPSFPU 0 +#define HAVE_MIPS32R2 0 +#define HAVE_MIPS32R5 0 +#define HAVE_MIPS64R2 0 +#define HAVE_MIPS32R6 0 +#define HAVE_MIPS64R6 0 +#define HAVE_MIPSDSP 0 +#define HAVE_MIPSDSPR2 0 +#define HAVE_MSA 0 +#define HAVE_LOONGSON2 0 +#define HAVE_LOONGSON3 0 +#define HAVE_MMI 0 +#define HAVE_ARMV5TE_EXTERNAL 0 +#define HAVE_ARMV6_EXTERNAL 0 +#define HAVE_ARMV6T2_EXTERNAL 0 +#define HAVE_ARMV8_EXTERNAL 0 +#define HAVE_NEON_EXTERNAL 0 +#define HAVE_VFP_EXTERNAL 0 +#define HAVE_VFPV3_EXTERNAL 0 +#define HAVE_SETEND_EXTERNAL 0 #define HAVE_ALTIVEC_EXTERNAL 0 #define HAVE_DCBZL_EXTERNAL 0 #define HAVE_LDBRX_EXTERNAL 0 #define HAVE_POWER8_EXTERNAL 0 #define HAVE_PPC4XX_EXTERNAL 0 #define HAVE_VSX_EXTERNAL 0 -#define HAVE_AESNI_EXTERNAL @HAVE_AESNI_EXTERNAL@ -#define HAVE_AMD3DNOW_EXTERNAL @HAVE_AMD3DNOW_EXTERNAL@ -#define HAVE_AMD3DNOWEXT_EXTERNAL @HAVE_AMD3DNOWEXT_EXTERNAL@ -#define HAVE_AVX_EXTERNAL @HAVE_AVX_EXTERNAL@ -#define HAVE_AVX2_EXTERNAL @HAVE_AVX2_EXTERNAL@ -#define HAVE_FMA3_EXTERNAL @HAVE_FMA3_EXTERNAL@ -#define HAVE_FMA4_EXTERNAL @HAVE_FMA4_EXTERNAL@ -#define HAVE_MMX_EXTERNAL @HAVE_MMX_EXTERNAL@ -#define HAVE_MMXEXT_EXTERNAL @HAVE_MMXEXT_EXTERNAL@ -#define HAVE_SSE_EXTERNAL @HAVE_SSE_EXTERNAL@ -#define HAVE_SSE2_EXTERNAL @HAVE_SSE2_EXTERNAL@ -#define HAVE_SSE3_EXTERNAL @HAVE_SSE3_EXTERNAL@ -#define HAVE_SSE4_EXTERNAL @HAVE_SSE4_EXTERNAL@ -#define HAVE_SSE42_EXTERNAL @HAVE_SSE42_EXTERNAL@ -#define HAVE_SSSE3_EXTERNAL @HAVE_SSSE3_EXTERNAL@ -#define HAVE_XOP_EXTERNAL @HAVE_XOP_EXTERNAL@ -#define HAVE_CPUNOP_EXTERNAL @HAVE_CPUNOP_EXTERNAL@ -#define HAVE_I686_EXTERNAL @HAVE_I686_EXTERNAL@ -#define HAVE_MIPSFPU_EXTERNAL @HAVE_MIPSFPU_EXTERNAL@ -#define HAVE_MIPS32R2_EXTERNAL @HAVE_MIPS32R2_EXTERNAL@ -#define HAVE_MIPS32R5_EXTERNAL @HAVE_MIPS32R5_EXTERNAL@ -#define HAVE_MIPS64R2_EXTERNAL @HAVE_MIPS64R2_EXTERNAL@ -#define HAVE_MIPS32R6_EXTERNAL @HAVE_MIPS32R6_EXTERNAL@ -#define HAVE_MIPS64R6_EXTERNAL @HAVE_MIPS64R6_EXTERNAL@ -#define HAVE_MIPSDSP_EXTERNAL @HAVE_MIPSDSP_EXTERNAL@ -#define HAVE_MIPSDSPR2_EXTERNAL @HAVE_MIPSDSPR2_EXTERNAL@ -#define HAVE_MSA_EXTERNAL @HAVE_MSA_EXTERNAL@ -#define HAVE_LOONGSON2_EXTERNAL @HAVE_LOONGSON2_EXTERNAL@ -#define HAVE_LOONGSON3_EXTERNAL @HAVE_LOONGSON3_EXTERNAL@ -#define HAVE_MMI_EXTERNAL @HAVE_MMI_EXTERNAL@ +#define HAVE_AESNI_EXTERNAL 0 +#define HAVE_AMD3DNOW_EXTERNAL 0 +#define HAVE_AMD3DNOWEXT_EXTERNAL 0 +#define HAVE_AVX_EXTERNAL 0 +#define HAVE_AVX2_EXTERNAL 0 +#define HAVE_FMA3_EXTERNAL 0 +#define HAVE_FMA4_EXTERNAL 0 +#define HAVE_MMX_EXTERNAL 0 +#define HAVE_MMXEXT_EXTERNAL 0 +#define HAVE_SSE_EXTERNAL 0 +#define HAVE_SSE2_EXTERNAL 0 +#define HAVE_SSE3_EXTERNAL 0 +#define HAVE_SSE4_EXTERNAL 0 +#define HAVE_SSE42_EXTERNAL 0 +#define HAVE_SSSE3_EXTERNAL 0 +#define HAVE_XOP_EXTERNAL 0 +#define HAVE_CPUNOP_EXTERNAL 0 +#define HAVE_I686_EXTERNAL 0 +#define HAVE_MIPSFPU_EXTERNAL 0 +#define HAVE_MIPS32R2_EXTERNAL 0 +#define HAVE_MIPS32R5_EXTERNAL 0 +#define HAVE_MIPS64R2_EXTERNAL 0 +#define HAVE_MIPS32R6_EXTERNAL 0 +#define HAVE_MIPS64R6_EXTERNAL 0 +#define HAVE_MIPSDSP_EXTERNAL 0 +#define HAVE_MIPSDSPR2_EXTERNAL 0 +#define HAVE_MSA_EXTERNAL 0 +#define HAVE_LOONGSON2_EXTERNAL 0 +#define HAVE_LOONGSON3_EXTERNAL 0 +#define HAVE_MMI_EXTERNAL 0 #define HAVE_ARMV5TE_INLINE 0 -#define HAVE_ARMV6_INLINE @HAVE_ARMV6_INLINE@ -#define HAVE_ARMV6T2_INLINE @HAVE_ARMV6T2_INLINE@ -#define HAVE_ARMV8_INLINE @HAVE_ARMV8_INLINE@ -#define HAVE_NEON_INLINE @HAVE_NEON_INLINE@ -#define HAVE_VFP_INLINE @HAVE_VFP_INLINE@ -#define HAVE_VFPV3_INLINE @HAVE_VFPV3_INLINE@ -#define HAVE_SETEND_INLINE @HAVE_SETEND_INLINE@ +#define HAVE_ARMV6_INLINE 0 +#define HAVE_ARMV6T2_INLINE 0 +#define HAVE_ARMV8_INLINE 0 +#define HAVE_NEON_INLINE 0 +#define HAVE_VFP_INLINE 0 +#define HAVE_VFPV3_INLINE 0 +#define HAVE_SETEND_INLINE 0 #define HAVE_ALTIVEC_INLINE 0 #define HAVE_DCBZL_INLINE 0 #define HAVE_LDBRX_INLINE 0 #define HAVE_POWER8_INLINE 0 #define HAVE_PPC4XX_INLINE 0 #define HAVE_VSX_INLINE 0 -#define HAVE_AESNI_INLINE @HAVE_AESNI_INLINE@ -#define HAVE_AMD3DNOW_INLINE @HAVE_AMD3DNOW_INLINE@ -#define HAVE_AMD3DNOWEXT_INLINE @HAVE_AMD3DNOWEXT_INLINE@ -#define HAVE_AVX_INLINE @HAVE_AVX_INLINE@ -#define HAVE_AVX2_INLINE @HAVE_AVX2_INLINE@ -#define HAVE_FMA3_INLINE @HAVE_FMA3_INLINE@ -#define HAVE_FMA4_INLINE @HAVE_FMA4_INLINE@ -#define HAVE_MMX_INLINE @HAVE_MMX_INLINE@ -#define HAVE_MMXEXT_INLINE @HAVE_MMXEXT_INLINE@ -#define HAVE_SSE_INLINE @HAVE_SSE_INLINE@ -#define HAVE_SSE2_INLINE @HAVE_SSE2_INLINE@ -#define HAVE_SSE3_INLINE @HAVE_SSE3_INLINE@ -#define HAVE_SSE4_INLINE @HAVE_SSE4_INLINE@ -#define HAVE_SSE42_INLINE @HAVE_SSE42_INLINE@ -#define HAVE_SSSE3_INLINE @HAVE_SSSE3_INLINE@ -#define HAVE_XOP_INLINE @HAVE_XOP_INLINE@ -#define HAVE_CPUNOP_INLINE @HAVE_CPUNOP_INLINE@ -#define HAVE_I686_INLINE @HAVE_I686_INLINE@ -#define HAVE_MIPSFPU_INLINE @HAVE_MIPSFPU_INLINE@ -#define HAVE_MIPS32R2_INLINE @HAVE_MIPS32R2_INLINE@ -#define HAVE_MIPS32R5_INLINE @HAVE_MIPS32R5_INLINE@ -#define HAVE_MIPS64R2_INLINE @HAVE_MIPS64R2_INLINE@ -#define HAVE_MIPS32R6_INLINE @HAVE_MIPS32R6_INLINE@ -#define HAVE_MIPS64R6_INLINE @HAVE_MIPS64R6_INLINE@ -#define HAVE_MIPSDSP_INLINE @HAVE_MIPSDSP_INLINE@ -#define HAVE_MIPSDSPR2_INLINE @HAVE_MIPSDSPR2_INLINE@ -#define HAVE_MSA_INLINE @HAVE_MSA_INLINE@ -#define HAVE_LOONGSON2_INLINE @HAVE_LOONGSON2_INLINE@ -#define HAVE_LOONGSON3_INLINE @HAVE_LOONGSON3_INLINE@ -#define HAVE_MMI_INLINE @HAVE_MMI_INLINE@ -#define HAVE_ALIGNED_STACK @HAVE_ALIGNED_STACK@ -#define HAVE_FAST_64BIT @HAVE_FAST_64BIT@ -#define HAVE_FAST_CLZ @HAVE_FAST_CLZ@ -#define HAVE_FAST_CMOV @HAVE_FAST_CMOV@ -#define HAVE_LOCAL_ALIGNED_8 @HAVE_LOCAL_ALIGNED_8@ -#define HAVE_LOCAL_ALIGNED_16 @HAVE_LOCAL_ALIGNED_16@ -#define HAVE_LOCAL_ALIGNED_32 @HAVE_LOCAL_ALIGNED_32@ -#define HAVE_SIMD_ALIGN_16 @HAVE_SIMD_ALIGN_16@ -#define HAVE_ATOMICS_GCC @HAVE_ATOMICS_GCC@ -#define HAVE_ATOMICS_SUNCC @HAVE_ATOMICS_SUNCC@ -#define HAVE_ATOMICS_WIN32 @HAVE_ATOMICS_WIN32@ -#define HAVE_ATOMIC_CAS_PTR @HAVE_ATOMIC_CAS_PTR@ -#define HAVE_ATOMIC_COMPARE_EXCHANGE @HAVE_ATOMIC_COMPARE_EXCHANGE@ -#define HAVE_MACHINE_RW_BARRIER @HAVE_MACHINE_RW_BARRIER@ -#define HAVE_MEMORYBARRIER @HAVE_MEMORYBARRIER@ -#define HAVE_MM_EMPTY @HAVE_MM_EMPTY@ -#define HAVE_RDTSC @HAVE_RDTSC@ -#define HAVE_SARESTART @HAVE_SARESTART@ -#define HAVE_SYNC_VAL_COMPARE_AND_SWAP @HAVE_SYNC_VAL_COMPARE_AND_SWAP@ -#define HAVE_CABS @HAVE_CABS@ -#define HAVE_CEXP @HAVE_CEXP@ -#define HAVE_INLINE_ASM @HAVE_INLINE_ASM@ -#define HAVE_SYMVER @HAVE_SYMVER@ -#define HAVE_YASM @HAVE_YASM@ +#define HAVE_AESNI_INLINE 0 +#define HAVE_AMD3DNOW_INLINE 0 +#define HAVE_AMD3DNOWEXT_INLINE 0 +#define HAVE_AVX_INLINE 0 +#define HAVE_AVX2_INLINE 0 +#define HAVE_FMA3_INLINE 0 +#define HAVE_FMA4_INLINE 0 +#define HAVE_MMX_INLINE 0 +#define HAVE_MMXEXT_INLINE 0 +#define HAVE_SSE_INLINE 0 +#define HAVE_SSE2_INLINE 0 +#define HAVE_SSE3_INLINE 0 +#define HAVE_SSE4_INLINE 0 +#define HAVE_SSE42_INLINE 0 +#define HAVE_SSSE3_INLINE 0 +#define HAVE_XOP_INLINE 0 +#define HAVE_CPUNOP_INLINE 0 +#define HAVE_I686_INLINE 0 +#define HAVE_MIPSFPU_INLINE 0 +#define HAVE_MIPS32R2_INLINE 0 +#define HAVE_MIPS32R5_INLINE 0 +#define HAVE_MIPS64R2_INLINE 0 +#define HAVE_MIPS32R6_INLINE 0 +#define HAVE_MIPS64R6_INLINE 0 +#define HAVE_MIPSDSP_INLINE 0 +#define HAVE_MIPSDSPR2_INLINE 0 +#define HAVE_MSA_INLINE 0 +#define HAVE_LOONGSON2_INLINE 0 +#define HAVE_LOONGSON3_INLINE 0 +#define HAVE_MMI_INLINE 0 +#define HAVE_ALIGNED_STACK 0 +#define HAVE_FAST_64BIT 0 +#define HAVE_FAST_CLZ 0 +#define HAVE_FAST_CMOV 0 +#define HAVE_LOCAL_ALIGNED_8 FF_PPSSPP_GNUC +#define HAVE_LOCAL_ALIGNED_16 FF_PPSSPP_GNUC +#define HAVE_LOCAL_ALIGNED_32 FF_PPSSPP_GNUC +#define HAVE_SIMD_ALIGN_16 0 +#define HAVE_ATOMICS_GCC FF_PPSSPP_GNUC +#define HAVE_ATOMICS_SUNCC 0 +#define HAVE_ATOMICS_WIN32 FF_PPSSPP_WIN32_NOT_GNUC +#define HAVE_ATOMIC_CAS_PTR 0 +#define HAVE_ATOMIC_COMPARE_EXCHANGE FF_PPSSPP_GNUC +#define HAVE_MACHINE_RW_BARRIER 0 +#define HAVE_MEMORYBARRIER FF_PPSSPP_WIN32_NOT_GNUC +#define HAVE_MM_EMPTY 0 +#define HAVE_RDTSC 0 +#define HAVE_SARESTART 0 +#define HAVE_SYNC_VAL_COMPARE_AND_SWAP FF_PPSSPP_GNUC +#define HAVE_CABS 0 +#define HAVE_CEXP 0 +#define HAVE_INLINE_ASM 0 +#define HAVE_SYMVER 0 +#define HAVE_YASM 0 #define HAVE_BIGENDIAN 0 -#define HAVE_FAST_UNALIGNED @HAVE_FAST_UNALIGNED@ +#define HAVE_FAST_UNALIGNED 0 #define HAVE_INCOMPATIBLE_LIBAV_ABI 0 -#define HAVE_ALSA_ASOUNDLIB_H @HAVE_ALSA_ASOUNDLIB_H@ -#define HAVE_ALTIVEC_H @HAVE_ALTIVEC_H@ -#define HAVE_ARPA_INET_H @HAVE_ARPA_INET_H@ -#define HAVE_ASM_TYPES_H @HAVE_ASM_TYPES_H@ -#define HAVE_CDIO_PARANOIA_H @HAVE_CDIO_PARANOIA_H@ -#define HAVE_CDIO_PARANOIA_PARANOIA_H @HAVE_CDIO_PARANOIA_PARANOIA_H@ -#define HAVE_DEV_BKTR_IOCTL_BT848_H @HAVE_DEV_BKTR_IOCTL_BT848_H@ -#define HAVE_DEV_BKTR_IOCTL_METEOR_H @HAVE_DEV_BKTR_IOCTL_METEOR_H@ -#define HAVE_DEV_IC_BT8XX_H @HAVE_DEV_IC_BT8XX_H@ -#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H @HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H@ -#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H @HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H@ -#define HAVE_DIRECT_H @HAVE_DIRECT_H@ -#define HAVE_DIRENT_H @HAVE_DIRENT_H@ -#define HAVE_DLFCN_H @HAVE_DLFCN_H@ -#define HAVE_D3D11_H @HAVE_D3D11_H@ -#define HAVE_DXVA_H @HAVE_DXVA_H@ -#define HAVE_ES2_GL_H @HAVE_ES2_GL_H@ -#define HAVE_GSM_H @HAVE_GSM_H@ -#define HAVE_IO_H @HAVE_IO_H@ -#define HAVE_MACH_MACH_TIME_H @HAVE_MACH_MACH_TIME_H@ -#define HAVE_MACHINE_IOCTL_BT848_H @HAVE_MACHINE_IOCTL_BT848_H@ -#define HAVE_MACHINE_IOCTL_METEOR_H @HAVE_MACHINE_IOCTL_METEOR_H@ -#define HAVE_MALLOC_H @HAVE_MALLOC_H@ -#define HAVE_OPENCV2_CORE_CORE_C_H @HAVE_OPENCV2_CORE_CORE_C_H@ -#define HAVE_OPENJPEG_2_1_OPENJPEG_H @HAVE_OPENJPEG_2_1_OPENJPEG_H@ -#define HAVE_OPENJPEG_2_0_OPENJPEG_H @HAVE_OPENJPEG_2_0_OPENJPEG_H@ -#define HAVE_OPENJPEG_1_5_OPENJPEG_H @HAVE_OPENJPEG_1_5_OPENJPEG_H@ -#define HAVE_OPENGL_GL3_H @HAVE_OPENGL_GL3_H@ -#define HAVE_POLL_H @HAVE_POLL_H@ -#define HAVE_SNDIO_H @HAVE_SNDIO_H@ -#define HAVE_SOUNDCARD_H @HAVE_SOUNDCARD_H@ -#define HAVE_SYS_MMAN_H @HAVE_SYS_MMAN_H@ -#define HAVE_SYS_PARAM_H @HAVE_SYS_PARAM_H@ -#define HAVE_SYS_RESOURCE_H @HAVE_SYS_RESOURCE_H@ -#define HAVE_SYS_SELECT_H @HAVE_SYS_SELECT_H@ -#define HAVE_SYS_SOUNDCARD_H @HAVE_SYS_SOUNDCARD_H@ -#define HAVE_SYS_TIME_H @HAVE_SYS_TIME_H@ -#define HAVE_SYS_UN_H @HAVE_SYS_UN_H@ -#define HAVE_SYS_VIDEOIO_H @HAVE_SYS_VIDEOIO_H@ -#define HAVE_TERMIOS_H @HAVE_TERMIOS_H@ -#define HAVE_UDPLITE_H @HAVE_UDPLITE_H@ -#define HAVE_UNISTD_H @HAVE_UNISTD_H@ -#define HAVE_VALGRIND_VALGRIND_H @HAVE_VALGRIND_VALGRIND_H@ -#define HAVE_WINDOWS_H @HAVE_WINDOWS_H@ -#define HAVE_WINSOCK2_H @HAVE_WINSOCK2_H@ -#define HAVE_INTRINSICS_NEON @HAVE_NEON@ -#define HAVE_ATANF @HAVE_ATANF@ -#define HAVE_ATAN2F @HAVE_ATAN2F@ -#define HAVE_CBRT @HAVE_CBRT@ -#define HAVE_CBRTF @HAVE_CBRTF@ -#define HAVE_COPYSIGN @HAVE_COPYSIGN@ -#define HAVE_COSF @HAVE_COSF@ -#define HAVE_ERF @HAVE_ERF@ -#define HAVE_EXP2 @HAVE_EXP2@ -#define HAVE_EXP2F @HAVE_EXP2F@ -#define HAVE_EXPF @HAVE_EXPF@ -#define HAVE_HYPOT @HAVE_HYPOT@ -#define HAVE_ISFINITE @HAVE_ISFINITE@ -#define HAVE_ISINF @HAVE_ISINF@ -#define HAVE_ISNAN @HAVE_ISNAN@ -#define HAVE_LDEXPF @HAVE_LDEXPF@ -#define HAVE_LLRINT @HAVE_LLRINT@ -#define HAVE_LLRINTF @HAVE_LLRINTF@ -#define HAVE_LOG2 @HAVE_LOG2@ -#define HAVE_LOG2F @HAVE_LOG2F@ -#define HAVE_LOG10F @HAVE_LOG10F@ -#define HAVE_LRINT @HAVE_LRINT@ -#define HAVE_LRINTF @HAVE_LRINTF@ -#define HAVE_POWF @HAVE_POWF@ -#define HAVE_RINT @HAVE_RINT@ -#define HAVE_ROUND @HAVE_ROUND@ -#define HAVE_ROUNDF @HAVE_ROUNDF@ -#define HAVE_SINF @HAVE_SINF@ -#define HAVE_TRUNC @HAVE_TRUNC@ -#define HAVE_TRUNCF @HAVE_TRUNCF@ -#define HAVE_ACCESS @HAVE_ACCESS@ -#define HAVE_ALIGNED_MALLOC @HAVE_ALIGNED_MALLOC@ -#define HAVE_ARC4RANDOM @HAVE_ARC4RANDOM@ -#define HAVE_CLOCK_GETTIME @HAVE_CLOCK_GETTIME@ -#define HAVE_CLOSESOCKET @HAVE_CLOSESOCKET@ -#define HAVE_COMMANDLINETOARGVW @HAVE_COMMANDLINETOARGVW@ -#define HAVE_COTASKMEMFREE @HAVE_COTASKMEMFREE@ -#define HAVE_CRYPTGENRANDOM @HAVE_CRYPTGENRANDOM@ -#define HAVE_DLOPEN @HAVE_DLOPEN@ -#define HAVE_FCNTL @HAVE_FCNTL@ -#define HAVE_FLT_LIM @HAVE_FLT_LIM@ -#define HAVE_FORK @HAVE_FORK@ -#define HAVE_GETADDRINFO @HAVE_GETADDRINFO@ -#define HAVE_GETHRTIME @HAVE_GETHRTIME@ -#define HAVE_GETOPT @HAVE_GETOPT@ -#define HAVE_GETPROCESSAFFINITYMASK @HAVE_GETPROCESSAFFINITYMASK@ -#define HAVE_GETPROCESSMEMORYINFO @HAVE_GETPROCESSMEMORYINFO@ -#define HAVE_GETPROCESSTIMES @HAVE_GETPROCESSTIMES@ -#define HAVE_GETRUSAGE @HAVE_GETRUSAGE@ -#define HAVE_GETSYSTEMTIMEASFILETIME @HAVE_GETSYSTEMTIMEASFILETIME@ -#define HAVE_GETTIMEOFDAY @HAVE_GETTIMEOFDAY@ -#define HAVE_GLOB @HAVE_GLOB@ -#define HAVE_GLXGETPROCADDRESS @HAVE_GLXGETPROCADDRESS@ -#define HAVE_GMTIME_R @HAVE_GMTIME_R@ -#define HAVE_INET_ATON @HAVE_INET_ATON@ -#define HAVE_ISATTY @HAVE_ISATTY@ -#define HAVE_JACK_PORT_GET_LATENCY_RANGE @HAVE_JACK_PORT_GET_LATENCY_RANGE@ -#define HAVE_KBHIT @HAVE_KBHIT@ -#define HAVE_LOCALTIME_R @HAVE_LOCALTIME_R@ -#define HAVE_LSTAT @HAVE_LSTAT@ -#define HAVE_LZO1X_999_COMPRESS @HAVE_LZO1X_999_COMPRESS@ -#define HAVE_MACH_ABSOLUTE_TIME @HAVE_MACH_ABSOLUTE_TIME@ -#define HAVE_MAPVIEWOFFILE @HAVE_MAPVIEWOFFILE@ -#define HAVE_MEMALIGN @HAVE_MEMALIGN@ -#define HAVE_MKSTEMP @HAVE_MKSTEMP@ -#define HAVE_MMAP @HAVE_MMAP@ -#define HAVE_MPROTECT @HAVE_MPROTECT@ -#define HAVE_NANOSLEEP @HAVE_NANOSLEEP@ -#define HAVE_PEEKNAMEDPIPE @HAVE_PEEKNAMEDPIPE@ -#define HAVE_POSIX_MEMALIGN @HAVE_POSIX_MEMALIGN@ -#define HAVE_PTHREAD_CANCEL @HAVE_PTHREAD_CANCEL@ -#define HAVE_SCHED_GETAFFINITY @HAVE_SCHED_GETAFFINITY@ -#define HAVE_SETCONSOLETEXTATTRIBUTE @HAVE_SETCONSOLETEXTATTRIBUTE@ -#define HAVE_SETCONSOLECTRLHANDLER @HAVE_SETCONSOLECTRLHANDLER@ -#define HAVE_SETMODE @HAVE_SETMODE@ -#define HAVE_SETRLIMIT @HAVE_SETRLIMIT@ -#define HAVE_SLEEP @HAVE_SLEEP@ -#define HAVE_STRERROR_R @HAVE_STRERROR_R@ -#define HAVE_SYSCONF @HAVE_SYSCONF@ -#define HAVE_SYSCTL @HAVE_SYSCTL@ -#define HAVE_USLEEP @HAVE_USLEEP@ -#define HAVE_UTGETOSTYPEFROMSTRING @HAVE_UTGETOSTYPEFROMSTRING@ -#define HAVE_VIRTUALALLOC @HAVE_VIRTUALALLOC@ -#define HAVE_WGLGETPROCADDRESS @HAVE_WGLGETPROCADDRESS@ -#define HAVE_PTHREADS @HAVE_PTHREADS@ -#define HAVE_OS2THREADS @HAVE_OS2THREADS@ -#define HAVE_W32THREADS @HAVE_W32THREADS@ -#define HAVE_AS_DN_DIRECTIVE @HAVE_AS_DN_DIRECTIVE@ -#define HAVE_AS_FUNC @HAVE_AS_FUNC@ -#define HAVE_AS_OBJECT_ARCH @HAVE_AS_OBJECT_ARCH@ -#define HAVE_ASM_MOD_Q @HAVE_ASM_MOD_Q@ -#define HAVE_ATTRIBUTE_MAY_ALIAS @HAVE_ATTRIBUTE_MAY_ALIAS@ -#define HAVE_ATTRIBUTE_PACKED @HAVE_ATTRIBUTE_PACKED@ -#define HAVE_EBP_AVAILABLE @HAVE_EBP_AVAILABLE@ -#define HAVE_EBX_AVAILABLE @HAVE_EBX_AVAILABLE@ -#define HAVE_GNU_AS @HAVE_GNU_AS@ -#define HAVE_GNU_WINDRES @HAVE_GNU_WINDRES@ -#define HAVE_IBM_ASM @HAVE_IBM_ASM@ -#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS @HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS@ -#define HAVE_INLINE_ASM_LABELS @HAVE_INLINE_ASM_LABELS@ -#define HAVE_INLINE_ASM_NONLOCAL_LABELS @HAVE_INLINE_ASM_NONLOCAL_LABELS@ -#define HAVE_PRAGMA_DEPRECATED @HAVE_PRAGMA_DEPRECATED@ -#define HAVE_RSYNC_CONTIMEOUT @HAVE_RSYNC_CONTIMEOUT@ -#define HAVE_SYMVER_ASM_LABEL @HAVE_SYMVER_ASM_LABEL@ -#define HAVE_SYMVER_GNU_ASM @HAVE_SYMVER_GNU_ASM@ -#define HAVE_VFP_ARGS @HAVE_VFP_ARGS@ -#define HAVE_XFORM_ASM @HAVE_XFORM_ASM@ -#define HAVE_XMM_CLOBBERS @HAVE_XMM_CLOBBERS@ -#define HAVE_CONDITION_VARIABLE_PTR @HAVE_CONDITION_VARIABLE_PTR@ -#define HAVE_SOCKLEN_T @HAVE_SOCKLEN_T@ -#define HAVE_STRUCT_ADDRINFO @HAVE_STRUCT_ADDRINFO@ -#define HAVE_STRUCT_GROUP_SOURCE_REQ @HAVE_STRUCT_GROUP_SOURCE_REQ@ -#define HAVE_STRUCT_IP_MREQ_SOURCE @HAVE_STRUCT_IP_MREQ_SOURCE@ -#define HAVE_STRUCT_IPV6_MREQ @HAVE_STRUCT_IPV6_MREQ@ -#define HAVE_STRUCT_POLLFD @HAVE_STRUCT_POLLFD@ -#define HAVE_STRUCT_RUSAGE_RU_MAXRSS @HAVE_STRUCT_RUSAGE_RU_MAXRSS@ -#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE @HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE@ -#define HAVE_STRUCT_SOCKADDR_IN6 @HAVE_STRUCT_SOCKADDR_IN6@ -#define HAVE_STRUCT_SOCKADDR_SA_LEN @HAVE_STRUCT_SOCKADDR_SA_LEN@ -#define HAVE_STRUCT_SOCKADDR_STORAGE @HAVE_STRUCT_SOCKADDR_STORAGE@ -#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC @HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC@ -#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE @HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE@ -#define HAVE_ATOMICS_NATIVE @HAVE_ATOMICS_NATIVE@ -#define HAVE_DOS_PATHS @HAVE_DOS_PATHS@ -#define HAVE_DXVA2_LIB @HAVE_DXVA2_LIB@ -#define HAVE_DXVA2API_COBJ @HAVE_DXVA2API_COBJ@ -#define HAVE_LIBC_MSVCRT @HAVE_LIBC_MSVCRT@ +#define HAVE_ALSA_ASOUNDLIB_H 0 +#define HAVE_ALTIVEC_H 0 +#define HAVE_ARPA_INET_H 0 +#define HAVE_ASM_TYPES_H 0 +#define HAVE_CDIO_PARANOIA_H 0 +#define HAVE_CDIO_PARANOIA_PARANOIA_H 0 +#define HAVE_DEV_BKTR_IOCTL_BT848_H 0 +#define HAVE_DEV_BKTR_IOCTL_METEOR_H 0 +#define HAVE_DEV_IC_BT8XX_H 0 +#define HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H 0 +#define HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H 0 +#define HAVE_DIRECT_H FF_PPSSPP_WIN32 +#define HAVE_DIRENT_H FF_PPSSPP_POSIX +#define HAVE_DLFCN_H FF_PPSSPP_POSIX +#define HAVE_D3D11_H 0 +#define HAVE_DXVA_H 0 +#define HAVE_ES2_GL_H 0 +#define HAVE_GSM_H 0 +#define HAVE_IO_H FF_PPSSPP_WIN32 +#define HAVE_MACH_MACH_TIME_H 0 +#define HAVE_MACHINE_IOCTL_BT848_H 0 +#define HAVE_MACHINE_IOCTL_METEOR_H 0 +#define HAVE_MALLOC_H FF_PPSSPP_MALLOC_H +#define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENJPEG_2_1_OPENJPEG_H 0 +#define HAVE_OPENJPEG_2_0_OPENJPEG_H 0 +#define HAVE_OPENJPEG_1_5_OPENJPEG_H 0 +#define HAVE_OPENGL_GL3_H 0 +#define HAVE_POLL_H FF_PPSSPP_POSIX +#define HAVE_SNDIO_H 0 +#define HAVE_SOUNDCARD_H 0 +#define HAVE_SYS_MMAN_H FF_PPSSPP_POSIX +#define HAVE_SYS_PARAM_H FF_PPSSPP_POSIX +#define HAVE_SYS_RESOURCE_H FF_PPSSPP_POSIX +#define HAVE_SYS_SELECT_H FF_PPSSPP_POSIX +#define HAVE_SYS_SOUNDCARD_H 0 +#define HAVE_SYS_TIME_H FF_PPSSPP_POSIX +#define HAVE_SYS_UN_H FF_PPSSPP_POSIX +#define HAVE_SYS_VIDEOIO_H 0 +#define HAVE_TERMIOS_H 0 +#define HAVE_UDPLITE_H 0 +#define HAVE_UNISTD_H FF_PPSSPP_POSIX +#define HAVE_VALGRIND_VALGRIND_H 0 +#define HAVE_WINDOWS_H FF_PPSSPP_WIN32 +#define HAVE_WINSOCK2_H 0 +#define HAVE_INTRINSICS_NEON 0 +#define HAVE_ATANF 1 +#define HAVE_ATAN2F 1 +#define HAVE_CBRT 1 +#define HAVE_CBRTF 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COSF 1 +#define HAVE_ERF 1 +#define HAVE_EXP2 1 +#define HAVE_EXP2F 1 +#define HAVE_EXPF 1 +#define HAVE_HYPOT 1 +#define HAVE_ISFINITE 1 +#define HAVE_ISINF 1 +#define HAVE_ISNAN 1 +#define HAVE_LDEXPF 1 +#define HAVE_LLRINT 1 +#define HAVE_LLRINTF 1 +#define HAVE_LOG2 1 +#define HAVE_LOG2F 1 +#define HAVE_LOG10F 1 +#define HAVE_LRINT 1 +#define HAVE_LRINTF 1 +#define HAVE_POWF 1 +#define HAVE_RINT 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SINF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE_ACCESS FF_PPSSPP_POSIX +#define HAVE_ALIGNED_MALLOC FF_PPSSPP_WIN32 +#define HAVE_ARC4RANDOM FF_PPSSPP_BSD +#define HAVE_CLOCK_GETTIME FF_PPSSPP_POSIX +#define HAVE_CLOSESOCKET 0 +#define HAVE_COMMANDLINETOARGVW 0 +#define HAVE_COTASKMEMFREE 0 +#define HAVE_CRYPTGENRANDOM 0 +#define HAVE_DLOPEN 0 +#define HAVE_FCNTL FF_PPSSPP_POSIX +#define HAVE_FLT_LIM 1 +#define HAVE_FORK 0 +#define HAVE_GETADDRINFO 0 +#define HAVE_GETHRTIME 0 +#define HAVE_GETOPT 0 +#define HAVE_GETPROCESSAFFINITYMASK FF_PPSSPP_WIN32_DESKTOP +#define HAVE_GETPROCESSMEMORYINFO 0 +#define HAVE_GETPROCESSTIMES 0 +#define HAVE_GETRUSAGE 0 +#define HAVE_GETSYSTEMTIMEASFILETIME FF_PPSSPP_WIN32 +#define HAVE_GETTIMEOFDAY FF_PPSSPP_POSIX +#define HAVE_GLOB 0 +#define HAVE_GLXGETPROCADDRESS 0 +#define HAVE_GMTIME_R FF_PPSSPP_POSIX +#define HAVE_INET_ATON 0 +#define HAVE_ISATTY FF_PPSSPP_POSIX +#define HAVE_JACK_PORT_GET_LATENCY_RANGE 0 +#define HAVE_KBHIT 0 +#define HAVE_LOCALTIME_R FF_PPSSPP_POSIX +#define HAVE_LSTAT 0 +#define HAVE_LZO1X_999_COMPRESS 0 +#define HAVE_MACH_ABSOLUTE_TIME 0 +#define HAVE_MAPVIEWOFFILE FF_PPSSPP_WIN32_DESKTOP +#define HAVE_MEMALIGN 0 +#define HAVE_MKSTEMP FF_PPSSPP_POSIX +#define HAVE_MMAP FF_PPSSPP_POSIX +#define HAVE_MPROTECT FF_PPSSPP_POSIX +#define HAVE_NANOSLEEP FF_PPSSPP_POSIX +#define HAVE_PEEKNAMEDPIPE 0 +#define HAVE_POSIX_MEMALIGN FF_PPSSPP_POSIX +#define HAVE_PTHREAD_CANCEL 0 +#define HAVE_SCHED_GETAFFINITY FF_PPSSPP_LINUX +#define HAVE_SETCONSOLETEXTATTRIBUTE 0 +#define HAVE_SETCONSOLECTRLHANDLER 0 +#define HAVE_SETMODE 0 +#define HAVE_SETRLIMIT 0 +#define HAVE_SLEEP FF_PPSSPP_WIN32 +#define HAVE_STRERROR_R 0 +#define HAVE_SYSCONF FF_PPSSPP_POSIX +#define HAVE_SYSCTL FF_PPSSPP_BSD +#define HAVE_USLEEP FF_PPSSPP_POSIX +#define HAVE_UTGETOSTYPEFROMSTRING 0 +#define HAVE_VIRTUALALLOC FF_PPSSPP_WIN32_DESKTOP +#define HAVE_WGLGETPROCADDRESS 0 +#define HAVE_PTHREADS FF_PPSSPP_POSIX +#define HAVE_OS2THREADS 0 +#define HAVE_W32THREADS FF_PPSSPP_WIN32 +#define HAVE_AS_DN_DIRECTIVE 0 +#define HAVE_AS_FUNC 0 +#define HAVE_AS_OBJECT_ARCH 0 +#define HAVE_ASM_MOD_Q 0 +#define HAVE_ATTRIBUTE_MAY_ALIAS FF_PPSSPP_GNUC +#define HAVE_ATTRIBUTE_PACKED FF_PPSSPP_GNUC +#define HAVE_EBP_AVAILABLE 0 +#define HAVE_EBX_AVAILABLE 0 +#define HAVE_GNU_AS 0 +#define HAVE_GNU_WINDRES 0 +#define HAVE_IBM_ASM 0 +#define HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS 0 +#define HAVE_INLINE_ASM_LABELS 0 +#define HAVE_INLINE_ASM_NONLOCAL_LABELS 0 +#define HAVE_PRAGMA_DEPRECATED FF_PPSSPP_GNUC +#define HAVE_RSYNC_CONTIMEOUT 0 +#define HAVE_SYMVER_ASM_LABEL 0 +#define HAVE_SYMVER_GNU_ASM 0 +#define HAVE_VFP_ARGS 0 +#define HAVE_XFORM_ASM 0 +#define HAVE_XMM_CLOBBERS 0 +#define HAVE_CONDITION_VARIABLE_PTR FF_PPSSPP_WIN32 +#define HAVE_SOCKLEN_T 0 +#define HAVE_STRUCT_ADDRINFO 0 +#define HAVE_STRUCT_GROUP_SOURCE_REQ 0 +#define HAVE_STRUCT_IP_MREQ_SOURCE 0 +#define HAVE_STRUCT_IPV6_MREQ 0 +#define HAVE_STRUCT_POLLFD 0 +#define HAVE_STRUCT_RUSAGE_RU_MAXRSS 0 +#define HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE 0 +#define HAVE_STRUCT_SOCKADDR_IN6 0 +#define HAVE_STRUCT_SOCKADDR_SA_LEN 0 +#define HAVE_STRUCT_SOCKADDR_STORAGE 0 +#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0 +#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +#define HAVE_ATOMICS_NATIVE 1 +#define HAVE_DOS_PATHS FF_PPSSPP_WIN32 +#define HAVE_DXVA2_LIB 0 +#define HAVE_DXVA2API_COBJ 0 +#define HAVE_LIBC_MSVCRT FF_PPSSPP_MSVC #define HAVE_LIBDC1394_1 0 #define HAVE_LIBDC1394_2 0 #define HAVE_MAKEINFO 0 @@ -376,17 +437,17 @@ #define HAVE_PERL 0 #define HAVE_POD2MAN 0 #define HAVE_SDL 0 -#define HAVE_SECTION_DATA_REL_RO @HAVE_SECTION_DATA_REL_RO@ +#define HAVE_SECTION_DATA_REL_RO 0 #define HAVE_TEXI2HTML 0 -#define HAVE_THREADS @HAVE_THREADS@ -#define HAVE_VAAPI_X11 @HAVE_VAAPI_X11@ -#define HAVE_VDPAU_X11 @HAVE_VDPAU_X11@ -#define HAVE_WINRT @HAVE_WINRT@ -#define HAVE_XLIB @HAVE_XLIB@ +#define HAVE_THREADS 1 +#define HAVE_VAAPI_X11 0 +#define HAVE_VDPAU_X11 0 +#define HAVE_WINRT FF_PPSSPP_WINRT +#define HAVE_XLIB 0 #define CONFIG_BSFS 0 #define CONFIG_DECODERS 1 #define CONFIG_ENCODERS 1 -#define CONFIG_HWACCELS @CONFIG_HWACCELS@ +#define CONFIG_HWACCELS 0 #define CONFIG_PARSERS 1 #define CONFIG_INDEVS 0 #define CONFIG_OUTDEVS 0 @@ -479,10 +540,10 @@ #define CONFIG_LIBX264 0 #define CONFIG_LIBX265 0 #define CONFIG_LIBXAVS 0 -#define CONFIG_LIBXCB @HAVE_XLIB@ -#define CONFIG_LIBXCB_SHM @HAVE_XLIB@ -#define CONFIG_LIBXCB_SHAPE @HAVE_XLIB@ -#define CONFIG_LIBXCB_XFIXES @HAVE_XLIB@ +#define CONFIG_LIBXCB 0 +#define CONFIG_LIBXCB_SHM 0 +#define CONFIG_LIBXCB_SHAPE 0 +#define CONFIG_LIBXCB_XFIXES 0 #define CONFIG_LIBXVID 0 #define CONFIG_LIBZIMG 0 #define CONFIG_LIBZMQ 0 @@ -499,8 +560,8 @@ #define CONFIG_SDL 0 #define CONFIG_SECURETRANSPORT 0 #define CONFIG_X11GRAB 0 -#define CONFIG_XLIB @CONFIG_XLIB@ -#define CONFIG_ZLIB @CONFIG_ZLIB@ +#define CONFIG_XLIB 0 +#define CONFIG_ZLIB 0 #define CONFIG_FTRAPV 0 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 @@ -511,12 +572,12 @@ #define CONFIG_STATIC 1 #define CONFIG_SWSCALE_ALPHA 1 #define CONFIG_D3D11VA 0 -#define CONFIG_DXVA2 @HAVE_DXVA2_LIB@ -#define CONFIG_VAAPI @CONFIG_VAAPI@ +#define CONFIG_DXVA2 0 +#define CONFIG_VAAPI 0 #define CONFIG_VDA 0 -#define CONFIG_VDPAU @CONFIG_VDPAU@ +#define CONFIG_VDPAU 0 #define CONFIG_VIDEOTOOLBOX 0 -#define CONFIG_XVMC @CONFIG_XVMC@ +#define CONFIG_XVMC 0 #define CONFIG_GPL 0 #define CONFIG_NONFREE 0 #define CONFIG_VERSION3 0 @@ -550,7 +611,7 @@ #define CONFIG_MEMALIGN_HACK 0 #define CONFIG_MEMORY_POISONING 0 #define CONFIG_NEON_CLOBBER_TEST 0 -#define CONFIG_PIC @CONFIG_PIC@ +#define CONFIG_PIC 1 #define CONFIG_POD2MAN 0 #define CONFIG_RAISE_MAJOR 0 #define CONFIG_THUMB 0 @@ -885,8 +946,8 @@ #define CONFIG_AMRWB_DECODER 0 #define CONFIG_APE_DECODER 0 #define CONFIG_ATRAC1_DECODER 0 -#define CONFIG_ATRAC3_DECODER 0 -#define CONFIG_ATRAC3P_DECODER 0 +#define CONFIG_ATRAC3_DECODER 1 +#define CONFIG_ATRAC3P_DECODER 1 #define CONFIG_BINKAUDIO_DCT_DECODER 0 #define CONFIG_BINKAUDIO_RDFT_DECODER 0 #define CONFIG_BMV_AUDIO_DECODER 0 diff --git a/ext/ffmpeg-build/configure_checks.cmake b/ext/ffmpeg-build/configure_checks.cmake deleted file mode 100644 index 231d8f135f..0000000000 --- a/ext/ffmpeg-build/configure_checks.cmake +++ /dev/null @@ -1,349 +0,0 @@ -# Before we compile ffmpeg libs, we need to generate config.h, (config.asm if enabling Assembly optimizations), libavutil/avconfig.h, and libavutil/ffversion.h. - -include(configure_functions.cmake) - -# Check for extern_prefix -check_cc(ffextern "int ff_extern;" HAVE_ff_extern) -execute_process( - COMMAND nm "${CONFIG_TESTS_DIR}/ffextern.o" - OUTPUT_VARIABLE NM_RESULT - OUTPUT_STRIP_TRAILING_WHITESPACE -) -file(WRITE "${CONFIG_TESTS_DIR}/nm_ff_extern" "${NM_RESULT}") -execute_process( - COMMAND awk "/ff_extern/{ print substr($0, match($0, /[^ \t]*ff_extern/)) }" "${CONFIG_TESTS_DIR}/nm_ff_extern" - OUTPUT_VARIABLE AWK_RESULT - OUTPUT_STRIP_TRAILING_WHITESPACE -) -set(extern_prefix_orig \"${AWK_RESULT}\") -string(REGEX REPLACE "ff_extern" "" extern_prefix "${extern_prefix_orig}") -set(extern_asm_orig "${AWK_RESULT}") -string(REGEX REPLACE "ff_extern" "" extern_asm "${extern_asm_orig}") - -set(build_suffix \"\") - -set(SLIBSUF \"${CMAKE_SHARED_LIBRARY_SUFFIX}\") - -# See line 3055 of ffmpeg configure script, where 256 is hardcoded as the default -set(sws_max_filter_size 256) - -# Check the restrict keyword and assign accordingly -set(_RESTRICT) -check_cc(restrict "void foo(char * restrict p);" restrict) -check_cc(__restrict__ "void foo(char * __restrict__ p);" __restrict__) -check_cc(__restrict "void foo(char * __restrict p);" __restrict) -if (restrict) - set(_RESTRICT "restrict") -elseif (__restrict__) - set(_RESTRICT "__restrict__") -elseif (__restrict) - set(_RESTRICT "__restrict") -else() - message(STATUS "restrict keyword not found!") -endif() -if (NOT _RESTRICT STREQUAL "restrict") - check_cc(restrict_cflags "__declspec(${_RESTRICT}) void* foo(int);" stdlib_cflag) - if (stdlib_cflag) - # Primarily needed with MSVC - add_compile_options(-FIstdlib.h) - endif() -endif() - -# Get the compiler ident string in the same format as ffmpeg's configure script--retaining only the first line -if (MSVC AND NOT (CMAKE_C_COMPILER_ID STREQUAL "Clang")) # Real MSVC, not clang-cl emulating MSVC - execute_process( - COMMAND cl - ERROR_VARIABLE CC_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE - ) -else() # clang (including clang-cl) and gcc - execute_process( - COMMAND cc "--version" - OUTPUT_VARIABLE CC_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE - ) -endif() -string(REGEX REPLACE "\n.*" "" CC_IDENT "${CC_VERSION}") -set(CC_IDENT \"${CC_IDENT}\") - -# Check for PIC - see line 4845 of ffmpeg's configure script -set(CONFIG_PIC 1) -#check_cpp_condition(pic "stdlib.h" "defined(__PIC__) || defined(__pic__) || defined(PIC)" CONFIG_PIC) -# Note: the above check PASSES if cross-compiling for Windows targets, but fails for FreeBSD host; enabling always - -# Line 4933 -check_cc(pragma_deprecated [[void foo(void) { _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") }]] HAVE_PRAGMA_DEPRECATED) - -check_cc(attribute_packed "struct { int x; } __attribute__((packed)) x;" HAVE_ATTRIBUTE_PACKED) - -check_cc(attribute_may_alias "union { int x; } __attribute__((may_alias)) x;" HAVE_ATTRIBUTE_MAY_ALIAS) - -check_func(dlopen "dlopen" HAVE_DLOPEN) - -check_builtin(atomic_cas_ptr "" "void **ptr; void *oldval, *newval; atomic_cas_ptr(ptr, oldval, newval)" HAVE_ATOMIC_CAS_PTR) -check_builtin(atomic_compare_exchange "" "int *ptr, *oldval; int newval; __atomic_compare_exchange_n(ptr, oldval, newval, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)" HAVE_ATOMIC_COMPARE_EXCHANGE) -check_builtin(machine_rw_barrier "" "__machine_rw_barrier()" HAVE_MACHINE_RW_BARRIER) -check_builtin(MemoryBarrier "" "MemoryBarrier()" HAVE_MEMORYBARRIER) -check_builtin(sarestart "" "SA_RESTART" HAVE_SARESTART) -check_builtin(sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)" HAVE_SYNC_VAL_COMPARE_AND_SWAP) -check_builtin(gmtime_r "" "time_t *time; struct tm *tm; gmtime_r(time, tm)" HAVE_GMTIME_R) -check_builtin(localtime_r "" "time_t *time; struct tm *tm; localtime_r(time, tm)" HAVE_LOCALTIME_R) - -check_func_headers(aligned_malloc "" "_aligned_malloc" "" HAVE_ALIGNED_MALLOC) -# Note: we don't have a 'custom_allocator' option set, so we don't need a malloc_prefix -check_func(memalign "memalign" HAVE_MEMALIGN) -if (NOT MINGW AND NOT MINGW_SYSROOT) # First of many MinGW-specific conditionals to prevent false-positives - check_func(posix_memalign "posix_memalign" HAVE_POSIX_MEMALIGN) -endif() -check_func(access "access" HAVE_ACCESS) -check_func_headers(arc4random "" "arc4random" "" HAVE_ARC4RANDOM) -check_func_headers(clock_gettime "" "clock_gettime" "" HAVE_CLOCK_GETTIME) -if (NOT HAVE_CLOCK_GETTIME) - check_func_headers(clock_gettime "" "clock_gettime" "-lrt" HAVE_CLOCK_GETTIME) - if (HAVE_CLOCK_GETTIME) - add_link_options(-lrt) - endif() -endif() -if (NOT MINGW AND NOT MINGW_SYSROOT) - check_func(fcntl "fcntl" HAVE_FCNTL) -endif() -check_func(flt_lim "flt_lim" HAVE_FLT_LIM) # Note: if this check fails, a second check is run later that can pass -check_func(fork "fork" HAVE_FORK) -if (NOT MINGW AND NOT MINGW_SYSROOT) - check_func(gethrtime "gethrtime" HAVE_GETHRTIME) -endif() -check_func(getopt "getopt" HAVE_GETOPT) -check_func(getrusage "getrusage" HAVE_GETRUSAGE) -check_func(gettimeofday "gettimeofday" HAVE_GETTIMEOFDAY) -check_func(isatty "isatty" HAVE_ISATTY) -if (NOT MINGW AND NOT MINGW_SYSROOT) - check_func(mach_absolute_time "mach_absolute_time" HAVE_MACH_ABSOLUTE_TIME) -endif() -check_func(mkstemp "mkstemp" HAVE_MKSTEMP) -if (NOT MINGW AND NOT MINGW_SYSROOT) - check_func(mmap "mmap" HAVE_MMAP) -endif() -check_func(mprotect "mprotect" HAVE_MPROTECT) -check_func_headers(nanosleep "" "nanosleep" "" HAVE_NANOSLEEP) -if (NOT HAVE_NANOSLEEP) - check_func_headers(nanosleep "" "nanosleep" "-lrt" HAVE_NANOSLEEP) - if (HAVE_NANOSLEEP) - add_link_options(-lrt) - endif() -endif() -if (NOT MINGW AND NOT MINGW_SYSROOT) # Failsafe against breaking MinGW builds at libavutil/cpu.c - check_func(sched_getaffinity "sched_getaffinity" HAVE_SCHED_GETAFFINITY) -endif() -check_func(setrlimit "setrlimit" HAVE_SETRLIMIT) -check_struct(st_mtim.tv_nsec "" "struct stat" st_mtim.tv_nsec HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC "-D_DEFAULT_SOURCE") -# Note: -D_DEFAULT_SOURCE replaced -D_BSD_SOURCE as a flag to enable various extensions to POSIX in 2014 -# Note 2: on Arch Linux at least, this is already defined in features.h, resulting in a -Wmacro-redefined warning -if (NOT MINGW AND NOT MINGW_SYSROOT) - check_func(strerror_r "strerror_r" HAVE_STRERROR_R) -endif() -check_func(sysconf "sysconf" HAVE_SYSCONF) -if (NOT MINGW AND NOT MINGW_SYSROOT AND NOT CMAKE_SYSTEM_NAME MATCHES "SunOS") - check_func(sysctl "sysctl" HAVE_SYSCTL) -endif() -check_func(usleep "usleep" HAVE_USLEEP) - -check_func_headers(kbhit "" "kbhit" "" HAVE_KBHIT) -check_func_headers(setmode "" "setmode" "" HAVE_SETMODE) -check_func_headers(lzo1x_999_compress "" "lzo1x_999_compress" "" HAVE_LZO1X_999_COMPRESS) -check_func_headers(getenv "" "getenv" "" HAVE_GETENV) -check_func_headers(lstat "" "lstat" "" HAVE_LSTAT) - -# Note: lines 5318-5328 all rely on windows.h header--skip irrelevant checks if windows.h not found -check_header(windows "windows.h" "" HAVE_WINDOWS_H) -if (HAVE_WINDOWS_H) - check_func_headers(cotaskmemfree "" "CoTaskMemFree" "-lole32" HAVE_COTASKMEMFREE) - check_func_headers(getprocessaffinitymask "" "GetProcessAffinityMask" "" HAVE_GETPROCESSAFFINITYMASK) - check_func_headers(getprocesstimes "" "GetProcessTimes" "" HAVE_GETPROCESSTIMES) - check_func_headers(getsystemtimeasfiletime "" "GetSystemTimeAsFileTime" "" HAVE_GETSYSTEMTIMEASFILETIME) - check_func_headers(mapviewoffile "" "MapViewOfFile" "" HAVE_MAPVIEWOFFILE) - check_func_headers(peeknamedpipe "" "PeekNamedPipe" "" HAVE_PEEKNAMEDPIPE) - check_func_headers(setconsoletextattribute "" "SetConsoleTextAttribute" "" HAVE_SETCONSOLETEXTATTRIBUTE) - check_func_headers(setconsolectrlhandler "" "SetConsoleCtrlHandler" "" HAVE_SETCONSOLECTRLHANDLER) - check_func_headers(sleep "" "Sleep" "" HAVE_SLEEP) - check_func_headers(virtualalloc "" "VirtualAlloc" "" HAVE_VIRTUALALLOC) - check_struct(condition_variable_ptr "" "CONDITION_VARIABLE" "Ptr" HAVE_CONDITION_VARIABLE_PTR) -endif() -check_func_headers(glob "" "glob" "" HAVE_GLOB) - -# Xlib check at lines 5330-5331 -check_func_headers(xlib ";" "XvGetPortAttribute" "-lXv;-lX11;-lXext" CONFIG_XLIB) - -check_header(direct "direct.h" "" HAVE_DIRECT_H) -check_header(dirent "dirent.h" "" HAVE_DIRENT_H) -check_header(dlfcn "dlfcn.h" "" HAVE_DLFCN_H) -check_header(d3d11 "d3d11.h" "" HAVE_D3D11_H) -check_header(dxva "dxva.h" "" HAVE_DXVA_H) -check_header(dxva2api "windows.h;d3d9.h;dxva2api.h" "-D_WIN32_WINNT=0x0600" CONFIG_DXVA2) -check_header(io "io.h" "" HAVE_IO_H) -check_header(mach_time "mach/mach_time.h" "" HAVE_MACH_MACH_TIME_H) -check_header(malloc "malloc.h" "" HAVE_MALLOC_H) -check_header(udplite "net/udplite.h" "" HAVE_UDPLITE_H) -check_header(poll "poll.h" "" HAVE_POLL_H) -check_header(mman "sys/mman.h" "" HAVE_SYS_MMAN_H) -check_header(param "sys/param.h" "" HAVE_SYS_PARAM_H) -check_header(resource "sys/resource.h" "" HAVE_SYS_RESOURCE_H) -check_header(select "sys/select.h" "" HAVE_SYS_SELECT_H) -check_header(time "sys/time.h" "" HAVE_SYS_TIME_H) -check_header(un "sys/un.h" "" HAVE_SYS_UN_H) -check_header(termios "sys/termios.h" "" HAVE_TERMIOS_H) -check_header(unistd "sys/unistd.h" "" HAVE_UNISTD_H) -check_header(valgrind "valgrind/valgrind.h" "" HAVE_VALGRIND_VALGRIND_H) - -# Line 5362 # NOTE: on Windows, "shell32.lib" does NOT start with "lib" or "-l", but for my check we need this -check_lib2(commandlinetoargvw ";" "CommandLineToArgvW" "-lshell32" HAVE_COMMANDLINETOARGVW) -check_lib2(cryptgenrandom ";" "CryptGenRandom" "-ladvapi32" HAVE_CRYPTGENRANDOM) -check_lib2(getprocessmemoryinfo ";" "GetProcessMemoryInfo" "-lpsapi" HAVE_GETPROCESSMEMORYINFO) -check_lib(utgetostypefromstring "CoreServices/CoreServices.h" "UTGetOSTypeFromString" "-framework CoreServices" HAVE_UTGETOSTYPEFROMSTRING) - -check_struct(ru_maxrss ";" "struct rusage" ru_maxrss HAVE_STRUCT_RUSAGE_RU_MAXRSS) - -check_cpp_condition(winrt "windows.h" "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" HAVE_WINRT) - -# pthreads vs w32threads - see lines 5382-5389. Note: since we're hardcoding configure 'options', slight change here -if (HAVE_WINDOWS_H) # Enable w32threads if either of configure script's conditions are met; deal with pthreads later - check_func_headers(beginthreadex ";" "_beginthreadex" "" HAVE_W32THREADS) - if (NOT HAVE_W32THREADS) - if (HAVE_WINRT) - check_func_headers(createthread "" "CreateThread" "" HAVE_W32THREADS) - endif() - endif() -endif() - -# pthreads - see lines 5391-5414 -if (NOT HAVE_W32THREADS AND NOT HAVE_OS2THREADS) - check_func(pthread_join "pthread_join" HAVE_PTHREAD_JOIN) - if (ANDROID) # workaround for older Android omitting pthread_cancel for optimization purposes - set(HAVE_PTHREAD_CANCEL 1) - else() - check_func(pthread_cancel "pthread_cancel" HAVE_PTHREAD_CANCEL) - endif() - if (HAVE_PTHREAD_JOIN AND HAVE_PTHREAD_CANCEL) - set(HAVE_PTHREADS 1) - endif() -endif() - -check_lib2(zlibversion "" "zlibVersion" "-lz" CONFIG_ZLIB) - -# check all listed math_funcs - see lines 5434-5436 -set(mathfuncs "atanf;atan2f;cbrt;cbrtf;copysign;cosf;erf;exp2;exp2f;expf;hypot;isfinite;isinf;isnan;ldexpf;llrint;llrintf;log2;log2f;log10f;lrint;lrintf;powf;rint;round;roundf;sinf;trunc;truncf") - -foreach(func IN LISTS mathfuncs) - string(TOUPPER ${func} uppercase_func) - if (MSVC) - check_mathfunc(${func} ${func} "-lmsvcrt" HAVE_${uppercase_func}) - else() - check_mathfunc(${func} ${func} "-lm" HAVE_${uppercase_func}) - endif() -endforeach() - -# check all listed complex_funcs - see lines 5438-5440 -check_complexfunc(cabs cabs HAVE_CABS) -check_complexfunc(cexp cexp HAVE_CEXP) - -check_header(sys_videoio "sys/videoio.h" "" HAVE_SYS_VIDEOIO_H) - -check_type(ibasefilter "" "IBaseFilter" CONFIG_DSHOW_INDEV) # Note: not sure this is the right variable - -# FIXME (or don't, as both CONFIG_SNDIO_INDEV and CONFIG_SNDIO_OUTDEV are set to "0"). The simplified check doesn't -# look in /usr/local/include and therefore fails on some targets like FreeBSD, albeit harmlessly -check_header(sndio "sndio.h" "" HAVE_SNDIO_H) -check_struct(audio_buf_info "" "audio_buf_info bytes;" "audio_buf_info bytes" HAVE_SYS_SOUNDCARD_H) -if (NOT HAVE_SYS_SOUNDCARD_H) - check_cc(sys_soundcard "#include \naudio_buf_info abc;" HAVE_SYS_SOUNDCARD_H "-D__BSD_VISIBLE;-D__XSI_VISIBLE") -endif() -check_header(soundcard "soundcard.h" "" HAVE_SOUNDCARD_H) - -# Xlib: see lines 5718-5719 -check_lib2(xopendisplay "" "XOpenDisplay" "-lX11" HAVE_XLIB) -if (CONFIG_XLIB) - set(HAVE_XLIB 1) -endif() - -# dxva2api_cobj - see line 5755 -check_cc(dxva2api_cobj "#define _WIN32_WINNT 0x0600\n#define COBJMACROS\n#include \n#include \n#include \nint main(void) { IDirectXVideoDecoder *o = NULL;\nIDirectXVideoDecoder_Release(o);\nreturn 0; }" HAVE_DXVA2API_COBJ) - -# dxva2_lib - see line 6053 -if (CONFIG_DXVA2 AND HAVE_DXVA2API_COBJ AND HAVE_COTASKMEMFREE) - set(HAVE_DXVA2_LIB 1) -endif() - -# Threads - see line 6045 -if (HAVE_SYNC_VAL_COMPARE_AND_SWAP OR HAVE_ATOMIC_COMPARE_EXCHANGE) - set(HAVE_ATOMICS_GCC 1) -endif() -if (HAVE_ATOMIC_CAS_PTR OR HAVE_MACHINE_RW_BARRIER) - set(HAVE_ATOMICS_SUNCC 1) -endif() -if (HAVE_MEMORYBARRIER) - set(HAVE_ATOMICS_WIN32 1) -endif() -if (HAVE_PTHREADS OR HAVE_OS2THREADS OR HAVE_W32THREADS) - set(HAVE_ATOMICS_NATIVE 1) - set(HAVE_THREADS 1) -endif() - -# Backup/second test for flt_lim, see lines 4836-4837 -check_code(flt_lim cc ";" "char c[2 * !!(DBL_MAX == (double)DBL_MAX) - 1]" HAVE_FLT_LIM) - -# Run convenience function to set "0" for any variables not set to "1" -set(settings-list "ARCH_AARCH64;ARCH_ALPHA;ARCH_AMD64;ARCH_ARM;ARCH_AVR32;ARCH_AVR32_AP;ARCH_AVR32_UC;ARCH_BFIN;ARCH_IA64;ARCH_M68K;ARCH_MIPS;ARCH_MIPS64;ARCH_PARISC;ARCH_PPC;ARCH_PPC64;ARCH_S390;ARCH_SH4;ARCH_SPARC;ARCH_SPARC64;ARCH_TILEGX;ARCH_TILEPRO;ARCH_TOMI;ARCH_X86;ARCH_X86_32;ARCH_X86_64;HAVE_ARMV5TE;HAVE_ARMV6;HAVE_ARMV6T2;HAVE_ARMV8;HAVE_NEON;HAVE_VFP;HAVE_VFPV3;HAVE_SETEND;HAVE_ALTIVEC;HAVE_DCBZL;HAVE_LDBRX;HAVE_POWER8;HAVE_PPC4XX;HAVE_VSX;HAVE_AESNI;HAVE_AMD3DNOW;HAVE_AMD3DNOWEXT;HAVE_AVX;HAVE_AVX2;HAVE_FMA3;HAVE_FMA4;HAVE_MMX;HAVE_MMXEXT;HAVE_SSE;HAVE_SSE2;HAVE_SSE3;HAVE_SSE4;HAVE_SSE42;HAVE_SSSE3;HAVE_XOP;HAVE_CPUNOP;HAVE_I686;HAVE_MIPSFPU;HAVE_MIPS32R2;HAVE_MIPS32R5;HAVE_MIPS64R2;HAVE_MIPS32R6;HAVE_MIPS64R6;HAVE_MIPSDSP;HAVE_MIPSDSPR2;HAVE_MSA;HAVE_LOONGSON2;HAVE_LOONGSON3;HAVE_MMI;HAVE_ARMV5TE_EXTERNAL;HAVE_ARMV6_EXTERNAL;HAVE_ARMV6T2_EXTERNAL;HAVE_ARMV8_EXTERNAL;HAVE_NEON_EXTERNAL;HAVE_VFP_EXTERNAL;HAVE_VFPV3_EXTERNAL;HAVE_SETEND_EXTERNAL;HAVE_ALTIVEC_EXTERNAL;HAVE_DCBZL_EXTERNAL;HAVE_LDBRX_EXTERNAL;HAVE_POWER8_EXTERNAL;HAVE_PPC4XX_EXTERNAL;HAVE_VSX_EXTERNAL;HAVE_AESNI_EXTERNAL;HAVE_AMD3DNOW_EXTERNAL;HAVE_AMD3DNOWEXT_EXTERNAL;HAVE_AVX_EXTERNAL;HAVE_AVX2_EXTERNAL;HAVE_FMA3_EXTERNAL;HAVE_FMA4_EXTERNAL;HAVE_MMX_EXTERNAL;HAVE_MMXEXT_EXTERNAL;HAVE_SSE_EXTERNAL;HAVE_SSE2_EXTERNAL;HAVE_SSE3_EXTERNAL;HAVE_SSE4_EXTERNAL;HAVE_SSE42_EXTERNAL;HAVE_SSSE3_EXTERNAL;HAVE_XOP_EXTERNAL;HAVE_CPUNOP_EXTERNAL;HAVE_I686_EXTERNAL;HAVE_MIPSFPU_EXTERNAL;HAVE_MIPS32R2_EXTERNAL;HAVE_MIPS32R5_EXTERNAL;HAVE_MIPS64R2_EXTERNAL;HAVE_MIPS32R6_EXTERNAL;HAVE_MIPS64R6_EXTERNAL;HAVE_MIPSDSP_EXTERNAL;HAVE_MIPSDSPR2_EXTERNAL;HAVE_MSA_EXTERNAL;HAVE_LOONGSON2_EXTERNAL;HAVE_LOONGSON3_EXTERNAL;HAVE_MMI_EXTERNAL;HAVE_ARMV5TE_INLINE;HAVE_ARMV6_INLINE;HAVE_ARMV6T2_INLINE;HAVE_ARMV8_INLINE;HAVE_NEON_INLINE;HAVE_VFP_INLINE;HAVE_VFPV3_INLINE;HAVE_SETEND_INLINE;HAVE_ALTIVEC_INLINE;HAVE_DCBZL_INLINE;HAVE_LDBRX_INLINE;HAVE_POWER8_INLINE;HAVE_PPC4XX_INLINE;HAVE_VSX_INLINE;HAVE_AESNI_INLINE;HAVE_AMD3DNOW_INLINE;HAVE_AMD3DNOWEXT_INLINE;HAVE_AVX_INLINE;HAVE_AVX2_INLINE;HAVE_FMA3_INLINE;HAVE_FMA4_INLINE;HAVE_MMX_INLINE;HAVE_MMXEXT_INLINE;HAVE_SSE_INLINE;HAVE_SSE2_INLINE;HAVE_SSE3_INLINE;HAVE_SSE4_INLINE;HAVE_SSE42_INLINE;HAVE_SSSE3_INLINE;HAVE_XOP_INLINE;HAVE_CPUNOP_INLINE;HAVE_I686_INLINE;HAVE_MIPSFPU_INLINE;HAVE_MIPS32R2_INLINE;HAVE_MIPS32R5_INLINE;HAVE_MIPS64R2_INLINE;HAVE_MIPS32R6_INLINE;HAVE_MIPS64R6_INLINE;HAVE_MIPSDSP_INLINE;HAVE_MIPSDSPR2_INLINE;HAVE_MSA_INLINE;HAVE_LOONGSON2_INLINE;HAVE_LOONGSON3_INLINE;HAVE_MMI_INLINE;HAVE_ALIGNED_STACK;HAVE_FAST_64BIT;HAVE_FAST_CLZ;HAVE_FAST_CMOV;HAVE_LOCAL_ALIGNED_8;HAVE_LOCAL_ALIGNED_16;HAVE_LOCAL_ALIGNED_32;HAVE_SIMD_ALIGN_16;HAVE_ATOMICS_GCC;HAVE_ATOMICS_SUNCC;HAVE_ATOMICS_WIN32;HAVE_ATOMIC_CAS_PTR;HAVE_ATOMIC_COMPARE_EXCHANGE;HAVE_MACHINE_RW_BARRIER;HAVE_MEMORYBARRIER;HAVE_MM_EMPTY;HAVE_RDTSC;HAVE_SARESTART;HAVE_SYNC_VAL_COMPARE_AND_SWAP;HAVE_CABS;HAVE_CEXP;HAVE_INLINE_ASM;HAVE_SYMVER;HAVE_YASM;HAVE_BIGENDIAN;HAVE_FAST_UNALIGNED;HAVE_INCOMPATIBLE_LIBAV_ABI;HAVE_ALSA_ASOUNDLIB_H;HAVE_ALTIVEC_H;HAVE_ARPA_INET_H;HAVE_ASM_TYPES_H;HAVE_CDIO_PARANOIA_H;HAVE_CDIO_PARANOIA_PARANOIA_H;HAVE_DEV_BKTR_IOCTL_BT848_H;HAVE_DEV_BKTR_IOCTL_METEOR_H;HAVE_DEV_IC_BT8XX_H;HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H;HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H;HAVE_DIRECT_H;HAVE_DIRENT_H;HAVE_DLFCN_H;HAVE_D3D11_H;HAVE_DXVA_H;HAVE_ES2_GL_H;HAVE_GSM_H;HAVE_IO_H;HAVE_MACH_MACH_TIME_H;HAVE_MACHINE_IOCTL_BT848_H;HAVE_MACHINE_IOCTL_METEOR_H;HAVE_MALLOC_H;HAVE_OPENCV2_CORE_CORE_C_H;HAVE_OPENJPEG_2_1_OPENJPEG_H;HAVE_OPENJPEG_2_0_OPENJPEG_H;HAVE_OPENJPEG_1_5_OPENJPEG_H;HAVE_OPENGL_GL3_H;HAVE_POLL_H;HAVE_SNDIO_H;HAVE_SOUNDCARD_H;HAVE_SYS_MMAN_H;HAVE_SYS_PARAM_H;HAVE_SYS_RESOURCE_H;HAVE_SYS_SELECT_H;HAVE_SYS_SOUNDCARD_H;HAVE_SYS_TIME_H;HAVE_SYS_UN_H;HAVE_SYS_VIDEOIO_H;HAVE_TERMIOS_H;HAVE_UDPLITE_H;HAVE_UNISTD_H;HAVE_VALGRIND_VALGRIND_H;HAVE_WINDOWS_H;HAVE_WINSOCK2_H;HAVE_INTRINSICS_NEON;HAVE_ATANF;HAVE_ATAN2F;HAVE_CBRT;HAVE_CBRTF;HAVE_COPYSIGN;HAVE_COSF;HAVE_ERF;HAVE_EXP2;HAVE_EXP2F;HAVE_EXPF;HAVE_HYPOT;HAVE_ISFINITE;HAVE_ISINF;HAVE_ISNAN;HAVE_LDEXPF;HAVE_LLRINT;HAVE_LLRINTF;HAVE_LOG2;HAVE_LOG2F;HAVE_LOG10F;HAVE_LRINT;HAVE_LRINTF;HAVE_POWF;HAVE_RINT;HAVE_ROUND;HAVE_ROUNDF;HAVE_SINF;HAVE_TRUNC;HAVE_TRUNCF;HAVE_ACCESS;HAVE_ALIGNED_MALLOC;HAVE_ARC4RANDOM;HAVE_CLOCK_GETTIME;HAVE_CLOSESOCKET;HAVE_COMMANDLINETOARGVW;HAVE_COTASKMEMFREE;HAVE_CRYPTGENRANDOM;HAVE_DLOPEN;HAVE_FCNTL;HAVE_FLT_LIM;HAVE_FORK;HAVE_GETADDRINFO;HAVE_GETHRTIME;HAVE_GETOPT;HAVE_GETPROCESSAFFINITYMASK;HAVE_GETPROCESSMEMORYINFO;HAVE_GETPROCESSTIMES;HAVE_GETRUSAGE;HAVE_GETSYSTEMTIMEASFILETIME;HAVE_GETTIMEOFDAY;HAVE_GLOB;HAVE_GLXGETPROCADDRESS;HAVE_GMTIME_R;HAVE_INET_ATON;HAVE_ISATTY;HAVE_JACK_PORT_GET_LATENCY_RANGE;HAVE_KBHIT;HAVE_LOCALTIME_R;HAVE_LSTAT;HAVE_LZO1X_999_COMPRESS;HAVE_MACH_ABSOLUTE_TIME;HAVE_MAPVIEWOFFILE;HAVE_MEMALIGN;HAVE_MKSTEMP;HAVE_MMAP;HAVE_MPROTECT;HAVE_NANOSLEEP;HAVE_PEEKNAMEDPIPE;HAVE_POSIX_MEMALIGN;HAVE_PTHREAD_CANCEL;HAVE_SCHED_GETAFFINITY;HAVE_SETCONSOLETEXTATTRIBUTE;HAVE_SETCONSOLECTRLHANDLER;HAVE_SETMODE;HAVE_SETRLIMIT;HAVE_SLEEP;HAVE_STRERROR_R;HAVE_SYSCONF;HAVE_SYSCTL;HAVE_USLEEP;HAVE_UTGETOSTYPEFROMSTRING;HAVE_VIRTUALALLOC;HAVE_WGLGETPROCADDRESS;HAVE_PTHREADS;HAVE_OS2THREADS;HAVE_W32THREADS;HAVE_AS_DN_DIRECTIVE;HAVE_AS_FUNC;HAVE_AS_OBJECT_ARCH;HAVE_ASM_MOD_Q;HAVE_ATTRIBUTE_MAY_ALIAS;HAVE_ATTRIBUTE_PACKED;HAVE_EBP_AVAILABLE;HAVE_EBX_AVAILABLE;HAVE_GNU_AS;HAVE_GNU_WINDRES;HAVE_IBM_ASM;HAVE_INLINE_ASM_DIRECT_SYMBOL_REFS;HAVE_INLINE_ASM_LABELS;HAVE_INLINE_ASM_NONLOCAL_LABELS;HAVE_PRAGMA_DEPRECATED;HAVE_RSYNC_CONTIMEOUT;HAVE_SYMVER_ASM_LABEL;HAVE_SYMVER_GNU_ASM;HAVE_VFP_ARGS;HAVE_XFORM_ASM;HAVE_XMM_CLOBBERS;HAVE_CONDITION_VARIABLE_PTR;HAVE_SOCKLEN_T;HAVE_STRUCT_ADDRINFO;HAVE_STRUCT_GROUP_SOURCE_REQ;HAVE_STRUCT_IP_MREQ_SOURCE;HAVE_STRUCT_IPV6_MREQ;HAVE_STRUCT_POLLFD;HAVE_STRUCT_RUSAGE_RU_MAXRSS;HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE;HAVE_STRUCT_SOCKADDR_IN6;HAVE_STRUCT_SOCKADDR_SA_LEN;HAVE_STRUCT_SOCKADDR_STORAGE;HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC;HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE;HAVE_ATOMICS_NATIVE;HAVE_DOS_PATHS;HAVE_DXVA2_LIB;HAVE_DXVA2API_COBJ;HAVE_LIBC_MSVCRT;HAVE_LIBDC1394_1;HAVE_LIBDC1394_2;HAVE_MAKEINFO;HAVE_MAKEINFO_HTML;HAVE_PERL;HAVE_POD2MAN;HAVE_SDL;HAVE_SECTION_DATA_REL_RO;HAVE_TEXI2HTML;HAVE_THREADS;HAVE_VAAPI_X11;HAVE_VDPAU_X11;HAVE_WINRT;HAVE_XLIB;CONFIG_BSFS;CONFIG_DECODERS;CONFIG_ENCODERS;CONFIG_HWACCELS;CONFIG_PARSERS;CONFIG_INDEVS;CONFIG_OUTDEVS;CONFIG_FILTERS;CONFIG_DEMUXERS;CONFIG_MUXERS;CONFIG_PROTOCOLS;CONFIG_DOC;CONFIG_HTMLPAGES;CONFIG_MANPAGES;CONFIG_PODPAGES;CONFIG_TXTPAGES;CONFIG_AVIO_READING_EXAMPLE;CONFIG_AVIO_DIR_CMD_EXAMPLE;CONFIG_DECODING_ENCODING_EXAMPLE;CONFIG_DEMUXING_DECODING_EXAMPLE;CONFIG_EXTRACT_MVS_EXAMPLE;CONFIG_FILTER_AUDIO_EXAMPLE;CONFIG_FILTERING_AUDIO_EXAMPLE;CONFIG_FILTERING_VIDEO_EXAMPLE;CONFIG_METADATA_EXAMPLE;CONFIG_MUXING_EXAMPLE;CONFIG_QSVDEC_EXAMPLE;CONFIG_REMUXING_EXAMPLE;CONFIG_RESAMPLING_AUDIO_EXAMPLE;CONFIG_SCALING_VIDEO_EXAMPLE;CONFIG_TRANSCODE_AAC_EXAMPLE;CONFIG_TRANSCODING_EXAMPLE;CONFIG_AVISYNTH;CONFIG_BZLIB;CONFIG_CHROMAPRINT;CONFIG_CRYSTALHD;CONFIG_DECKLINK;CONFIG_FREI0R;CONFIG_GCRYPT;CONFIG_GMP;CONFIG_GNUTLS;CONFIG_ICONV;CONFIG_LADSPA;CONFIG_LIBASS;CONFIG_LIBBLURAY;CONFIG_LIBBS2B;CONFIG_LIBCACA;CONFIG_LIBCDIO;CONFIG_LIBCELT;CONFIG_LIBDC1394;CONFIG_LIBDCADEC;CONFIG_LIBFAAC;CONFIG_LIBFDK_AAC;CONFIG_LIBFLITE;CONFIG_LIBFONTCONFIG;CONFIG_LIBFREETYPE;CONFIG_LIBFRIBIDI;CONFIG_LIBGME;CONFIG_LIBGSM;CONFIG_LIBIEC61883;CONFIG_LIBILBC;CONFIG_LIBKVAZAAR;CONFIG_LIBMFX;CONFIG_LIBMODPLUG;CONFIG_LIBMP3LAME;CONFIG_LIBNUT;CONFIG_LIBOPENCORE_AMRNB;CONFIG_LIBOPENCORE_AMRWB;CONFIG_LIBOPENCV;CONFIG_LIBOPENH264;CONFIG_LIBOPENJPEG;CONFIG_LIBOPUS;CONFIG_LIBPULSE;CONFIG_LIBRTMP;CONFIG_LIBRUBBERBAND;CONFIG_LIBSCHROEDINGER;CONFIG_LIBSHINE;CONFIG_LIBSMBCLIENT;CONFIG_LIBSNAPPY;CONFIG_LIBSOXR;CONFIG_LIBSPEEX;CONFIG_LIBSSH;CONFIG_LIBTESSERACT;CONFIG_LIBTHEORA;CONFIG_LIBTWOLAME;CONFIG_LIBUTVIDEO;CONFIG_LIBV4L2;CONFIG_LIBVIDSTAB;CONFIG_LIBVO_AMRWBENC;CONFIG_LIBVORBIS;CONFIG_LIBVPX;CONFIG_LIBWAVPACK;CONFIG_LIBWEBP;CONFIG_LIBX264;CONFIG_LIBX265;CONFIG_LIBXAVS;CONFIG_LIBXCB;CONFIG_LIBXCB_SHM;CONFIG_LIBXCB_SHAPE;CONFIG_LIBXCB_XFIXES;CONFIG_LIBXVID;CONFIG_LIBZIMG;CONFIG_LIBZMQ;CONFIG_LIBZVBI;CONFIG_LZMA;CONFIG_MMAL;CONFIG_NETCDF;CONFIG_NVENC;CONFIG_OPENAL;CONFIG_OPENCL;CONFIG_OPENGL;CONFIG_OPENSSL;CONFIG_SCHANNEL;CONFIG_SDL;CONFIG_SECURETRANSPORT;CONFIG_X11GRAB;CONFIG_XLIB;CONFIG_ZLIB;CONFIG_FTRAPV;CONFIG_GRAY;CONFIG_HARDCODED_TABLES;CONFIG_RUNTIME_CPUDETECT;CONFIG_SAFE_BITSTREAM_READER;CONFIG_SHARED;CONFIG_SMALL;CONFIG_STATIC;CONFIG_SWSCALE_ALPHA;CONFIG_D3D11VA;CONFIG_DXVA2;CONFIG_VAAPI;CONFIG_VDA;CONFIG_VDPAU;CONFIG_XVMC") - -foreach(option IN LISTS settings-list) - set_disabled_to_zero(${option}) -endforeach() - -# Generate config.h file -configure_file(config.h.in config.h @ONLY) - -# Generate avconfig.h file -# Test for BIGENDIAN -if(CMAKE_C_BYTE_ORDER STREQUAL "BIG_ENDIAN") - set(IS_BIGENDIAN 1) -else() - set(IS_BIGENDIAN 0) -endif() - -file(CONFIGURE - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libavutil/avconfig.h" - CONTENT -" -/* Generated by cmake for use with ppsspp-ffmpeg module */ -#ifndef AVUTIL_AVCONFIG_H -#define AVUTIL_AVCONFIG_H -#define AV_HAVE_BIGENDIAN ${IS_BIGENDIAN} -#define AV_HAVE_FAST_UNALIGNED 0 -#define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0 -#endif /* AVUTIL_AVCONFIG_H */ -" - NEWLINE_STYLE LF -) - -# Generate ffversion.h header file -# In ffmpeg's version.sh script, 'git' is used, but that's an external dependency we don't otherwise need -# we can just output say the first 7 digits of .git/refs/heads/master, assuming it exists, with hardcoded fallback -set(FILE_PATH "${SRC_DIR}/.git/refs/heads/master") -if(EXISTS ${FILE_PATH}) - file(READ "${FILE_PATH}" GIT_HASH) - string(SUBSTRING "${GIT_HASH}" 0 7 GIT_HASH) - set(GIT_HASH \"${GIT_HASH}\") -else() - set(GIT_HASH \"1e3b496\") -endif() - -file(CONFIGURE - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/libavutil/ffversion.h" - CONTENT -" -/* Automatically generated by cmake for use with ppsspp-ffmpeg module */ -#ifndef AVUTIL_FFVERSION_H -#define AVUTIL_FFVERSION_H -#define FFMPEG_VERSION ${GIT_HASH} -#endif /* AVUTIL_FFVERSION_H */ -" - NEWLINE_STYLE LF -) diff --git a/ext/ffmpeg-build/configure_functions.cmake b/ext/ffmpeg-build/configure_functions.cmake deleted file mode 100644 index 82d9cee1ec..0000000000 --- a/ext/ffmpeg-build/configure_functions.cmake +++ /dev/null @@ -1,289 +0,0 @@ -# configure_functions.cmake - various functions from ffmpeg's configure script rewritten for cmake - -# Note: in order to not break ffmpeg, we need to arrive at the same result as ffmpeg's configure script's checks, so instead of relying solely on cmake modules, I ported ffmpeg's configure script's functions needed below. - -# Create a directory to store all of our tests -set(CONFIG_TESTS_DIR "${CMAKE_CURRENT_BINARY_DIR}/configure_checks") -file(MAKE_DIRECTORY ${CONFIG_TESTS_DIR}) - -include(CheckIncludeFile) -include(CheckIncludeFiles) - -# Rewrite of ffmpeg's check_cc function at line 866 of configure script -function(check_cc target ARGUMENTS RESULT_VAR) - set(EXTRA_LIBS "") - set(EXTRA_FLAGS "") - set(ADDL_LIB_DIRS_CLEAN "") - set(COMPILE_INCLUDES "") - - foreach(arg IN ITEMS ${ARGN} ${ADDL_LIB_DIRS} ${ADDL_INCLUDES}) - # Windows-specific libs - if(MSVC AND arg MATCHES "^-l(msvcrt|shell32|advapi32|user32|gdi32|kernel32|psapi|ws2_32)") - string(REGEX REPLACE "^-l" "" clean_lib "${arg}") - list(APPEND EXTRA_LIBS "${clean_lib}.lib") - - # Standard UNIX linker flags - elseif(arg MATCHES "^-l") - list(APPEND EXTRA_LIBS "${arg}") - - # Absolute library paths (.lib, .a, .so, etc.) - elseif(IS_ABSOLUTE "${arg}" AND arg MATCHES "\\.(lib|a|so|dylib)$") - list(APPEND EXTRA_LIBS "${arg}") - - # Library Directory flags (Unix: -L, MSVC: /LIBPATH: or -libpath:) - elseif(arg MATCHES "^-L") - string(SUBSTRING "${arg}" 2 -1 clean_dir) - list(APPEND ADDL_LIB_DIRS_CLEAN "${clean_dir}") - elseif(arg MATCHES "^[-/][Ll][Ii][Bb][Pp][Aa][Tt][Hh]:") - string(REGEX REPLACE "^[-/][Ll][Ii][Bb][Pp][Aa][Tt][Hh]:" "" clean_dir "${arg}") - list(APPEND ADDL_LIB_DIRS_CLEAN "${clean_dir}") - - # Include Directory flags (Unix: -I, MSVC: /I or -I) or raw paths from ADDL_INCLUDES - elseif(arg MATCHES "^[-/]I") - string(REGEX REPLACE "^[-/]I" "" clean_dir "${arg}") - list(APPEND COMPILE_INCLUDES "${clean_dir}") - - # Deal with raw paths if they didn't match any of the above patterns - elseif(IS_DIRECTORY "${arg}") - if(arg IN_LIST ADDL_INCLUDES) - list(APPEND COMPILE_INCLUDES "${arg}") - else() - list(APPEND ADDL_LIB_DIRS_CLEAN "${arg}") - endif() - - # Everything else is a compiler option flag - else() - list(APPEND EXTRA_FLAGS "${arg}") - endif() - endforeach() - - # Clean up duplicate paths/extra libs - foreach(list_var IN ITEMS EXTRA_LIBS ADDL_LIB_DIRS_CLEAN EXTRA_FLAGS COMPILE_INCLUDES) - if(${list_var}) - list(REMOVE_DUPLICATES ${list_var}) - endif() - endforeach() - - # Check if ARGUMENTS contains a variation of main function definition - string(REGEX MATCH "int[ \t\r\n]+main[ \t\r\n]*\\(" HAS_MAIN "${ARGUMENTS}") - if(NOT HAS_MAIN) - # Append a standard int main() block to the end of the existing source code as a failsafe - string(APPEND ARGUMENTS "\n\nint main(void) {\n return 0;\n}\n") - endif() - - set(TEST_SOURCE "${CONFIG_TESTS_DIR}/${target}.c") - file(WRITE "${TEST_SOURCE}" "${ARGUMENTS}") - set(OUTPUT_OBJ "${CONFIG_TESTS_DIR}/${target}.o") - try_compile(COMPILE_RESULT - "${CONFIG_TESTS_DIR}" - "${TEST_SOURCE}" - COMPILE_DEFINITIONS ${EXTRA_FLAGS} - LINK_LIBRARIES ${EXTRA_LIBS} - CMAKE_FLAGS - "-DINCLUDE_DIRECTORIES:PATH=${COMPILE_INCLUDES}" - "-DLINK_DIRECTORIES:PATH=${ADDL_LIB_DIRS_CLEAN}" - COPY_FILE "${OUTPUT_OBJ}" - OUTPUT_VARIABLE COMPILE_OUTPUT - ) - - if(COMPILE_RESULT) - message(STATUS "${target} check passed") - set(${RESULT_VAR} 1 PARENT_SCOPE) - else() - message(STATUS "${target} check failed") # Standard message to not clutter build logs overmuch -# message(STATUS "${target} check failed. Error:\n${COMPILE_OUTPUT}") -# message(STATUS "${target} check failed. See ${target}_error.log for details") -# file(WRITE "${CONFIG_TESTS_DIR}/${target}_error.log" "${COMPILE_OUTPUT}") - endif() -endfunction() - -# Rewrite of fmpeg's check_ld function at line 953 of configure script -function(check_ld target ARGUMENTS EXTERNAL_LIB RESULT_VAR) - set(ALL_ARGS ${ARGN}) - list(APPEND ALL_ARGS "${EXTERNAL_LIB}") - check_cc("${target}" "${ARGUMENTS}" CC_RESULT ${ALL_ARGS}) - if(CC_RESULT) - set(${RESULT_VAR} 1 PARENT_SCOPE) - endif() -endfunction() - -# Rewrite of ffmpeg's check_code function at line 972 of configure script -function(check_code target compiler headers ARGUMENTS RESULT_VAR) - set(EXTRA_FLAGS "") - foreach(arg IN ITEMS ${ARGN}) - # Append to EXTRA_FLAGS - if(EXTRA_FLAGS STREQUAL "") - set(EXTRA_FLAGS "${arg}") - else() - list(APPEND EXTRA_FLAGS "${arg}") - endif() - endforeach() - # Check whether more than 1 header file was passed as a function argument - list(LENGTH headers len) - if (len GREATER 1) - foreach(header IN LISTS headers) - string(APPEND HEADERS_STRING "#include ${header}\n") - endforeach() - elseif (headers STREQUAL "") - set(HEADERS_STRING "") - else() - set(HEADERS_STRING "#include ${headers}") - endif() - set(test_func "check_${compiler}") - if (NOT ${test_func} STREQUAL "check_ld") - set(TEST_CODE "${HEADERS_STRING}\nint main(void) { ${ARGUMENTS};\nreturn 0; }") - cmake_language(CALL ${test_func} ${target} "${TEST_CODE}" ${RESULT_VAR} ${EXTRA_FLAGS}) - else() - set(TEST_CODE "${HEADERS_STRING}\nint main(void) { ${ARGUMENTS};\nreturn 0; }") - cmake_language(CALL ${test_func} ${target} "${TEST_CODE}" "" ${RESULT_VAR} ${EXTRA_FLAGS}) - endif() - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_header function at line 1053 of configure script -function(check_header target header flag RESULT_VAR) - set(Backup_Flags ${CMAKE_REQUIRED_FLAGS}) - if(flag) - string(APPEND CMAKE_REQUIRED_FLAGS " ${flag}") - endif() - if (header MATCHES ";") - check_include_files("${header}" ${RESULT_VAR}) - else() - check_include_file(${header} ${RESULT_VAR} "${flag}") - endif() - set(CMAKE_REQUIRED_FLAGS ${Backup_Flags}) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_func function at line 1076 of configure script -function(check_func target func RESULT_VAR) - set(EXTRA_FLAGS "") - foreach(arg IN ITEMS ${ARGN}) - # Append to EXTRA_FLAGS - if(EXTRA_FLAGS STREQUAL "") - set(EXTRA_FLAGS "${arg}") - else() - list(APPEND EXTRA_FLAGS "${arg}") - endif() - endforeach() - set(TEST_CODE "extern int ${func}();\nint main(void){ ${func}(); }") - check_ld(${target} "${TEST_CODE}" "" ${RESULT_VAR} ${EXTRA_FLAGS}) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_complexfunc function at line 1087 of configure script -function(check_complexfunc target func RESULT_VAR) - set(TEST_CODE "#include \n#include \nfloat foo(complex float f, complex float g) { return ${func}(f * I); \}\nint main(void){ return (int) foo; \}") - if(MSVC) - check_ld(${target} "${TEST_CODE}" "-lmsvcrt" ${RESULT_VAR}) - else() - check_ld(${target} "${TEST_CODE}" "-lm" ${RESULT_VAR}) - endif() - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_mathfunc function at line 1102 of configure script -function(check_mathfunc target func lib RESULT_VAR) - set(args1 "f, g") - set(args2 "f") - if ("${target}" MATCHES "atan2f|copysign|hypot|ldexpf|powf") - set(TEST_CODE "#include \nfloat foo(float f, float g) { return ${func}(${args1}); }\nint main(void){ return (int) foo; }") - else() - set(TEST_CODE "#include \nfloat foo(float f, float g) { return ${func}(${args2}); }\nint main(void){ return (int) foo; }") - endif() - check_ld(${target} "${TEST_CODE}" "${lib}" ${RESULT_VAR}) - if (${RESULT_VAR} EQUAL 1) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) - endif() -endfunction() - -# Rewrite of ffmpeg's check_func_headers function at line 1116 of configure script -function(check_func_headers target headers funcs lib RESULT_VAR) - # Check whether more than 1 header file was passed as an argument - list(LENGTH headers len) - if (len GREATER 1) - foreach(header IN LISTS headers) - string(APPEND HEADERS_STRING "#include ${header}\n") - endforeach() - else() - set(HEADERS_STRING "#include ${headers}") - endif() - # Check whether more than 1 function to test was passed as an argument - list(LENGTH funcs len) - if (len GREATER 1) - foreach(func IN LISTS funcs) - string(APPEND FUNCS_STRING "long check_${func}(void) { return (long) ${func}; }\n") - endforeach() - else() - set(FUNCS_STRING "long check_${funcs}(void) { return (long) ${funcs}; }\n") - endif() - set(TEST_CODE "${HEADERS_STRING}\n${FUNCS_STRING}\nint main(void) { return 0; }") - check_ld(${target} "${TEST_CODE}" "${lib}" ${RESULT_VAR}) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) - # To Do: in ffmpeg's configure script, some results prompt adding additional system libs. -endfunction() - -# Rewrite of ffmpeg's check_cpp_condition function at line 1151 of configure script -function(check_cpp_condition target header condition RESULT_VAR) - set(HEADER_STRING "#include <${header}>") - set(CONDITION_STRING "#if !\(${condition})\n#error \"unsatisfied condition: ${condition}\"\n#endif") - set(TEST_CODE "${HEADER_STRING}\n${CONDITION_STRING}\nint x;") - check_cc(${target} "${TEST_CODE}" ${RESULT_VAR}) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_lib function at line 1164 of configure script -function(check_lib target header func flag RESULT_VAR) - set(HEADER_STRING "${header}") - set(FUNC_STRING "${func}") - set(HEADER_RESULT_VAR "HEADER_${RESULT_VAR}") - check_header("${target}_header" "${HEADER_STRING}" "${flag}" ${HEADER_RESULT_VAR}) - if (${HEADER_RESULT_VAR} EQUAL 1) - check_func(${target} "${func}" ${RESULT_VAR} ${flag}) - endif() - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_lib2 function at line 1164 of configure script -function(check_lib2 target headers funcs lib RESULT_VAR) - check_func_headers(${target} "${headers}" "${funcs}" "${lib}" ${RESULT_VAR}) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_type function at line 1237 of configure script -function(check_type target headers type RESULT_VAR) - check_code(${target} cc "${headers}" "${type} v" ${RESULT_VAR}) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_struct function at line 1246 of configure script -function(check_struct target headers struct member RESULT_VAR) - set(EXTRA_FLAGS "") - foreach(arg IN ITEMS ${ARGN}) - # Append to EXTRA_FLAGS - if(EXTRA_FLAGS STREQUAL "") - set(EXTRA_FLAGS "${arg}") - else() - list(APPEND EXTRA_FLAGS "${arg}") - endif() - endforeach() - check_code(${target} cc "${headers}" "const void *p = &((${struct} *)0)->${member}" ${RESULT_VAR} ${EXTRA_FLAGS}) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) -endfunction() - -# Rewrite of ffmpeg's check_builtin function at line 1257 of configure script -function(check_builtin target headers builtin RESULT_VAR) - check_code(${target} ld "${headers}" "${builtin}" ${RESULT_VAR}) - set(${RESULT_VAR} "${${RESULT_VAR}}" PARENT_SCOPE) - # Note: configure actually invokes check_code with an extra argument! - # Now that we've refactored check_cc to accept optional arguments, we could deal with this here if needed -endfunction() - -# convenience function at the end that sets any truthy variables to "1" and any falsy variables to "0" -function(set_disabled_to_zero option) - if(${option}) - set(${option} 1 PARENT_SCOPE) - else() - set(${option} 0 PARENT_SCOPE) - endif() -endfunction() diff --git a/ext/ffmpeg-build/include/libavutil/avconfig.h b/ext/ffmpeg-build/include/libavutil/avconfig.h new file mode 100644 index 0000000000..282ad892b8 --- /dev/null +++ b/ext/ffmpeg-build/include/libavutil/avconfig.h @@ -0,0 +1,7 @@ +/* Written by FFmpeg's configure in a normal build. Kept by hand here, see ../../config.h. */ +#ifndef AVUTIL_AVCONFIG_H +#define AVUTIL_AVCONFIG_H +#define AV_HAVE_BIGENDIAN 0 +#define AV_HAVE_FAST_UNALIGNED 0 +#define AV_HAVE_INCOMPATIBLE_LIBAV_ABI 0 +#endif /* AVUTIL_AVCONFIG_H */ diff --git a/ext/ffmpeg-build/libavutil/ffversion.h b/ext/ffmpeg-build/libavutil/ffversion.h new file mode 100644 index 0000000000..3818cfd87f --- /dev/null +++ b/ext/ffmpeg-build/libavutil/ffversion.h @@ -0,0 +1,5 @@ +/* Written by FFmpeg's version.sh in a normal build. Kept by hand here, see ../config.h. */ +#ifndef AVUTIL_FFVERSION_H +#define AVUTIL_FFVERSION_H +#define FFMPEG_VERSION "3.0.2-ppsspp" +#endif /* AVUTIL_FFVERSION_H */ diff --git a/ext/ffmpeg-build/libs/libavcodec.cmake b/ext/ffmpeg-build/libs/libavcodec.cmake deleted file mode 100644 index 86926fc290..0000000000 --- a/ext/ffmpeg-build/libs/libavcodec.cmake +++ /dev/null @@ -1,184 +0,0 @@ -# libavcodec source files (all platforms) -set(LIBAVCODEC_SOURCE_FILES - ${LIBAVCODEC_SRC_DIR}/aac_ac3_parser.c - ${LIBAVCODEC_SRC_DIR}/aac_parser.c - ${LIBAVCODEC_SRC_DIR}/aacadtsdec.c - ${LIBAVCODEC_SRC_DIR}/aacdec.c - ${LIBAVCODEC_SRC_DIR}/aacps_float.c - ${LIBAVCODEC_SRC_DIR}/aacpsdsp_float.c - ${LIBAVCODEC_SRC_DIR}/aacsbr.c - ${LIBAVCODEC_SRC_DIR}/aactab.c - ${LIBAVCODEC_SRC_DIR}/aandcttab.c - ${LIBAVCODEC_SRC_DIR}/allcodecs.c - ${LIBAVCODEC_SRC_DIR}/audioconvert.c - ${LIBAVCODEC_SRC_DIR}/avdct.c - ${LIBAVCODEC_SRC_DIR}/avfft.c - ${LIBAVCODEC_SRC_DIR}/avpacket.c - ${LIBAVCODEC_SRC_DIR}/avpicture.c - ${LIBAVCODEC_SRC_DIR}/bitstream_filter.c - ${LIBAVCODEC_SRC_DIR}/bitstream.c - ${LIBAVCODEC_SRC_DIR}/blockdsp.c - ${LIBAVCODEC_SRC_DIR}/bswapdsp.c - ${LIBAVCODEC_SRC_DIR}/cabac.c - ${LIBAVCODEC_SRC_DIR}/codec_desc.c - ${LIBAVCODEC_SRC_DIR}/d3d11va.c - ${LIBAVCODEC_SRC_DIR}/dct.c - ${LIBAVCODEC_SRC_DIR}/dct32_fixed.c - ${LIBAVCODEC_SRC_DIR}/dct32_float.c - ${LIBAVCODEC_SRC_DIR}/dirac.c - ${LIBAVCODEC_SRC_DIR}/dv_profile.c - ${LIBAVCODEC_SRC_DIR}/error_resilience.c - ${LIBAVCODEC_SRC_DIR}/exif.c - ${LIBAVCODEC_SRC_DIR}/faandct.c - ${LIBAVCODEC_SRC_DIR}/faanidct.c - ${LIBAVCODEC_SRC_DIR}/fdctdsp.c - ${LIBAVCODEC_SRC_DIR}/fft_fixed_32.c - ${LIBAVCODEC_SRC_DIR}/fft_fixed.c - ${LIBAVCODEC_SRC_DIR}/fft_float.c - ${LIBAVCODEC_SRC_DIR}/fft_init_table.c - ${LIBAVCODEC_SRC_DIR}/ffv1.c - ${LIBAVCODEC_SRC_DIR}/ffv1enc.c - ${LIBAVCODEC_SRC_DIR}/flvdec.c - ${LIBAVCODEC_SRC_DIR}/flvenc.c - ${LIBAVCODEC_SRC_DIR}/frame_thread_encoder.c - ${LIBAVCODEC_SRC_DIR}/golomb.c - ${LIBAVCODEC_SRC_DIR}/h263_parser.c - ${LIBAVCODEC_SRC_DIR}/h263.c - ${LIBAVCODEC_SRC_DIR}/h263data.c - ${LIBAVCODEC_SRC_DIR}/h263dec.c - ${LIBAVCODEC_SRC_DIR}/h263dsp.c - ${LIBAVCODEC_SRC_DIR}/h264_cabac.c - ${LIBAVCODEC_SRC_DIR}/h264_cavlc.c - ${LIBAVCODEC_SRC_DIR}/h264_direct.c - ${LIBAVCODEC_SRC_DIR}/h264_loopfilter.c - ${LIBAVCODEC_SRC_DIR}/h264_mb.c - ${LIBAVCODEC_SRC_DIR}/h264_parser.c - ${LIBAVCODEC_SRC_DIR}/h264_picture.c - ${LIBAVCODEC_SRC_DIR}/h264_ps.c - ${LIBAVCODEC_SRC_DIR}/h264_refs.c - ${LIBAVCODEC_SRC_DIR}/h264_sei.c - ${LIBAVCODEC_SRC_DIR}/h264_slice.c - ${LIBAVCODEC_SRC_DIR}/h264.c - ${LIBAVCODEC_SRC_DIR}/h264chroma.c - ${LIBAVCODEC_SRC_DIR}/h264dsp.c - ${LIBAVCODEC_SRC_DIR}/h264idct.c - ${LIBAVCODEC_SRC_DIR}/h264pred.c - ${LIBAVCODEC_SRC_DIR}/h264qpel.c - ${LIBAVCODEC_SRC_DIR}/hpeldsp.c - ${LIBAVCODEC_SRC_DIR}/huffman.c - ${LIBAVCODEC_SRC_DIR}/huffyuv.c - ${LIBAVCODEC_SRC_DIR}/huffyuvenc.c - ${LIBAVCODEC_SRC_DIR}/huffyuvencdsp.c - ${LIBAVCODEC_SRC_DIR}/idctdsp.c - ${LIBAVCODEC_SRC_DIR}/imdct15.c - ${LIBAVCODEC_SRC_DIR}/imgconvert.c - ${LIBAVCODEC_SRC_DIR}/intelh263dec.c - ${LIBAVCODEC_SRC_DIR}/ituh263dec.c - ${LIBAVCODEC_SRC_DIR}/ituh263enc.c - ${LIBAVCODEC_SRC_DIR}/jfdctfst.c - ${LIBAVCODEC_SRC_DIR}/jfdctint.c - ${LIBAVCODEC_SRC_DIR}/jpegtables.c - ${LIBAVCODEC_SRC_DIR}/jrevdct.c - ${LIBAVCODEC_SRC_DIR}/kbdwin.c - ${LIBAVCODEC_SRC_DIR}/latm_parser.c - ${LIBAVCODEC_SRC_DIR}/lossless_videodsp.c - ${LIBAVCODEC_SRC_DIR}/mathtables.c - ${LIBAVCODEC_SRC_DIR}/mdct_fixed_32.c - ${LIBAVCODEC_SRC_DIR}/mdct_fixed.c - ${LIBAVCODEC_SRC_DIR}/mdct_float.c - ${LIBAVCODEC_SRC_DIR}/me_cmp.c - ${LIBAVCODEC_SRC_DIR}/mjpegbdec.c - ${LIBAVCODEC_SRC_DIR}/mjpegdec.c - ${LIBAVCODEC_SRC_DIR}/motion_est.c - ${LIBAVCODEC_SRC_DIR}/mpeg_er.c - ${LIBAVCODEC_SRC_DIR}/mpeg12.c - ${LIBAVCODEC_SRC_DIR}/mpeg12data.c - ${LIBAVCODEC_SRC_DIR}/mpeg12dec.c - ${LIBAVCODEC_SRC_DIR}/mpeg4audio.c - ${LIBAVCODEC_SRC_DIR}/mpeg4video_parser.c - ${LIBAVCODEC_SRC_DIR}/mpeg4video.c - ${LIBAVCODEC_SRC_DIR}/mpeg4videodec.c - ${LIBAVCODEC_SRC_DIR}/mpeg4videoenc.c - ${LIBAVCODEC_SRC_DIR}/mpegaudio_parser.c - ${LIBAVCODEC_SRC_DIR}/mpegaudio.c - ${LIBAVCODEC_SRC_DIR}/mpegaudiodata.c - ${LIBAVCODEC_SRC_DIR}/mpegaudiodec_fixed.c - ${LIBAVCODEC_SRC_DIR}/mpegaudiodecheader.c - ${LIBAVCODEC_SRC_DIR}/mpegaudiodsp_data.c - ${LIBAVCODEC_SRC_DIR}/mpegaudiodsp_fixed.c - ${LIBAVCODEC_SRC_DIR}/mpegaudiodsp_float.c - ${LIBAVCODEC_SRC_DIR}/mpegaudiodsp.c - ${LIBAVCODEC_SRC_DIR}/mpegpicture.c - ${LIBAVCODEC_SRC_DIR}/mpegutils.c - ${LIBAVCODEC_SRC_DIR}/mpegvideo_enc.c - ${LIBAVCODEC_SRC_DIR}/mpegvideo_motion.c - ${LIBAVCODEC_SRC_DIR}/mpegvideo_parser.c - ${LIBAVCODEC_SRC_DIR}/mpegvideo.c - ${LIBAVCODEC_SRC_DIR}/mpegvideodata.c - ${LIBAVCODEC_SRC_DIR}/mpegvideodsp.c - ${LIBAVCODEC_SRC_DIR}/mpegvideoencdsp.c - ${LIBAVCODEC_SRC_DIR}/options.c - ${LIBAVCODEC_SRC_DIR}/parser.c - ${LIBAVCODEC_SRC_DIR}/pcm.c - ${LIBAVCODEC_SRC_DIR}/pixblockdsp.c - ${LIBAVCODEC_SRC_DIR}/profiles.c - ${LIBAVCODEC_SRC_DIR}/qpeldsp.c - ${LIBAVCODEC_SRC_DIR}/qsv_api.c - ${LIBAVCODEC_SRC_DIR}/rangecoder.c - ${LIBAVCODEC_SRC_DIR}/ratecontrol.c - ${LIBAVCODEC_SRC_DIR}/raw.c - ${LIBAVCODEC_SRC_DIR}/rdft.c - ${LIBAVCODEC_SRC_DIR}/resample.c - ${LIBAVCODEC_SRC_DIR}/resample2.c - ${LIBAVCODEC_SRC_DIR}/rl.c - ${LIBAVCODEC_SRC_DIR}/sbrdsp.c - ${LIBAVCODEC_SRC_DIR}/simple_idct.c - ${LIBAVCODEC_SRC_DIR}/sinewin_fixed.c - ${LIBAVCODEC_SRC_DIR}/sinewin.c - ${LIBAVCODEC_SRC_DIR}/startcode.c - ${LIBAVCODEC_SRC_DIR}/tiff_common.c - ${LIBAVCODEC_SRC_DIR}/utils.c - ${LIBAVCODEC_SRC_DIR}/videodsp.c - ${LIBAVCODEC_SRC_DIR}/vorbis_parser.c - ${LIBAVCODEC_SRC_DIR}/xiph.c - ${LIBAVCODEC_SRC_DIR}/xvididct.c -) - -# includes to ship with libavcodec -set(LIBAVCODEC_HEADERS - ${LIBAVCODEC_SRC_DIR}/avcodec.h - ${LIBAVCODEC_SRC_DIR}/avdct.h - ${LIBAVCODEC_SRC_DIR}/avfft.h - ${LIBAVCODEC_SRC_DIR}/dv_profile.h - ${LIBAVCODEC_SRC_DIR}/d3d11va.h - ${LIBAVCODEC_SRC_DIR}/dirac.h - ${LIBAVCODEC_SRC_DIR}/dxva2.h - ${LIBAVCODEC_SRC_DIR}/qsv.h - ${LIBAVCODEC_SRC_DIR}/vaapi.h - ${LIBAVCODEC_SRC_DIR}/vda.h - ${LIBAVCODEC_SRC_DIR}/vdpau.h - ${LIBAVCODEC_SRC_DIR}/version.h - ${LIBAVCODEC_SRC_DIR}/videotoolbox.h - ${LIBAVCODEC_SRC_DIR}/vorbis_parser.h - ${LIBAVCODEC_SRC_DIR}/xvmc.h -) - -# OS and configure option/check specific additional sources -if (WIN32) - list(APPEND LIBAVCODEC_SOURCE_FILES ${LIBAVCODEC_SRC_DIR}/file_open.c) - if (CONFIG_DXVA2 AND HAVE_DXVA2_LIB) - list(APPEND LIBAVCODEC_SOURCE_FILES ${LIBAVCODEC_SRC_DIR}/dxva2.c) - endif() -endif() - -if (Threads_FOUND) - list(APPEND LIBAVCODEC_SOURCE_FILES ${LIBAVCODEC_SRC_DIR}/pthread.c) - list(APPEND LIBAVCODEC_SOURCE_FILES ${LIBAVCODEC_SRC_DIR}/pthread_slice.c) - list(APPEND LIBAVCODEC_SOURCE_FILES ${LIBAVCODEC_SRC_DIR}/pthread_frame.c) -endif() - -# Experimental addition to troubleshoot stubborn builds that inject ARCH_X86 -if (ARCH_X86) - list(APPEND LIBAVCODEC_SOURCE_FILES ${LIBAVCODEC_SRC_DIR}/x86/lossless_videodsp_init.c) -endif() - diff --git a/ext/ffmpeg-build/libs/libavformat.cmake b/ext/ffmpeg-build/libs/libavformat.cmake deleted file mode 100644 index b4fc799577..0000000000 --- a/ext/ffmpeg-build/libs/libavformat.cmake +++ /dev/null @@ -1,51 +0,0 @@ -# libavformat source files (all platforms) -set(LIBAVFORMAT_SOURCE_FILES - ${LIBAVFORMAT_SRC_DIR}/aacdec.c - ${LIBAVFORMAT_SRC_DIR}/allformats.c - ${LIBAVFORMAT_SRC_DIR}/apetag.c - ${LIBAVFORMAT_SRC_DIR}/avidec.c - ${LIBAVFORMAT_SRC_DIR}/avienc.c - ${LIBAVFORMAT_SRC_DIR}/avio.c - ${LIBAVFORMAT_SRC_DIR}/aviobuf.c - ${LIBAVFORMAT_SRC_DIR}/avlanguage.c - ${LIBAVFORMAT_SRC_DIR}/cutils.c - ${LIBAVFORMAT_SRC_DIR}/dump.c - ${LIBAVFORMAT_SRC_DIR}/file.c - ${LIBAVFORMAT_SRC_DIR}/format.c - ${LIBAVFORMAT_SRC_DIR}/h263dec.c - ${LIBAVFORMAT_SRC_DIR}/h264dec.c - ${LIBAVFORMAT_SRC_DIR}/id3v1.c - ${LIBAVFORMAT_SRC_DIR}/id3v2.c - ${LIBAVFORMAT_SRC_DIR}/img2.c - ${LIBAVFORMAT_SRC_DIR}/isom.c - ${LIBAVFORMAT_SRC_DIR}/m4vdec.c - ${LIBAVFORMAT_SRC_DIR}/metadata.c - ${LIBAVFORMAT_SRC_DIR}/mp3dec.c - ${LIBAVFORMAT_SRC_DIR}/mpeg.c - ${LIBAVFORMAT_SRC_DIR}/mpegtsenc.c - ${LIBAVFORMAT_SRC_DIR}/mpegvideodec.c - ${LIBAVFORMAT_SRC_DIR}/mux.c - ${LIBAVFORMAT_SRC_DIR}/oma.c - ${LIBAVFORMAT_SRC_DIR}/omadec.c - ${LIBAVFORMAT_SRC_DIR}/options.c - ${LIBAVFORMAT_SRC_DIR}/os_support.c - ${LIBAVFORMAT_SRC_DIR}/pcm.c - ${LIBAVFORMAT_SRC_DIR}/pcmdec.c - ${LIBAVFORMAT_SRC_DIR}/pmpdec.c - ${LIBAVFORMAT_SRC_DIR}/qtpalette.c - ${LIBAVFORMAT_SRC_DIR}/rawdec.c - ${LIBAVFORMAT_SRC_DIR}/replaygain.c - ${LIBAVFORMAT_SRC_DIR}/riff.c - ${LIBAVFORMAT_SRC_DIR}/riffdec.c - ${LIBAVFORMAT_SRC_DIR}/riffenc.c - ${LIBAVFORMAT_SRC_DIR}/sdp.c - ${LIBAVFORMAT_SRC_DIR}/url.c - ${LIBAVFORMAT_SRC_DIR}/utils.c - ${LIBAVFORMAT_SRC_DIR}/wavdec.c -) - -set(LIBAVFORMAT_HEADERS - ${LIBAVFORMAT_SRC_DIR}/avformat.h - ${LIBAVFORMAT_SRC_DIR}/avio.h - ${LIBAVFORMAT_SRC_DIR}/version.h -) diff --git a/ext/ffmpeg-build/libs/libavutil.cmake b/ext/ffmpeg-build/libs/libavutil.cmake deleted file mode 100644 index ecc765e03b..0000000000 --- a/ext/ffmpeg-build/libs/libavutil.cmake +++ /dev/null @@ -1,141 +0,0 @@ -# libavutil source files (all platforms) -set(LIBAVUTIL_SOURCE_FILES - ${LIBAVUTIL_SRC_DIR}/adler32.c - ${LIBAVUTIL_SRC_DIR}/aes_ctr.c - ${LIBAVUTIL_SRC_DIR}/aes.c - ${LIBAVUTIL_SRC_DIR}/audio_fifo.c - ${LIBAVUTIL_SRC_DIR}/avstring.c - ${LIBAVUTIL_SRC_DIR}/base64.c - ${LIBAVUTIL_SRC_DIR}/blowfish.c - ${LIBAVUTIL_SRC_DIR}/bprint.c - ${LIBAVUTIL_SRC_DIR}/buffer.c - ${LIBAVUTIL_SRC_DIR}/camellia.c - ${LIBAVUTIL_SRC_DIR}/cast5.c - ${LIBAVUTIL_SRC_DIR}/channel_layout.c - ${LIBAVUTIL_SRC_DIR}/color_utils.c - ${LIBAVUTIL_SRC_DIR}/cpu.c - ${LIBAVUTIL_SRC_DIR}/crc.c - ${LIBAVUTIL_SRC_DIR}/des.c - ${LIBAVUTIL_SRC_DIR}/dict.c - ${LIBAVUTIL_SRC_DIR}/display.c - ${LIBAVUTIL_SRC_DIR}/downmix_info.c - ${LIBAVUTIL_SRC_DIR}/error.c - ${LIBAVUTIL_SRC_DIR}/eval.c - ${LIBAVUTIL_SRC_DIR}/fifo.c - ${LIBAVUTIL_SRC_DIR}/file_open.c - ${LIBAVUTIL_SRC_DIR}/file.c - ${LIBAVUTIL_SRC_DIR}/fixed_dsp.c - ${LIBAVUTIL_SRC_DIR}/float_dsp.c - ${LIBAVUTIL_SRC_DIR}/frame.c - ${LIBAVUTIL_SRC_DIR}/hash.c - ${LIBAVUTIL_SRC_DIR}/hmac.c - ${LIBAVUTIL_SRC_DIR}/imgutils.c - ${LIBAVUTIL_SRC_DIR}/integer.c - ${LIBAVUTIL_SRC_DIR}/intmath.c - ${LIBAVUTIL_SRC_DIR}/lfg.c - ${LIBAVUTIL_SRC_DIR}/lls.c - ${LIBAVUTIL_SRC_DIR}/log.c - ${LIBAVUTIL_SRC_DIR}/log2_tab.c - ${LIBAVUTIL_SRC_DIR}/mastering_display_metadata.c - ${LIBAVUTIL_SRC_DIR}/mathematics.c - ${LIBAVUTIL_SRC_DIR}/md5.c - ${LIBAVUTIL_SRC_DIR}/mem.c - ${LIBAVUTIL_SRC_DIR}/murmur3.c - ${LIBAVUTIL_SRC_DIR}/opt.c - ${LIBAVUTIL_SRC_DIR}/parseutils.c - ${LIBAVUTIL_SRC_DIR}/pixdesc.c - ${LIBAVUTIL_SRC_DIR}/pixelutils.c - ${LIBAVUTIL_SRC_DIR}/random_seed.c - ${LIBAVUTIL_SRC_DIR}/rational.c - ${LIBAVUTIL_SRC_DIR}/rc4.c - ${LIBAVUTIL_SRC_DIR}/reverse.c - ${LIBAVUTIL_SRC_DIR}/ripemd.c - ${LIBAVUTIL_SRC_DIR}/samplefmt.c - ${LIBAVUTIL_SRC_DIR}/sha.c - ${LIBAVUTIL_SRC_DIR}/sha512.c - ${LIBAVUTIL_SRC_DIR}/stereo3d.c - ${LIBAVUTIL_SRC_DIR}/tea.c - ${LIBAVUTIL_SRC_DIR}/threadmessage.c - ${LIBAVUTIL_SRC_DIR}/time.c - ${LIBAVUTIL_SRC_DIR}/timecode.c - ${LIBAVUTIL_SRC_DIR}/tree.c - ${LIBAVUTIL_SRC_DIR}/twofish.c - ${LIBAVUTIL_SRC_DIR}/utils.c - ${LIBAVUTIL_SRC_DIR}/xga_font_data.c - ${LIBAVUTIL_SRC_DIR}/xtea.c -) - -set(LIBAVUTIL_HEADERS - ${LIBAVUTIL_SRC_DIR}/adler32.h - ${LIBAVUTIL_SRC_DIR}/aes.h - ${LIBAVUTIL_SRC_DIR}/aes_ctr.h - ${LIBAVUTIL_SRC_DIR}/attributes.h - ${LIBAVUTIL_SRC_DIR}/audio_fifo.h - ${LIBAVUTIL_SRC_DIR}/avassert.h - ${LIBAVUTIL_SRC_DIR}/avstring.h - ${LIBAVUTIL_SRC_DIR}/avutil.h - ${LIBAVUTIL_SRC_DIR}/base64.h - ${LIBAVUTIL_SRC_DIR}/blowfish.h - ${LIBAVUTIL_SRC_DIR}/bprint.h - ${LIBAVUTIL_SRC_DIR}/bswap.h - ${LIBAVUTIL_SRC_DIR}/buffer.h - ${LIBAVUTIL_SRC_DIR}/cast5.h - ${LIBAVUTIL_SRC_DIR}/camellia.h - ${LIBAVUTIL_SRC_DIR}/channel_layout.h - ${LIBAVUTIL_SRC_DIR}/common.h - ${LIBAVUTIL_SRC_DIR}/cpu.h - ${LIBAVUTIL_SRC_DIR}/crc.h - ${LIBAVUTIL_SRC_DIR}/des.h - ${LIBAVUTIL_SRC_DIR}/display.h - ${LIBAVUTIL_SRC_DIR}/downmix_info.h - ${LIBAVUTIL_SRC_DIR}/error.h - ${LIBAVUTIL_SRC_DIR}/eval.h - ${LIBAVUTIL_SRC_DIR}/fifo.h - ${LIBAVUTIL_SRC_DIR}/file.h - ${LIBAVUTIL_SRC_DIR}/frame.h - ${LIBAVUTIL_SRC_DIR}/hash.h - ${LIBAVUTIL_SRC_DIR}/hmac.h - ${LIBAVUTIL_SRC_DIR}/imgutils.h - ${LIBAVUTIL_SRC_DIR}/intfloat.h - ${LIBAVUTIL_SRC_DIR}/intreadwrite.h - ${LIBAVUTIL_SRC_DIR}/lfg.h - ${LIBAVUTIL_SRC_DIR}/log.h - ${LIBAVUTIL_SRC_DIR}/macros.h - ${LIBAVUTIL_SRC_DIR}/mathematics.h - ${LIBAVUTIL_SRC_DIR}/mastering_display_metadata.h - ${LIBAVUTIL_SRC_DIR}/md5.h - ${LIBAVUTIL_SRC_DIR}/mem.h - ${LIBAVUTIL_SRC_DIR}/motion_vector.h - ${LIBAVUTIL_SRC_DIR}/murmur3.h - ${LIBAVUTIL_SRC_DIR}/dict.h - ${LIBAVUTIL_SRC_DIR}/opt.h - ${LIBAVUTIL_SRC_DIR}/parseutils.h - ${LIBAVUTIL_SRC_DIR}/pixdesc.h - ${LIBAVUTIL_SRC_DIR}/pixelutils.h - ${LIBAVUTIL_SRC_DIR}/pixfmt.h - ${LIBAVUTIL_SRC_DIR}/random_seed.h - ${LIBAVUTIL_SRC_DIR}/rc4.h - ${LIBAVUTIL_SRC_DIR}/replaygain.h - ${LIBAVUTIL_SRC_DIR}/rational.h - ${LIBAVUTIL_SRC_DIR}/ripemd.h - ${LIBAVUTIL_SRC_DIR}/samplefmt.h - ${LIBAVUTIL_SRC_DIR}/sha.h - ${LIBAVUTIL_SRC_DIR}/sha512.h - ${LIBAVUTIL_SRC_DIR}/stereo3d.h - ${LIBAVUTIL_SRC_DIR}/threadmessage.h - ${LIBAVUTIL_SRC_DIR}/time.h - ${LIBAVUTIL_SRC_DIR}/timecode.h - ${LIBAVUTIL_SRC_DIR}/timestamp.h - ${LIBAVUTIL_SRC_DIR}/tree.h - ${LIBAVUTIL_SRC_DIR}/twofish.h - ${LIBAVUTIL_SRC_DIR}/version.h - ${LIBAVUTIL_SRC_DIR}/xtea.h - ${LIBAVUTIL_SRC_DIR}/tea.h - ${CMAKE_CURRENT_BINARY_DIR}/libavutil/ffversion.h - ${CMAKE_CURRENT_BINARY_DIR}/libavutil/avconfig.h -) - -# Experimental addition to troubleshoot stubborn builds that inject ARCH_X86 -if (ARCH_X86) - list(APPEND LIBAVUTIL_SOURCE_FILES ${LIBAVUTIL_SRC_DIR}/x86/cpu.c) -endif() diff --git a/ext/ffmpeg-build/libs/libswresample.cmake b/ext/ffmpeg-build/libs/libswresample.cmake deleted file mode 100644 index ec5631fc11..0000000000 --- a/ext/ffmpeg-build/libs/libswresample.cmake +++ /dev/null @@ -1,22 +0,0 @@ -# libswresample source files (all platforms) -set(LIBSWRESAMPLE_SOURCE_FILES - ${LIBSWRESAMPLE_SRC_DIR}/swresample.h - ${LIBSWRESAMPLE_SRC_DIR}/audioconvert.c - ${LIBSWRESAMPLE_SRC_DIR}/dither.c - ${LIBSWRESAMPLE_SRC_DIR}/options.c - ${LIBSWRESAMPLE_SRC_DIR}/rematrix.c - ${LIBSWRESAMPLE_SRC_DIR}/resample_dsp.c - ${LIBSWRESAMPLE_SRC_DIR}/resample.c - ${LIBSWRESAMPLE_SRC_DIR}/swresample_frame.c - ${LIBSWRESAMPLE_SRC_DIR}/swresample.c -) - -set(LIBSWRESAMPLE_HEADERS - ${LIBSWRESAMPLE_SRC_DIR}/swresample.h - ${LIBSWRESAMPLE_SRC_DIR}/version.h -) - -# Experimental addition to troubleshoot stubborn builds that inject ARCH_X86 -if (ARCH_X86) - list(APPEND LIBSWRESAMPLE_SOURCE_FILES ${LIBSWRESAMPLE_SRC_DIR}/x86/resample_init.c) -endif() diff --git a/ext/ffmpeg-build/libs/libswscale.cmake b/ext/ffmpeg-build/libs/libswscale.cmake deleted file mode 100644 index 35ad4c5f30..0000000000 --- a/ext/ffmpeg-build/libs/libswscale.cmake +++ /dev/null @@ -1,22 +0,0 @@ -# libswscale source files (all platforms) -set(LIBSWSCALE_SOURCE_FILES - ${LIBSWSCALE_SRC_DIR}/alphablend.c - ${LIBSWSCALE_SRC_DIR}/gamma.c - ${LIBSWSCALE_SRC_DIR}/hscale_fast_bilinear.c - ${LIBSWSCALE_SRC_DIR}/hscale.c - ${LIBSWSCALE_SRC_DIR}/input.c - ${LIBSWSCALE_SRC_DIR}/options.c - ${LIBSWSCALE_SRC_DIR}/output.c - ${LIBSWSCALE_SRC_DIR}/rgb2rgb.c - ${LIBSWSCALE_SRC_DIR}/slice.c - ${LIBSWSCALE_SRC_DIR}/swscale_unscaled.c - ${LIBSWSCALE_SRC_DIR}/swscale.c - ${LIBSWSCALE_SRC_DIR}/utils.c - ${LIBSWSCALE_SRC_DIR}/vscale.c - ${LIBSWSCALE_SRC_DIR}/yuv2rgb.c -) - -set(LIBSWSCALE_HEADERS - ${LIBSWSCALE_SRC_DIR}/swscale.h - ${LIBSWSCALE_SRC_DIR}/version.h -) diff --git a/ext/ffmpeg-build/sources.mk b/ext/ffmpeg-build/sources.mk new file mode 100644 index 0000000000..18a4005ddf --- /dev/null +++ b/ext/ffmpeg-build/sources.mk @@ -0,0 +1,282 @@ +# The FFmpeg sources PPSSPP builds, relative to the FFmpeg source tree. Every build system uses this +# list: CMake reads it (CMakeLists.txt here), ndk-build and libretro include it, and +# update_vcxproj.py copies it into ffmpeg.vcxproj. A component enabled in include/config.h needs +# its files here. +FFMPEG_SOURCES := \ + libavcodec/aac_ac3_parser.c \ + libavcodec/aac_parser.c \ + libavcodec/aacadtsdec.c \ + libavcodec/aacdec.c \ + libavcodec/aacps_float.c \ + libavcodec/aacpsdsp_float.c \ + libavcodec/aacsbr.c \ + libavcodec/aactab.c \ + libavcodec/aandcttab.c \ + libavcodec/allcodecs.c \ + libavcodec/atrac.c \ + libavcodec/atrac3.c \ + libavcodec/atrac3plus.c \ + libavcodec/atrac3plusdec.c \ + libavcodec/atrac3plusdsp.c \ + libavcodec/audioconvert.c \ + libavcodec/avdct.c \ + libavcodec/avfft.c \ + libavcodec/avpacket.c \ + libavcodec/avpicture.c \ + libavcodec/bitstream.c \ + libavcodec/bitstream_filter.c \ + libavcodec/blockdsp.c \ + libavcodec/bswapdsp.c \ + libavcodec/cabac.c \ + libavcodec/codec_desc.c \ + libavcodec/d3d11va.c \ + libavcodec/dct.c \ + libavcodec/dct32_fixed.c \ + libavcodec/dct32_float.c \ + libavcodec/dirac.c \ + libavcodec/dv_profile.c \ + libavcodec/error_resilience.c \ + libavcodec/exif.c \ + libavcodec/faandct.c \ + libavcodec/faanidct.c \ + libavcodec/fdctdsp.c \ + libavcodec/fft_fixed.c \ + libavcodec/fft_fixed_32.c \ + libavcodec/fft_float.c \ + libavcodec/fft_init_table.c \ + libavcodec/ffv1.c \ + libavcodec/ffv1enc.c \ + libavcodec/flvdec.c \ + libavcodec/flvenc.c \ + libavcodec/frame_thread_encoder.c \ + libavcodec/golomb.c \ + libavcodec/h263.c \ + libavcodec/h263_parser.c \ + libavcodec/h263data.c \ + libavcodec/h263dec.c \ + libavcodec/h263dsp.c \ + libavcodec/h264.c \ + libavcodec/h264_cabac.c \ + libavcodec/h264_cavlc.c \ + libavcodec/h264_direct.c \ + libavcodec/h264_loopfilter.c \ + libavcodec/h264_mb.c \ + libavcodec/h264_parser.c \ + libavcodec/h264_picture.c \ + libavcodec/h264_ps.c \ + libavcodec/h264_refs.c \ + libavcodec/h264_sei.c \ + libavcodec/h264_slice.c \ + libavcodec/h264chroma.c \ + libavcodec/h264dsp.c \ + libavcodec/h264idct.c \ + libavcodec/h264pred.c \ + libavcodec/h264qpel.c \ + libavcodec/hpeldsp.c \ + libavcodec/huffman.c \ + libavcodec/huffyuv.c \ + libavcodec/huffyuvenc.c \ + libavcodec/huffyuvencdsp.c \ + libavcodec/idctdsp.c \ + libavcodec/imdct15.c \ + libavcodec/imgconvert.c \ + libavcodec/intelh263dec.c \ + libavcodec/ituh263dec.c \ + libavcodec/ituh263enc.c \ + libavcodec/jfdctfst.c \ + libavcodec/jfdctint.c \ + libavcodec/jpegtables.c \ + libavcodec/jrevdct.c \ + libavcodec/kbdwin.c \ + libavcodec/latm_parser.c \ + libavcodec/lossless_videodsp.c \ + libavcodec/mathtables.c \ + libavcodec/mdct_fixed.c \ + libavcodec/mdct_fixed_32.c \ + libavcodec/mdct_float.c \ + libavcodec/me_cmp.c \ + libavcodec/mjpegbdec.c \ + libavcodec/mjpegdec.c \ + libavcodec/motion_est.c \ + libavcodec/mpeg12.c \ + libavcodec/mpeg12data.c \ + libavcodec/mpeg12dec.c \ + libavcodec/mpeg4audio.c \ + libavcodec/mpeg4video.c \ + libavcodec/mpeg4video_parser.c \ + libavcodec/mpeg4videodec.c \ + libavcodec/mpeg4videoenc.c \ + libavcodec/mpeg_er.c \ + libavcodec/mpegaudio.c \ + libavcodec/mpegaudio_parser.c \ + libavcodec/mpegaudiodata.c \ + libavcodec/mpegaudiodec_fixed.c \ + libavcodec/mpegaudiodecheader.c \ + libavcodec/mpegaudiodsp.c \ + libavcodec/mpegaudiodsp_data.c \ + libavcodec/mpegaudiodsp_fixed.c \ + libavcodec/mpegaudiodsp_float.c \ + libavcodec/mpegpicture.c \ + libavcodec/mpegutils.c \ + libavcodec/mpegvideo.c \ + libavcodec/mpegvideo_enc.c \ + libavcodec/mpegvideo_motion.c \ + libavcodec/mpegvideo_parser.c \ + libavcodec/mpegvideodata.c \ + libavcodec/mpegvideodsp.c \ + libavcodec/mpegvideoencdsp.c \ + libavcodec/options.c \ + libavcodec/parser.c \ + libavcodec/pcm.c \ + libavcodec/pixblockdsp.c \ + libavcodec/profiles.c \ + libavcodec/pthread.c \ + libavcodec/pthread_frame.c \ + libavcodec/pthread_slice.c \ + libavcodec/qpeldsp.c \ + libavcodec/qsv_api.c \ + libavcodec/rangecoder.c \ + libavcodec/ratecontrol.c \ + libavcodec/raw.c \ + libavcodec/rdft.c \ + libavcodec/resample.c \ + libavcodec/resample2.c \ + libavcodec/rl.c \ + libavcodec/sbrdsp.c \ + libavcodec/simple_idct.c \ + libavcodec/sinewin.c \ + libavcodec/sinewin_fixed.c \ + libavcodec/startcode.c \ + libavcodec/tiff_common.c \ + libavcodec/utils.c \ + libavcodec/videodsp.c \ + libavcodec/vorbis_parser.c \ + libavcodec/xiph.c \ + libavcodec/xvididct.c \ + libavformat/aacdec.c \ + libavformat/allformats.c \ + libavformat/apetag.c \ + libavformat/avidec.c \ + libavformat/avienc.c \ + libavformat/avio.c \ + libavformat/aviobuf.c \ + libavformat/avlanguage.c \ + libavformat/cutils.c \ + libavformat/dump.c \ + libavformat/file.c \ + libavformat/format.c \ + libavformat/h263dec.c \ + libavformat/h264dec.c \ + libavformat/id3v1.c \ + libavformat/id3v2.c \ + libavformat/img2.c \ + libavformat/isom.c \ + libavformat/m4vdec.c \ + libavformat/metadata.c \ + libavformat/mp3dec.c \ + libavformat/mpeg.c \ + libavformat/mpegtsenc.c \ + libavformat/mpegvideodec.c \ + libavformat/mux.c \ + libavformat/oma.c \ + libavformat/omadec.c \ + libavformat/options.c \ + libavformat/os_support.c \ + libavformat/pcm.c \ + libavformat/pcmdec.c \ + libavformat/pmpdec.c \ + libavformat/qtpalette.c \ + libavformat/rawdec.c \ + libavformat/replaygain.c \ + libavformat/riff.c \ + libavformat/riffdec.c \ + libavformat/riffenc.c \ + libavformat/sdp.c \ + libavformat/url.c \ + libavformat/utils.c \ + libavformat/wavdec.c \ + libavutil/adler32.c \ + libavutil/aes.c \ + libavutil/aes_ctr.c \ + libavutil/audio_fifo.c \ + libavutil/avstring.c \ + libavutil/base64.c \ + libavutil/blowfish.c \ + libavutil/bprint.c \ + libavutil/buffer.c \ + libavutil/camellia.c \ + libavutil/cast5.c \ + libavutil/channel_layout.c \ + libavutil/color_utils.c \ + libavutil/cpu.c \ + libavutil/crc.c \ + libavutil/des.c \ + libavutil/dict.c \ + libavutil/display.c \ + libavutil/downmix_info.c \ + libavutil/error.c \ + libavutil/eval.c \ + libavutil/fifo.c \ + libavutil/file.c \ + libavutil/file_open.c \ + libavutil/fixed_dsp.c \ + libavutil/float_dsp.c \ + libavutil/frame.c \ + libavutil/hash.c \ + libavutil/hmac.c \ + libavutil/imgutils.c \ + libavutil/integer.c \ + libavutil/intmath.c \ + libavutil/lfg.c \ + libavutil/lls.c \ + libavutil/log.c \ + libavutil/log2_tab.c \ + libavutil/mastering_display_metadata.c \ + libavutil/mathematics.c \ + libavutil/md5.c \ + libavutil/mem.c \ + libavutil/murmur3.c \ + libavutil/opt.c \ + libavutil/parseutils.c \ + libavutil/pixdesc.c \ + libavutil/pixelutils.c \ + libavutil/random_seed.c \ + libavutil/rational.c \ + libavutil/rc4.c \ + libavutil/reverse.c \ + libavutil/ripemd.c \ + libavutil/samplefmt.c \ + libavutil/sha.c \ + libavutil/sha512.c \ + libavutil/stereo3d.c \ + libavutil/tea.c \ + libavutil/threadmessage.c \ + libavutil/time.c \ + libavutil/timecode.c \ + libavutil/tree.c \ + libavutil/twofish.c \ + libavutil/utils.c \ + libavutil/xga_font_data.c \ + libavutil/xtea.c \ + libswresample/audioconvert.c \ + libswresample/dither.c \ + libswresample/options.c \ + libswresample/rematrix.c \ + libswresample/resample.c \ + libswresample/resample_dsp.c \ + libswresample/swresample.c \ + libswresample/swresample_frame.c \ + libswscale/alphablend.c \ + libswscale/gamma.c \ + libswscale/hscale.c \ + libswscale/hscale_fast_bilinear.c \ + libswscale/input.c \ + libswscale/options.c \ + libswscale/output.c \ + libswscale/rgb2rgb.c \ + libswscale/slice.c \ + libswscale/swscale.c \ + libswscale/swscale_unscaled.c \ + libswscale/utils.c \ + libswscale/vscale.c \ + libswscale/yuv2rgb.c