aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNuno Sénica <nuno.senica@booking.com>2017-01-30 22:03:03 +0100
committerNuno Sénica <nuno.senica@booking.com>2017-01-30 22:04:19 +0100
commitc046d8bdf349198b8bd52e6f9a1b3e3b0c1635d4 (patch)
treeeff45a2aa5df84262bf407c728dbc195762a1a54
parent549c11fb98a3ef40be1f0210ab26ca28d3d80a63 (diff)
Tidy up ffmpeg in order to be more flexible and versatile. Also includes switches for Raspberry Pi
-rw-r--r--cmake/modules/FindFFMPEG.cmake11
-rw-r--r--cmake/scripts/android/ArchSetup.cmake3
-rw-r--r--tools/depends/target/ffmpeg/CMakeLists.txt30
3 files changed, 35 insertions, 9 deletions
diff --git a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake
index d38fba503b..d7199d2a56 100644
--- a/cmake/modules/FindFFMPEG.cmake
+++ b/cmake/modules/FindFFMPEG.cmake
@@ -235,14 +235,10 @@ if(NOT FFMPEG_FOUND)
-DPKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}
-DCROSSCOMPILING=${CMAKE_CROSSCOMPILING}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
- -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME}
- -DCPU=${WITH_CPU}
-DOS=${OS}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- -DCMAKE_AR=${CMAKE_AR}
- -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
- -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS})
+ -DCMAKE_AR=${CMAKE_AR})
endif()
externalproject_add(ffmpeg
@@ -254,6 +250,11 @@ if(NOT FFMPEG_FOUND)
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DFFMPEG_VER=${FFMPEG_VER}
-DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME}
+ -DCPU=${CPU}
+ -DENABLE_NEON=${ENABLE_NEON}
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
+ -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
+ -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}
${CROSS_ARGS}
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_SOURCE_DIR}/tools/depends/target/ffmpeg/CMakeLists.txt
diff --git a/cmake/scripts/android/ArchSetup.cmake b/cmake/scripts/android/ArchSetup.cmake
index a912f7646f..b7f14544f6 100644
--- a/cmake/scripts/android/ArchSetup.cmake
+++ b/cmake/scripts/android/ArchSetup.cmake
@@ -25,9 +25,6 @@ else()
endif()
endif()
-set(FFMPEG_OPTS --enable-cross-compile --cpu=cortex-a9 --arch=arm --target-os=linux --enable-neon
- --disable-vdpau --cc=${CMAKE_C_COMPILER} --host-cc=${CMAKE_C_COMPILER}
- --strip=${CMAKE_STRIP})
set(ENABLE_SDL OFF CACHE BOOL "" FORCE)
set(ENABLE_X11 OFF CACHE BOOL "" FORCE)
set(ENABLE_AML OFF CACHE BOOL "" FORCE)
diff --git a/tools/depends/target/ffmpeg/CMakeLists.txt b/tools/depends/target/ffmpeg/CMakeLists.txt
index 57cb563c96..5bc3d791f9 100644
--- a/tools/depends/target/ffmpeg/CMakeLists.txt
+++ b/tools/depends/target/ffmpeg/CMakeLists.txt
@@ -11,10 +11,29 @@ if(CROSSCOMPILING)
list(APPEND ffmpeg_conf --pkg-config=${PKG_CONFIG_EXECUTABLE} --pkg-config-flags=--static)
list(APPEND ffmpeg_conf --enable-cross-compile --cpu=${CPU} --arch=${CPU} --target-os=${OS})
list(APPEND ffmpeg_conf --cc=${CMAKE_C_COMPILER} --cxx=${CMAKE_CXX_COMPILER} --ar=${CMAKE_AR})
- list(APPEND ffmpeg_conf --extra-cflags=${CMAKE_C_FLAGS} --extra-cxxflags=${CMAKE_CXX_FLAGS} --extra-ldflags=${CMAKE_EXE_LINKER_FLAGS})
message(STATUS "CROSS: ${ffmpeg_conf}")
endif()
+if(CMAKE_C_FLAGS)
+ list(APPEND ffmpeg_conf --extra-cflags=${CMAKE_C_FLAGS})
+endif()
+
+if(CMAKE_CXX_FLAGS)
+ list(APPEND ffmpeg_conf --extra-cxxflags=${CMAKE_CXX_FLAGS})
+endif()
+
+if(CMAKE_EXE_LINKER_FLAGS)
+ list(APPEND ffmpeg_conf --extra-ldflags=${CMAKE_EXE_LINKER_FLAGS})
+endif()
+
+if(ENABLE_NEON)
+ list(APPEND ffmpeg_conf --enable-neon)
+endif()
+
+if(CMAKE_BUILD_TYPE STREQUAL Release)
+ list(APPEND ffmpeg_conf --disable-debug)
+endif()
+
if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd)
list(APPEND ffmpeg_conf --enable-vdpau --enable-vaapi --enable-pic)
elseif(CORE_SYSTEM_NAME STREQUAL android)
@@ -37,6 +56,13 @@ elseif(CORE_SYSTEM_NAME STREQUAL osx)
--disable-decoder=mpeg_xvmc --disable-vda --disable-crystalhd --enable-videotoolbox
--target-os=darwin
--disable-securetransport)
+elseif(CORE_SYSTEM_NAME STREQUAL rbpi)
+ if(CPU STREQUAL "cortex-a7" OR CPU STREQUAL "cortex-a53")
+ list(APPEND ffmpeg_conf --cpu=${CPU} --enable-pic --disable-armv5te --disable-armv6t2)
+ endif()
+ list(APPEND ffmpeg_conf --enable-hardcoded-tables --disable-vaapi --disable-vdpau --enable-mmal
+ --enable-omx-rpi)
+
endif()
if(CPU MATCHES arm)
@@ -50,6 +76,8 @@ if(GNUTLS_FOUND)
list(APPEND ffmpeg_conf --enable-gnutls)
endif()
+message(STATUS "FFMPEG_CONF: ${ffmpeg_conf}")
+
include(ExternalProject)
externalproject_add(ffmpeg
SOURCE_DIR ${CMAKE_SOURCE_DIR}