Blame cmake/FindFFmpeg.cmake

Packit 1fb8d4
# - Try to find FFmpeg
Packit 1fb8d4
# Using Pkg-config if available for path
Packit 1fb8d4
#
Packit 1fb8d4
#  FFMPEG_FOUND        - all required ffmpeg components found on system
Packit 1fb8d4
#  FFMPEG_INCLUDE_DIRS  - combined include directories
Packit 1fb8d4
#  FFMPEG_LIBRARIES    - combined libraries to link
Packit 1fb8d4
Packit 1fb8d4
set(REQUIRED_AVCODEC_VERSION 0.8)
Packit 1fb8d4
set(REQUIRED_AVCODEC_API_VERSION 53.25.0)
Packit 1fb8d4
Packit 1fb8d4
include(FindPkgConfig)
Packit 1fb8d4
Packit 1fb8d4
if (PKG_CONFIG_FOUND)
Packit 1fb8d4
	pkg_check_modules(AVCODEC libavcodec)
Packit 1fb8d4
	pkg_check_modules(AVUTIL libavutil)
Packit 1fb8d4
	pkg_check_modules(AVRESAMPLE libavresample)
Packit 1fb8d4
	pkg_check_modules(SWRESAMPLE libswresample)
Packit 1fb8d4
endif(PKG_CONFIG_FOUND)
Packit 1fb8d4
Packit 1fb8d4
# avcodec
Packit 1fb8d4
find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h PATHS ${AVCODEC_INCLUDE_DIRS})
Packit 1fb8d4
find_library(AVCODEC_LIBRARY avcodec PATHS $ {AVCODEC_LIBRARY_DIRS})
Packit 1fb8d4
Packit 1fb8d4
# avutil
Packit 1fb8d4
find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h PATHS ${AVUTIL_INCLUDE_DIRS})
Packit 1fb8d4
find_library(AVUTIL_LIBRARY avutil PATHS ${AVUTIL_LIBRARY_DIRS})
Packit 1fb8d4
Packit 1fb8d4
# swresample
Packit 1fb8d4
find_path(SWRESAMPLE_INCLUDE_DIR libswresample/swresample.h PATHS ${SWRESAMPLE_INCLUDE_DIRS})
Packit 1fb8d4
find_library(SWRESAMPLE_LIBRARY swresample PATHS ${SWRESAMPLE_LIBRARY_DIRS})
Packit 1fb8d4
Packit 1fb8d4
# avresample
Packit 1fb8d4
find_path(AVRESAMPLE_INCLUDE_DIR libavresample/avresample.h PATHS ${AVRESAMPLE_INCLUDE_DIRS})
Packit 1fb8d4
find_library(AVRESAMPLE_LIBRARY avresample PATHS ${AVRESAMPLE_LIBRARY_DIRS})
Packit 1fb8d4
Packit 1fb8d4
if (AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY)
Packit 1fb8d4
	set(AVCODEC_FOUND TRUE)
Packit 1fb8d4
endif(AVCODEC_INCLUDE_DIR AND AVCODEC_LIBRARY)
Packit 1fb8d4
Packit 1fb8d4
if (AVUTIL_INCLUDE_DIR AND AVUTIL_LIBRARY)
Packit 1fb8d4
	set(AVUTIL_FOUND TRUE)
Packit 1fb8d4
endif(AVUTIL_INCLUDE_DIR AND AVUTIL_LIBRARY)
Packit 1fb8d4
Packit 1fb8d4
include(FindPackageHandleStandardArgs)
Packit 1fb8d4
if (SWRESAMPLE_FOUND)
Packit 1fb8d4
	FIND_PACKAGE_HANDLE_STANDARD_ARGS(FFmpeg DEFAULT_MSG AVUTIL_FOUND AVCODEC_FOUND SWRESAMPLE_FOUND)
Packit 1fb8d4
else()
Packit 1fb8d4
	FIND_PACKAGE_HANDLE_STANDARD_ARGS(FFmpeg DEFAULT_MSG AVUTIL_FOUND AVCODEC_FOUND AVRESAMPLE_FOUND)
Packit 1fb8d4
endif()
Packit 1fb8d4
Packit 1fb8d4
if (AVCODEC_VERSION)
Packit 1fb8d4
	if (${AVCODEC_VERSION} VERSION_LESS ${REQUIRED_AVCODEC_API_VERSION})
Packit 1fb8d4
		message(FATAL_ERROR
Packit 1fb8d4
			    "libavcodec version >= ${REQUIRED_AVCODEC_VERSION} (API >= ${REQUIRED_AVCODEC_API_VERSION}) is required")
Packit 1fb8d4
	endif()
Packit 1fb8d4
else(AVCODEC_VERSION)
Packit 1fb8d4
	message("Note: To build libavcodec version >= ${REQUIRED_AVCODEC_VERSION} (API >= ${REQUIRED_AVCODEC_API_VERSION}) is required")
Packit 1fb8d4
endif(AVCODEC_VERSION)
Packit 1fb8d4
Packit 1fb8d4
if (FFMPEG_FOUND)
Packit 1fb8d4
	if (SWRESAMPLE_FOUND)
Packit 1fb8d4
		set(FFMPEG_INCLUDE_DIRS ${AVCODEC_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR} ${SWRESAMPLE_INCLUDE_DIR})
Packit 1fb8d4
		set(FFMPEG_LIBRARIES ${AVCODEC_LIBRARY} ${AVUTIL_LIBRARY} ${SWRESAMPLE_LIBRARY})
Packit 1fb8d4
	elseif (AVRESAMPLE_FOUND)
Packit 1fb8d4
		set(FFMPEG_INCLUDE_DIRS ${AVCODEC_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR} ${AVRESAMPLE_INCLUDE_DIR})
Packit 1fb8d4
		set(FFMPEG_LIBRARIES ${AVCODEC_LIBRARY} ${AVUTIL_LIBRARY} ${AVRESAMPLE_LIBRARY})
Packit 1fb8d4
	endif()
Packit 1fb8d4
endif(FFMPEG_FOUND)
Packit 1fb8d4
Packit 1fb8d4
mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES)