1 # ----------------------------------------------------------------------------
2 # Detect 3rd-party video IO libraries
3 # ----------------------------------------------------------------------------
5 ocv_clear_vars(HAVE_VFW)
8 "${OPENCV_BINARY_DIR}/CMakeFiles/CMakeTmp"
9 "${OpenCV_SOURCE_DIR}/cmake/checks/vfwtest.cpp"
10 CMAKE_FLAGS "-DLINK_LIBRARIES:STRING=vfw32"
11 OUTPUT_VARIABLE OUTPUT)
15 ocv_clear_vars(HAVE_GSTREAMER)
17 CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)
19 CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER)
22 CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER)
27 ocv_clear_vars(HAVE_UNICAP)
29 CHECK_MODULE(libunicap HAVE_UNICAP_)
30 CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
31 if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
37 ocv_clear_vars(HAVE_PVAPI)
39 find_path(PVAPI_INCLUDE_PATH "PvApi.h"
40 PATHS /usr/local /opt /usr ENV ProgramFiles ENV ProgramW6432
41 PATH_SUFFIXES include "Allied Vision Technologies/GigESDK/inc-pc" "AVT GigE SDK/inc-pc" "GigESDK/inc-pc"
42 DOC "The path to PvAPI header")
44 if(PVAPI_INCLUDE_PATH)
46 set(PVAPI_SDK_SUBDIR x86)
48 set(PVAPI_SDK_SUBDIR x64)
50 set(PVAPI_SDK_SUBDIR arm)
53 get_filename_component(_PVAPI_LIBRARY "${PVAPI_INCLUDE_PATH}/../lib-pc" ABSOLUTE)
55 set(_PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${PVAPI_SDK_SUBDIR}")
57 if(NOT WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
58 set(_PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${CMAKE_OPENCV_GCC_VERSION_MAJOR}.${CMAKE_OPENCV_GCC_VERSION_MINOR}")
63 set(PVAPI_DEFINITIONS "-DPVDECL=__stdcall")
65 set(PVAPI_LIBRARY "${_PVAPI_LIBRARY}/PvAPI.lib" CACHE PATH "The PvAPI library")
67 set(PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${CMAKE_STATIC_LIBRARY_PREFIX}PvAPI${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE PATH "The PvAPI library")
69 if(EXISTS "${PVAPI_LIBRARY}")
72 endif(PVAPI_INCLUDE_PATH)
75 # --- GigEVisionSDK ---
76 ocv_clear_vars(HAVE_GIGE_API)
78 find_path(GIGEAPI_INCLUDE_PATH "GigEVisionSDK.h"
79 PATHS /usr/local /var /opt /usr ENV ProgramFiles ENV ProgramW6432
80 PATH_SUFFIXES include "Smartek Vision Technologies/GigEVisionSDK/gige_cpp" "GigEVisionSDK/gige_cpp" "GigEVisionSDK/gige_c"
81 DOC "The path to Smartek GigEVisionSDK header")
82 FIND_LIBRARY(GIGEAPI_LIBRARIES NAMES GigEVisionSDK)
83 if(GIGEAPI_LIBRARIES AND GIGEAPI_INCLUDE_PATH)
84 set(HAVE_GIGE_API TRUE)
89 ocv_clear_vars(HAVE_DC1394 HAVE_DC1394_2)
92 find_path(CMU1394_INCLUDE_PATH "/1394common.h"
94 DOC "The path to cmu1394 headers")
95 find_path(DC1394_2_INCLUDE_PATH "/dc1394/dc1394.h"
97 DOC "The path to DC1394 2.x headers")
98 if(CMU1394_INCLUDE_PATH AND DC1394_2_INCLUDE_PATH)
99 set(CMU1394_LIB_DIR "${CMU1394_INCLUDE_PATH}/../lib" CACHE PATH "Full path of CMU1394 library directory")
100 set(DC1394_2_LIB_DIR "${DC1394_2_INCLUDE_PATH}/../lib" CACHE PATH "Full path of DC1394 2.x library directory")
101 if(EXISTS "${CMU1394_LIB_DIR}/lib1394camera.a" AND EXISTS "${DC1394_2_LIB_DIR}/libdc1394.a")
102 set(HAVE_DC1394_2 TRUE)
106 ocv_parse_pkg("libdc1394-2" "${DC1394_2_LIB_DIR}/pkgconfig" "")
107 ocv_include_directories(${DC1394_2_INCLUDE_PATH})
108 set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES}
109 "${DC1394_2_LIB_DIR}/libdc1394.a"
110 "${CMU1394_LIB_DIR}/lib1394camera.a")
112 else(WIN32 AND MINGW)
113 CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
114 if(NOT HAVE_DC1394_2)
115 CHECK_MODULE(libdc1394 HAVE_DC1394)
117 endif(WIN32 AND MINGW)
121 ocv_clear_vars(HAVE_XINE)
123 CHECK_MODULE(libxine HAVE_XINE)
127 ocv_clear_vars(HAVE_LIBV4L HAVE_CAMV4L HAVE_CAMV4L2 HAVE_VIDEOIO)
129 CHECK_MODULE(libv4l1 HAVE_LIBV4L)
130 CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
131 CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
132 CHECK_INCLUDE_FILE(sys/videoio.h HAVE_VIDEOIO)
136 ocv_clear_vars(HAVE_OPENNI HAVE_OPENNI_PRIME_SENSOR_MODULE)
138 include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenNI.cmake")
142 ocv_clear_vars(HAVE_XIMEA)
144 include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindXimea.cmake")
151 ocv_clear_vars(HAVE_FFMPEG HAVE_FFMPEG_CODEC HAVE_FFMPEG_FORMAT HAVE_FFMPEG_UTIL HAVE_FFMPEG_SWSCALE HAVE_GENTOO_FFMPEG HAVE_FFMPEG_FFMPEG)
153 if(WIN32 AND NOT ARM)
154 include("${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/ffmpeg_version.cmake")
156 CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
157 CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
158 CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
159 CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
161 CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
162 CHECK_INCLUDE_FILE(ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG)
163 if(NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG)
164 if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE)
165 set(HAVE_GENTOO_FFMPEG TRUE)
168 if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL AND HAVE_FFMPEG_SWSCALE)
169 set(HAVE_FFMPEG TRUE)
173 # Find the bzip2 library because it is required on some systems
174 FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2)
175 if(NOT BZIP2_LIBRARIES)
177 FIND_FILE(BZIP2_LIBRARIES NAMES libbz2.so.1 PATHS /lib)
183 find_path(FFMPEG_INCLUDE_DIR "libavformat/avformat.h"
184 PATHS /usr/local /usr /opt
185 PATH_SUFFIXES include
186 DOC "The path to FFMPEG headers")
187 if(FFMPEG_INCLUDE_DIR)
188 set(HAVE_GENTOO_FFMPEG TRUE)
189 set(FFMPEG_LIB_DIR "${FFMPEG_INCLUDE_DIR}/../lib" CACHE PATH "Full path of FFMPEG library directory")
190 if(EXISTS "${FFMPEG_LIB_DIR}/libavcodec.a")
191 set(HAVE_FFMPEG_CODEC 1)
192 set(ALIASOF_libavcodec_VERSION "Unknown")
193 if(EXISTS "${FFMPEG_LIB_DIR}/libavformat.a")
194 set(HAVE_FFMPEG_FORMAT 1)
195 set(ALIASOF_libavformat_VERSION "Unknown")
196 if(EXISTS "${FFMPEG_LIB_DIR}/libavutil.a")
197 set(HAVE_FFMPEG_UTIL 1)
198 set(ALIASOF_libavutil_VERSION "Unknown")
199 if(EXISTS "${FFMPEG_LIB_DIR}/libswscale.a")
200 set(HAVE_FFMPEG_SWSCALE 1)
201 set(ALIASOF_libswscale_VERSION "Unknown")
207 endif(FFMPEG_INCLUDE_DIR)
209 set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} "${FFMPEG_LIB_DIR}/libavcodec.a"
210 "${FFMPEG_LIB_DIR}/libavformat.a" "${FFMPEG_LIB_DIR}/libavutil.a"
211 "${FFMPEG_LIB_DIR}/libswscale.a")
212 ocv_include_directories(${FFMPEG_INCLUDE_DIR})
217 # --- VideoInput/DirectShow ---
219 # always have VideoInput on Windows
223 # --- VideoInput/Microsoft Media Foundation ---
225 check_include_file(Mfapi.h HAVE_MSMF)
228 # --- Extra HighGUI libs on Windows ---
230 list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32 setupapi ws2_32 vfw32)
232 list(APPEND HIGHGUI_LIBRARIES avifil32 avicap32 winmm msvfw32)
233 list(REMOVE_ITEM HIGHGUI_LIBRARIES vfw32)
235 list(APPEND HIGHGUI_LIBRARIES winmm)
239 # --- Apple AV Foundation ---
240 if(WITH_AVFOUNDATION)
241 set(HAVE_AVFOUNDATION YES)
246 set(HAVE_QUICKTIME YES)