diff --git a/modules/videoio/CMakeLists.txt b/modules/videoio/CMakeLists.txt index 3a79631b86..8db5026455 100644 --- a/modules/videoio/CMakeLists.txt +++ b/modules/videoio/CMakeLists.txt @@ -1,12 +1,18 @@ set(VIDEOIO_PLUGIN_LIST "" CACHE STRING "List of videoio backends to be compiled as plugins (ffmpeg, gstreamer, mfx, msmf or special value 'all')") -set(VIDEOIO_ENABLE_PLUGINS "ON" CACHE BOOL "Allow building videoio plugin support") +set(VIDEOIO_ENABLE_PLUGINS "ON" CACHE BOOL "Allow building and using of videoio plugins") mark_as_advanced(VIDEOIO_PLUGIN_LIST VIDEOIO_ENABLE_PLUGINS) string(REPLACE "," ";" VIDEOIO_PLUGIN_LIST "${VIDEOIO_PLUGIN_LIST}") # support comma-separated list (,) too - -# Make virtual opencv_videoio_plugins target -if(NOT TARGET opencv_videoio_plugins) - add_custom_target(opencv_videoio_plugins ALL) +if(NOT VIDEOIO_ENABLE_PLUGINS) + if(VIDEOIO_PLUGIN_LIST) + message(WARNING "VideoIO: plugins are disabled through VIDEOIO_ENABLE_PLUGINS, so VIDEOIO_PLUGIN_LIST='${VIDEOIO_PLUGIN_LIST}' is ignored") + set(VIDEOIO_PLUGIN_LIST "") + endif() +else() + # Make virtual opencv_videoio_plugins target + if(NOT TARGET opencv_videoio_plugins) + add_custom_target(opencv_videoio_plugins ALL) + endif() endif() ocv_add_module(videoio opencv_imgproc opencv_imgcodecs WRAP java objc python) diff --git a/modules/videoio/src/backend_plugin.cpp b/modules/videoio/src/backend_plugin.cpp index ad34602ee2..fa4a1f6ff6 100644 --- a/modules/videoio/src/backend_plugin.cpp +++ b/modules/videoio/src/backend_plugin.cpp @@ -684,6 +684,8 @@ Ptr createPluginBackendFactory(VideoCaptureAPIs id, const char* #if OPENCV_HAVE_FILESYSTEM_SUPPORT && defined(ENABLE_PLUGINS) return makePtr(id, baseName); //.staticCast(); #else + CV_UNUSED(id); + CV_UNUSED(baseName); return Ptr(); #endif } diff --git a/modules/videoio/src/videoio_registry.cpp b/modules/videoio/src/videoio_registry.cpp index 59d96d162c..9fc75bc40e 100644 --- a/modules/videoio/src/videoio_registry.cpp +++ b/modules/videoio/src/videoio_registry.cpp @@ -84,7 +84,7 @@ static const struct VideoBackendInfo builtin_backends[] = #ifdef HAVE_MSMF DECLARE_STATIC_BACKEND(CAP_MSMF, "MSMF", MODE_CAPTURE_ALL | MODE_WRITER, cvCreateCapture_MSMF, cvCreateCapture_MSMF, cvCreateVideoWriter_MSMF), -#elif defined(ENABLE_PLUGINS) +#elif defined(ENABLE_PLUGINS) && defined(_WIN32) DECLARE_DYNAMIC_BACKEND(CAP_MSMF, "MSMF", MODE_CAPTURE_ALL | MODE_WRITER), #endif