@@ -190,63 +190,35 @@ if(WITH_XIMEA)
190
190
endif (WITH_XIMEA )
191
191
192
192
# --- FFMPEG ---
193
- ocv_clear_vars (HAVE_FFMPEG HAVE_FFMPEG_CODEC HAVE_FFMPEG_FORMAT HAVE_FFMPEG_UTIL HAVE_FFMPEG_SWSCALE HAVE_FFMPEG_RESAMPLE HAVE_GENTOO_FFMPEG HAVE_FFMPEG_FFMPEG )
193
+ ocv_clear_vars (HAVE_FFMPEG )
194
194
if (WITH_FFMPEG )
195
195
if (WIN32 AND NOT ARM )
196
196
include ("${OpenCV_SOURCE_DIR} /3rdparty/ffmpeg/ffmpeg_version.cmake" )
197
- elseif (UNIX )
198
- CHECK_MODULE (libavcodec HAVE_FFMPEG_CODEC )
199
- CHECK_MODULE (libavformat HAVE_FFMPEG_FORMAT )
200
- CHECK_MODULE (libavutil HAVE_FFMPEG_UTIL )
201
- CHECK_MODULE (libswscale HAVE_FFMPEG_SWSCALE )
202
- CHECK_MODULE (libavresample HAVE_FFMPEG_RESAMPLE )
203
-
204
- CHECK_INCLUDE_FILE (libavformat/avformat.h HAVE_GENTOO_FFMPEG )
205
- CHECK_INCLUDE_FILE (ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG )
206
- if (NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG )
207
- if (EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE )
208
- set (HAVE_GENTOO_FFMPEG TRUE )
209
- endif ()
197
+ set (HAVE_FFMPEG TRUE )
198
+ elseif (PKG_CONFIG_FOUND )
199
+ ocv_check_modules (FFMPEG libavcodec libavformat libavutil libswscale )
200
+ ocv_check_modules (FFMPEG_libavresample libavresample )
201
+ if (FFMPEG_libavresample_FOUND )
202
+ ocv_append_build_options (FFMPEG FFMPEG_libavresample )
210
203
endif ()
211
- if (HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL AND HAVE_FFMPEG_SWSCALE )
212
- set (HAVE_FFMPEG TRUE )
213
- endif ()
214
-
215
204
if (HAVE_FFMPEG )
216
- # Find the bzip2 library because it is required on some systems
217
- FIND_LIBRARY (BZIP2_LIBRARIES NAMES bz2 bzip2 )
218
- if (NOT BZIP2_LIBRARIES )
219
- # Do an other trial
220
- FIND_FILE (BZIP2_LIBRARIES NAMES libbz2.so.1 PATHS /lib )
205
+ try_compile (__VALID_FFMPEG
206
+ "${OpenCV_BINARY_DIR} "
207
+ "${OpenCV_SOURCE_DIR} /cmake/checks/ffmpeg_test.cpp"
208
+ CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${FFMPEG_INCLUDE_DIRS} "
209
+ "-DLINK_DIRECTORIES:STRING=${FFMPEG_LIBRARY_DIRS} "
210
+ "-DLINK_LIBRARIES:STRING=${FFMPEG_LIBRARIES} "
211
+ OUTPUT_VARIABLE TRY_OUT
212
+ )
213
+ if (NOT __VALID_FFMPEG )
214
+ #message(FATAL_ERROR "FFMPEG: test check build log:\n${TRY_OUT}")
215
+ message (STATUS "WARNING: Can't build ffmpeg test code" )
216
+ else ()
217
+ ocv_append_build_options (HIGHGUI FFMPEG )
221
218
endif ()
222
- else ()
223
- find_path (FFMPEG_INCLUDE_DIR "libavformat/avformat.h"
224
- PATHS /usr/local /usr /opt
225
- PATH_SUFFIXES include
226
- DOC "The path to FFMPEG headers" )
227
- if (FFMPEG_INCLUDE_DIR )
228
- set (HAVE_GENTOO_FFMPEG TRUE )
229
- set (FFMPEG_LIB_DIR "${FFMPEG_INCLUDE_DIR} /../lib" CACHE PATH "Full path of FFMPEG library directory" )
230
- find_library (FFMPEG_CODEC_LIB "avcodec" HINTS "${FFMPEG_LIB_DIR} " )
231
- find_library (FFMPEG_FORMAT_LIB "avformat" HINTS "${FFMPEG_LIB_DIR} " )
232
- find_library (FFMPEG_UTIL_LIB "avutil" HINTS "${FFMPEG_LIB_DIR} " )
233
- find_library (FFMPEG_SWSCALE_LIB "swscale" HINTS "${FFMPEG_LIB_DIR} " )
234
- if (FFMPEG_CODEC_LIB AND FFMPEG_FORMAT_LIB AND
235
- FFMPEG_UTIL_LIB AND FFMPEG_SWSCALE_LIB )
236
- set (ALIASOF_libavcodec_VERSION "Unknown" )
237
- set (ALIASOF_libavformat_VERSION "Unknown" )
238
- set (ALIASOF_libavutil_VERSION "Unknown" )
239
- set (ALIASOF_libswscale_VERSION "Unknown" )
240
- set (HAVE_FFMPEG 1 )
241
- endif ()
242
- endif (FFMPEG_INCLUDE_DIR )
243
- if (HAVE_FFMPEG )
244
- set (HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES}
245
- ${FFMPEG_CODEC_LIB} ${FFMPEG_FORMAT_LIB}
246
- ${FFMPEG_UTIL_LIB} ${FFMPEG_SWSCALE_LIB} )
247
- ocv_include_directories (${FFMPEG_INCLUDE_DIR} )
248
- endif (HAVE_FFMPEG )
249
219
endif ()
220
+ else ()
221
+ message (STATUS "Can't find ffmpeg - 'pkg-config' utility is missing" )
250
222
endif ()
251
223
endif (WITH_FFMPEG )
252
224
0 commit comments