#.rst: # FindFFMPEG # ---------- # # Find the native FFMPEG includes and library # # This module defines:: # # FFMPEG_INCLUDE_DIR, where to find avcodec.h, avformat.h ... # FFMPEG_LIBRARIES, the libraries to link against to use FFMPEG. # FFMPEG_FOUND, If false, do not try to use FFMPEG. # # also defined, but not for general use are:: # # FFMPEG_avformat_LIBRARY, where to find the FFMPEG avformat library. # FFMPEG_avcodec_LIBRARY, where to find the FFMPEG avcodec library. # # This is useful to do it this way so that we can always add more libraries # if needed to ``FFMPEG_LIBRARIES`` if ffmpeg ever changes... #============================================================================= # Copyright: 1993-2008 Ken Martin, Will Schroeder, Bill Lorensen # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distribute this file outside of YCM, substitute the full # License text for the above reference.) # Originally from VTK project find_path(FFMPEG_INCLUDE_DIR1 avformat.h $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/ffmpeg $ENV{FFMPEG_DIR}/libavformat $ENV{FFMPEG_DIR}/include/libavformat $ENV{FFMPEG_DIR}/include/ffmpeg /usr/local/include/ffmpeg /usr/include/ffmpeg /usr/include/libavformat /usr/include/ffmpeg/libavformat /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libavformat /usr/local/include/libavformat ) find_path(FFMPEG_INCLUDE_DIR2 avutil.h $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/ffmpeg $ENV{FFMPEG_DIR}/libavutil $ENV{FFMPEG_DIR}/include/libavutil $ENV{FFMPEG_DIR}/include/ffmpeg /usr/local/include/ffmpeg /usr/include/ffmpeg /usr/include/libavutil /usr/include/ffmpeg/libavutil /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libavutil /usr/local/include/libavutil ) find_path(FFMPEG_INCLUDE_DIR3 avcodec.h $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/ffmpeg $ENV{FFMPEG_DIR}/libavcodec $ENV{FFMPEG_DIR}/include/libavcodec $ENV{FFMPEG_DIR}/include/ffmpeg /usr/local/include/ffmpeg /usr/include/ffmpeg /usr/include/libavcodec /usr/include/ffmpeg/libavcodec /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libavcodec /usr/local/include/libavcodec ) find_path(FFMPEG_INCLUDE_DIR4 swscale.h $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/ffmpeg $ENV{FFMPEG_DIR}/libswscale $ENV{FFMPEG_DIR}/include/libswscale $ENV{FFMPEG_DIR}/include/ffmpeg /usr/local/include/ffmpeg /usr/include/ffmpeg /usr/include/libswscale /usr/include/ffmpeg/libswscale /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libswscale /usr/local/include/libswscale ) find_path(FFMPEG_INCLUDE_DIR5 avdevice.h $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/ffmpeg $ENV{FFMPEG_DIR}/libavdevice $ENV{FFMPEG_DIR}/include/libavdevice $ENV{FFMPEG_DIR}/include/ffmpeg /usr/local/include/ffmpeg /usr/include/ffmpeg /usr/include/libavdevice /usr/include/ffmpeg/libavdevice /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libavdevice /usr/local/include/libavdevice ) find_path(FFMPEG_INCLUDE_DIR6 swresample.h $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/ffmpeg $ENV{FFMPEG_DIR}/libswresample $ENV{FFMPEG_DIR}/include/libswresample $ENV{FFMPEG_DIR}/include/ffmpeg /usr/local/include/ffmpeg /usr/include/ffmpeg /usr/include/libswresample /usr/include/ffmpeg/libswresample /usr/include/${CMAKE_LIBRARY_ARCHITECTURE}/libswresample /usr/local/include/libswresample ) if(FFMPEG_INCLUDE_DIR1) set(FFMPEG_INCLUDE_DIR ${FFMPEG_INCLUDE_DIR1}) endif() find_library(FFMPEG_avformat_LIBRARY avformat $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/lib $ENV{FFMPEG_DIR}/libavformat /usr/local/lib /usr/lib ) find_library(FFMPEG_avcodec_LIBRARY avcodec $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/lib $ENV{FFMPEG_DIR}/libavcodec /usr/local/lib /usr/lib ) find_library(FFMPEG_avutil_LIBRARY avutil $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/lib $ENV{FFMPEG_DIR}/libavutil /usr/local/lib /usr/lib ) if(NOT DISABLE_SWSCALE) find_library(FFMPEG_swscale_LIBRARY swscale $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/lib $ENV{FFMPEG_DIR}/libswscale /usr/local/lib /usr/lib ) endif(NOT DISABLE_SWSCALE) find_library(FFMPEG_avdevice_LIBRARY avdevice $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/lib $ENV{FFMPEG_DIR}/libavdevice /usr/local/lib /usr/lib ) find_library(_FFMPEG_z_LIBRARY_ z $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/lib /usr/local/lib /usr/lib ) find_library(FFMPEG_swresample_LIBRARY swresample $ENV{FFMPEG_DIR} $ENV{FFMPEG_DIR}/lib $ENV{FFMPEG_DIR}/libswresample /usr/local/lib /usr/lib ) if(FFMPEG_INCLUDE_DIR) if(FFMPEG_avformat_LIBRARY) if(FFMPEG_avcodec_LIBRARY) if(FFMPEG_avutil_LIBRARY) set(FFMPEG_FOUND "YES") set(FFMPEG_LIBRARIES ${FFMPEG_avformat_LIBRARY} ${FFMPEG_avcodec_LIBRARY} ${FFMPEG_avutil_LIBRARY} ) if(FFMPEG_swscale_LIBRARY) set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${FFMPEG_swscale_LIBRARY} ) endif() if(FFMPEG_swresample_LIBRARY) set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${FFMPEG_swresample_LIBRARY} ) endif() if(FFMPEG_avdevice_LIBRARY) set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${FFMPEG_avdevice_LIBRARY} ) endif() if(_FFMPEG_z_LIBRARY_) set( FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} ${_FFMPEG_z_LIBRARY_} ) endif() endif() endif() endif() endif() mark_as_advanced( FFMPEG_INCLUDE_DIR FFMPEG_INCLUDE_DIR1 FFMPEG_INCLUDE_DIR2 FFMPEG_INCLUDE_DIR3 FFMPEG_INCLUDE_DIR4 FFMPEG_INCLUDE_DIR5 FFMPEG_avformat_LIBRARY FFMPEG_avcodec_LIBRARY FFMPEG_avutil_LIBRARY FFMPEG_swscale_LIBRARY FFMPEG_avdevice_LIBRARY FFMPEG_swresample_LIBRARY _FFMPEG_z_LIBRARY_ ) if(WIN32) set(FFMPEG_WIN "ffmpeg-3.3.3-win64-dev") set(FFMPEG_WIN_BINARIES "ffmpeg-3.3.3-win64-shared") if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN}.zip") file(DOWNLOAD "http://ffmpeg.zeranoe.com/builds/win64/dev/${FFMPEG_WIN}.zip" "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN}.zip") file(DOWNLOAD "https://ffmpeg.zeranoe.com/builds/win64/shared/${FFMPEG_WIN_BINARIES}.zip" "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}.zip") endif() if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN}") execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN}.zip" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}.zip" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) endif() set(FFMPEG_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN}/include") set(FFMPEG_LIBRARY_DIRS "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN}/lib") set(FFMPEG_DLLS_DIR "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin") set(FFMPEG_LIBRARIES "${FFMPEG_LIBRARY_DIRS}/avcodec.lib" "${FFMPEG_LIBRARY_DIRS}/avformat.lib" "${FFMPEG_LIBRARY_DIRS}/avdevice.lib" "${FFMPEG_LIBRARY_DIRS}/avfilter.lib" "${FFMPEG_LIBRARY_DIRS}/avutil.lib" "${FFMPEG_LIBRARY_DIRS}/postproc.lib" "${FFMPEG_LIBRARY_DIRS}/swresample.lib" "${FFMPEG_LIBRARY_DIRS}/swscale.lib") set(FFMPEG_AVCODEC_DLL "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin/avcodec-57.dll") set(FFMPEG_AVFORMAT_DLL "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin/avformat-57.dll") set(FFMPEG_AVDEVICE_DLL "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin/avdevice-57.dll") set(FFMPEG_AVFILTER_DLL "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin/avfilter-6.dll") set(FFMPEG_AVUTIL_DLL "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin/avutil-55.dll") set(FFMPEG_POSTPROC_DLL "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin/postproc-54.dll") set(FFMPEG_SWRESAMPLE_DLL "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin/swresample-2.dll") set(FFMPEG_SWSCALE_DLL "${CMAKE_CURRENT_BINARY_DIR}/${FFMPEG_WIN_BINARIES}/bin/swscale-4.dll") set(FFMPEG_FOUND "YES") endif() # Set package properties if FeatureSummary was included if(COMMAND set_package_properties) set_package_properties(FFMPEG PROPERTIES DESCRIPTION "A complete, cross-platform solution to record, convert and stream audio and video") set_package_properties(FFMPEG PROPERTIES URL "http://ffmpeg.org/") endif()