|
1 | | -# ---------------------------------------------------------------------------- |
2 | | -# Detect 3rd-party video IO libraries |
3 | | -# ---------------------------------------------------------------------------- |
4 | | - |
5 | | -# --- GStreamer --- |
6 | | -ocv_clear_vars(HAVE_GSTREAMER) |
7 | | -# try to find gstreamer 1.x first if 0.10 was not requested |
8 | | -if(WITH_GSTREAMER AND NOT WITH_GSTREAMER_0_10) |
9 | | - if(WIN32) |
10 | | - SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_LIST_DIR}") |
11 | | - FIND_PACKAGE(GstreamerWindows) |
12 | | - IF(GSTREAMER_gstbase_LIBRARY AND GSTREAMER_gstvideo_LIBRARY AND GSTREAMER_gstapp_LIBRARY AND GSTREAMER_gstpbutils_LIBRARY AND GSTREAMER_gstriff_LIBRARY) |
13 | | - set(HAVE_GSTREAMER TRUE) |
14 | | - set(GSTREAMER_BASE_VERSION 1.0) |
15 | | - set(GSTREAMER_VIDEO_VERSION 1.0) |
16 | | - set(GSTREAMER_APP_VERSION 1.0) |
17 | | - set(GSTREAMER_RIFF_VERSION 1.0) |
18 | | - set(GSTREAMER_PBUTILS_VERSION 1.0) |
19 | | - ENDIF(GSTREAMER_gstbase_LIBRARY AND GSTREAMER_gstvideo_LIBRARY AND GSTREAMER_gstapp_LIBRARY AND GSTREAMER_gstpbutils_LIBRARY AND GSTREAMER_gstriff_LIBRARY) |
20 | | - |
21 | | - else(WIN32) |
22 | | - CHECK_MODULE(gstreamer-base-1.0 HAVE_GSTREAMER_BASE VIDEOIO) |
23 | | - CHECK_MODULE(gstreamer-video-1.0 HAVE_GSTREAMER_VIDEO VIDEOIO) |
24 | | - CHECK_MODULE(gstreamer-app-1.0 HAVE_GSTREAMER_APP VIDEOIO) |
25 | | - CHECK_MODULE(gstreamer-riff-1.0 HAVE_GSTREAMER_RIFF VIDEOIO) |
26 | | - CHECK_MODULE(gstreamer-pbutils-1.0 HAVE_GSTREAMER_PBUTILS VIDEOIO) |
27 | | - |
28 | | - if(HAVE_GSTREAMER_BASE AND HAVE_GSTREAMER_VIDEO AND HAVE_GSTREAMER_APP AND HAVE_GSTREAMER_RIFF AND HAVE_GSTREAMER_PBUTILS) |
29 | | - set(HAVE_GSTREAMER TRUE) |
30 | | - set(GSTREAMER_BASE_VERSION ${ALIASOF_gstreamer-base-1.0_VERSION}) |
31 | | - set(GSTREAMER_VIDEO_VERSION ${ALIASOF_gstreamer-video-1.0_VERSION}) |
32 | | - set(GSTREAMER_APP_VERSION ${ALIASOF_gstreamer-app-1.0_VERSION}) |
33 | | - set(GSTREAMER_RIFF_VERSION ${ALIASOF_gstreamer-riff-1.0_VERSION}) |
34 | | - set(GSTREAMER_PBUTILS_VERSION ${ALIASOF_gstreamer-pbutils-1.0_VERSION}) |
35 | | - endif() |
36 | | - endif(WIN32) |
37 | | -endif(WITH_GSTREAMER AND NOT WITH_GSTREAMER_0_10) |
38 | | - |
39 | | -# if gstreamer 1.x was not found, or we specified we wanted 0.10, try to find it |
40 | | -if(WITH_GSTREAMER AND NOT HAVE_GSTREAMER OR WITH_GSTREAMER_0_10) |
41 | | - CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER_BASE VIDEOIO) |
42 | | - CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER_VIDEO VIDEOIO) |
43 | | - CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER_APP VIDEOIO) |
44 | | - CHECK_MODULE(gstreamer-riff-0.10 HAVE_GSTREAMER_RIFF VIDEOIO) |
45 | | - CHECK_MODULE(gstreamer-pbutils-0.10 HAVE_GSTREAMER_PBUTILS VIDEOIO) |
46 | | - |
47 | | - if(HAVE_GSTREAMER_BASE AND HAVE_GSTREAMER_VIDEO AND HAVE_GSTREAMER_APP AND HAVE_GSTREAMER_RIFF AND HAVE_GSTREAMER_PBUTILS) |
48 | | - set(HAVE_GSTREAMER TRUE) |
49 | | - set(GSTREAMER_BASE_VERSION ${ALIASOF_gstreamer-base-0.10_VERSION}) |
50 | | - set(GSTREAMER_VIDEO_VERSION ${ALIASOF_gstreamer-video-0.10_VERSION}) |
51 | | - set(GSTREAMER_APP_VERSION ${ALIASOF_gstreamer-app-0.10_VERSION}) |
52 | | - set(GSTREAMER_RIFF_VERSION ${ALIASOF_gstreamer-riff-0.10_VERSION}) |
53 | | - set(GSTREAMER_PBUTILS_VERSION ${ALIASOF_gstreamer-pbutils-0.10_VERSION}) |
54 | | - endif() |
55 | | -endif(WITH_GSTREAMER AND NOT HAVE_GSTREAMER OR WITH_GSTREAMER_0_10) |
56 | | - |
57 | | -# --- PvApi --- |
58 | | -ocv_clear_vars(HAVE_PVAPI) |
59 | | -if(WITH_PVAPI) |
60 | | - find_path(PVAPI_INCLUDE_PATH "PvApi.h" |
61 | | - PATHS /usr/local /opt /usr ENV ProgramFiles ENV ProgramW6432 |
62 | | - PATH_SUFFIXES include "Allied Vision Technologies/GigESDK/inc-pc" "AVT GigE SDK/inc-pc" "GigESDK/inc-pc" |
63 | | - DOC "The path to PvAPI header") |
64 | | - |
65 | | - if(PVAPI_INCLUDE_PATH) |
66 | | - if(X86 AND NOT WIN32) |
67 | | - set(PVAPI_SDK_SUBDIR x86) |
68 | | - elseif(X86_64) |
69 | | - set(PVAPI_SDK_SUBDIR x64) |
70 | | - elseif(ARM) |
71 | | - set(PVAPI_SDK_SUBDIR arm) |
72 | | - endif() |
73 | | - |
74 | | - get_filename_component(_PVAPI_LIBRARY_HINT "${PVAPI_INCLUDE_PATH}/../lib-pc" ABSOLUTE) |
75 | | - |
76 | | - find_library(PVAPI_LIBRARY NAMES "PvAPI" PATHS "${_PVAPI_LIBRARY_HINT}") |
77 | | - |
78 | | - if(PVAPI_LIBRARY) |
79 | | - if(WIN32) |
80 | | - if(MINGW) |
81 | | - set(PVAPI_DEFINITIONS "-DPVDECL=__stdcall") |
82 | | - endif(MINGW) |
83 | | - endif() |
84 | | - set(HAVE_PVAPI TRUE) |
85 | | - endif() |
86 | | - endif(PVAPI_INCLUDE_PATH) |
87 | | -endif(WITH_PVAPI) |
88 | | - |
89 | | -# --- GigEVisionSDK --- |
90 | | -ocv_clear_vars(HAVE_GIGE_API) |
91 | | -if(WITH_GIGEAPI) |
92 | | - find_path(GIGEAPI_INCLUDE_PATH "GigEVisionSDK.h" |
93 | | - PATHS /usr/local /var /opt /usr ENV ProgramFiles ENV ProgramW6432 |
94 | | - PATH_SUFFIXES include "Smartek Vision Technologies/GigEVisionSDK/gige_cpp" "GigEVisionSDK/gige_cpp" "GigEVisionSDK/gige_c" |
95 | | - DOC "The path to Smartek GigEVisionSDK header") |
96 | | - FIND_LIBRARY(GIGEAPI_LIBRARIES NAMES GigEVisionSDK) |
97 | | - if(GIGEAPI_LIBRARIES AND GIGEAPI_INCLUDE_PATH) |
98 | | - set(HAVE_GIGE_API TRUE) |
99 | | - endif() |
100 | | -endif(WITH_GIGEAPI) |
101 | | - |
102 | | -# --- Aravis SDK --- |
103 | | -ocv_clear_vars(HAVE_ARAVIS_API) |
104 | | -if(WITH_ARAVIS) |
105 | | - check_module(glib-2.0 HAVE_ARAVIS_GLIB VIDEOIO) |
106 | | - if(HAVE_ARAVIS_GLIB) |
107 | | - find_path(ARAVIS_INCLUDE_PATH "arv.h" |
108 | | - PATHS /usr/local /var /opt /usr ENV ProgramFiles ENV ProgramW6432 |
109 | | - PATH_SUFFIXES include "aravis-0.6" "aravis-0.4" |
110 | | - DOC "The path to Aravis SDK headers") |
111 | | - find_library(ARAVIS_LIBRARIES NAMES "aravis-0.6" "aravis-0.4" ) |
112 | | - if(ARAVIS_LIBRARIES AND ARAVIS_INCLUDE_PATH) |
113 | | - set(HAVE_ARAVIS_API TRUE) |
114 | | - endif() |
115 | | - else() |
116 | | - message("Can not build Aravis support without glib2") |
117 | | - endif() |
118 | | -endif(WITH_ARAVIS) |
119 | | - |
120 | | -# --- Dc1394 --- |
121 | | -ocv_clear_vars(HAVE_DC1394 HAVE_DC1394_2) |
122 | | -if(WITH_1394) |
123 | | - if(WIN32 AND MINGW) |
124 | | - find_path(CMU1394_INCLUDE_PATH "/1394common.h" |
125 | | - PATH_SUFFIXES include |
126 | | - DOC "The path to cmu1394 headers") |
127 | | - find_path(DC1394_2_INCLUDE_PATH "/dc1394/dc1394.h" |
128 | | - PATH_SUFFIXES include |
129 | | - DOC "The path to DC1394 2.x headers") |
130 | | - if(CMU1394_INCLUDE_PATH AND DC1394_2_INCLUDE_PATH) |
131 | | - set(CMU1394_LIB_DIR "${CMU1394_INCLUDE_PATH}/../lib" CACHE PATH "Full path of CMU1394 library directory") |
132 | | - set(DC1394_2_LIB_DIR "${DC1394_2_INCLUDE_PATH}/../lib" CACHE PATH "Full path of DC1394 2.x library directory") |
133 | | - if(EXISTS "${CMU1394_LIB_DIR}/lib1394camera.a" AND EXISTS "${DC1394_2_LIB_DIR}/libdc1394.a") |
134 | | - set(HAVE_DC1394_2 TRUE) |
135 | | - endif() |
136 | | - endif() |
137 | | - if(HAVE_DC1394_2) |
138 | | - ocv_parse_pkg("libdc1394-2" "${DC1394_2_LIB_DIR}/pkgconfig" "") |
139 | | - ocv_include_directories(${DC1394_2_INCLUDE_PATH}) |
140 | | - set(VIDEOIO_LIBRARIES ${VIDEOIO_LIBRARIES} |
141 | | - "${DC1394_2_LIB_DIR}/libdc1394.a" |
142 | | - "${CMU1394_LIB_DIR}/lib1394camera.a") |
143 | | - endif(HAVE_DC1394_2) |
144 | | - else(WIN32 AND MINGW) |
145 | | - CHECK_MODULE(libdc1394-2 HAVE_DC1394_2 VIDEOIO) |
146 | | - if(NOT HAVE_DC1394_2) |
147 | | - CHECK_MODULE(libdc1394 HAVE_DC1394 VIDEOIO) |
148 | | - endif() |
149 | | - endif(WIN32 AND MINGW) |
150 | | -endif(WITH_1394) |
151 | | - |
152 | | -# --- xine --- |
153 | | -ocv_clear_vars(HAVE_XINE) |
154 | | -if(WITH_XINE) |
155 | | - CHECK_MODULE(libxine HAVE_XINE VIDEOIO) |
156 | | -endif(WITH_XINE) |
157 | | - |
158 | | -# --- V4L --- |
159 | | -ocv_clear_vars(HAVE_CAMV4L2 HAVE_VIDEOIO) |
160 | | -if(WITH_V4L) |
161 | | - CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2) |
162 | | - CHECK_INCLUDE_FILE(sys/videoio.h HAVE_VIDEOIO) |
163 | | -endif(WITH_V4L) |
164 | | - |
165 | | -# --- OpenNI --- |
166 | | -ocv_clear_vars(HAVE_OPENNI HAVE_OPENNI_PRIME_SENSOR_MODULE) |
167 | | -if(WITH_OPENNI) |
168 | | - include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenNI.cmake") |
169 | | -endif(WITH_OPENNI) |
170 | | - |
171 | | -ocv_clear_vars(HAVE_OPENNI2) |
172 | | -if(WITH_OPENNI2) |
173 | | - include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenNI2.cmake") |
174 | | -endif(WITH_OPENNI2) |
175 | | - |
176 | | -# --- XIMEA --- |
177 | | -ocv_clear_vars(HAVE_XIMEA) |
178 | | -if(WITH_XIMEA) |
179 | | - include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindXimea.cmake") |
180 | | - if(XIMEA_FOUND) |
181 | | - set(HAVE_XIMEA TRUE) |
182 | | - endif() |
183 | | -endif(WITH_XIMEA) |
184 | | - |
185 | | -# --- FFMPEG --- |
186 | | -ocv_clear_vars(HAVE_FFMPEG) |
187 | | -if(WITH_FFMPEG) # try FFmpeg autodetection |
188 | | - if(OPENCV_FFMPEG_USE_FIND_PACKAGE) |
189 | | - if(NOT HUNTER_ENABLED) |
190 | | - |
191 | | - if(OPENCV_FFMPEG_USE_FIND_PACKAGE STREQUAL "1" OR OPENCV_FFMPEG_USE_FIND_PACKAGE STREQUAL "ON") |
192 | | - set(OPENCV_FFMPEG_USE_FIND_PACKAGE "FFMPEG") |
193 | | - endif() |
194 | | - find_package(${OPENCV_FFMPEG_USE_FIND_PACKAGE}) # Required components: AVCODEC AVFORMAT AVUTIL SWSCALE |
195 | | - if(FFMPEG_FOUND OR FFmpeg_FOUND) |
196 | | - set(HAVE_FFMPEG TRUE) |
197 | | - else() |
198 | | - message(STATUS "Can't find FFmpeg via find_package(${OPENCV_FFMPEG_USE_FIND_PACKAGE})") |
199 | | - endif() |
200 | | - |
201 | | - else(HUNTER_ENABLED) |
202 | | - hunter_add_package(ffmpeg) |
203 | | - find_package(ffmpeg CONFIG REQUIRED) |
204 | | - |
205 | | - set(FFMPEG_FOUND TRUE) |
206 | | - set(HAVE_FFMPEG TRUE) |
207 | | - foreach(lib avcodec avformat avutil swresample swscale) |
208 | | - get_target_property( |
209 | | - ${lib}_INCLUDE_DIR |
210 | | - ffmpeg::${lib} |
211 | | - INTERFACE_INCLUDE_DIRECTORIES |
212 | | - ) |
213 | | - list(APPEND FFMPEG_INCLUDE_DIRS "${${lib}_INCLUDE_DIR}") |
214 | | - list(APPEND FFMPEG_LIBRARIES "ffmpeg::${lib}") |
215 | | - set(FFMPEG_lib${lib}_FOUND TRUE) |
216 | | - endforeach() |
217 | | - list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS) |
218 | | - endif() |
219 | | - elseif(WIN32 AND NOT ARM AND NOT OPENCV_FFMPEG_SKIP_DOWNLOAD) |
220 | | - include("${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/ffmpeg.cmake") |
221 | | - download_win_ffmpeg(FFMPEG_CMAKE_SCRIPT) |
222 | | - if(FFMPEG_CMAKE_SCRIPT) |
223 | | - set(HAVE_FFMPEG TRUE) |
224 | | - set(HAVE_FFMPEG_WRAPPER 1) |
225 | | - include("${FFMPEG_CMAKE_SCRIPT}") |
226 | | - endif() |
227 | | - elseif(PKG_CONFIG_FOUND) |
228 | | - ocv_check_modules(FFMPEG libavcodec libavformat libavutil libswscale) |
229 | | - ocv_check_modules(FFMPEG_libavresample libavresample) |
230 | | - if(FFMPEG_libavresample_FOUND) |
231 | | - ocv_append_build_options(FFMPEG FFMPEG_libavresample) |
232 | | - endif() |
233 | | - else() |
234 | | - message(STATUS "Can't find ffmpeg - 'pkg-config' utility is missing") |
235 | | - endif() |
236 | | -endif() |
237 | | -if(HAVE_FFMPEG |
238 | | - AND NOT HAVE_FFMPEG_WRAPPER |
239 | | -) |
240 | | - try_compile(__VALID_FFMPEG |
241 | | - "${OpenCV_BINARY_DIR}" |
242 | | - "${OpenCV_SOURCE_DIR}/cmake/checks/ffmpeg_test.cpp" |
243 | | - CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${FFMPEG_INCLUDE_DIRS}" |
244 | | - LINK_LIBRARIES ${FFMPEG_LIBRARIES} |
245 | | - OUTPUT_VARIABLE TRY_OUT |
246 | | - ) |
247 | | - if(NOT __VALID_FFMPEG) |
248 | | - #message(FATAL_ERROR "FFMPEG: test check build log:\n${TRY_OUT}") |
249 | | - message(STATUS "WARNING: Can't build ffmpeg test code") |
250 | | - set(HAVE_FFMPEG FALSE) |
251 | | - else() |
252 | | - ocv_append_build_options(VIDEOIO FFMPEG) |
253 | | - endif() |
254 | | -endif() |
255 | | - |
256 | | -# --- VideoInput/DirectShow --- |
257 | | -if(WITH_DSHOW) |
258 | | - if(MSVC_VERSION GREATER 1499) |
259 | | - set(HAVE_DSHOW 1) |
260 | | - elseif(NOT HAVE_DSHOW) |
261 | | - check_include_file(DShow.h HAVE_DSHOW) |
262 | | - endif() |
263 | | -endif(WITH_DSHOW) |
264 | | - |
265 | | -# --- VideoInput/Microsoft Media Foundation --- |
266 | | -ocv_clear_vars(HAVE_MSMF) |
267 | | -if(WITH_MSMF) |
268 | | - check_include_file(Mfapi.h HAVE_MSMF) |
269 | | - check_include_file(D3D11.h D3D11_found) |
270 | | - check_include_file(D3d11_4.h D3D11_4_found) |
271 | | - if(D3D11_found AND D3D11_4_found) |
272 | | - set(HAVE_DXVA YES) |
273 | | - else() |
274 | | - set(HAVE_DXVA NO) |
275 | | - endif() |
276 | | -endif(WITH_MSMF) |
277 | | - |
278 | 1 | # --- Extra HighGUI and VideoIO libs on Windows --- |
279 | 2 | if(WIN32) |
280 | 3 | list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32 setupapi ws2_32) |
|
0 commit comments