diff options
author | Nuno Sénica <nuno.senica@booking.com> | 2017-01-30 22:03:03 +0100 |
---|---|---|
committer | Nuno Sénica <nuno.senica@booking.com> | 2017-01-30 22:04:19 +0100 |
commit | c046d8bdf349198b8bd52e6f9a1b3e3b0c1635d4 (patch) | |
tree | eff45a2aa5df84262bf407c728dbc195762a1a54 | |
parent | 549c11fb98a3ef40be1f0210ab26ca28d3d80a63 (diff) |
Tidy up ffmpeg in order to be more flexible and versatile. Also includes switches for Raspberry Pi
-rw-r--r-- | cmake/modules/FindFFMPEG.cmake | 11 | ||||
-rw-r--r-- | cmake/scripts/android/ArchSetup.cmake | 3 | ||||
-rw-r--r-- | tools/depends/target/ffmpeg/CMakeLists.txt | 30 |
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} |