Merge remote-tracking branch 'upstream/3.4' into merge-3.4
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sun, 15 Dec 2019 11:23:46 +0000 (11:23 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sun, 15 Dec 2019 11:23:46 +0000 (11:23 +0000)
15 files changed:
1  2 
cmake/OpenCVDetectCUDA.cmake
cmake/OpenCVDetectCXXCompiler.cmake
cmake/OpenCVModule.cmake
cmake/OpenCVUtils.cmake
cmake/android/android_ant_projects.cmake
doc/CMakeLists.txt
doc/Doxyfile.in
modules/calib3d/test/test_undistort_badarg.cpp
modules/core/CMakeLists.txt
modules/dnn/src/layers/eltwise_layer.cpp
modules/imgcodecs/src/grfmt_bmp.cpp
modules/java/jni/CMakeLists.txt
modules/videoio/CMakeLists.txt
samples/cpp/CMakeLists.txt
samples/cpp/example_cmake/CMakeLists.txt

Simple merge
Simple merge
@@@ -1149,18 -1149,9 +1153,18 @@@ function(ocv_add_perf_tests
        source_group("Src" FILES "${${the_target}_pch}")
        ocv_add_executable(${the_target} ${OPENCV_PERF_${the_module}_SOURCES} ${${the_target}_pch})
        ocv_target_include_modules(${the_target} ${perf_deps})
-       ocv_target_link_libraries(${the_target} LINK_PRIVATE ${perf_deps} ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_LINKER_LIBS} ${OPENCV_PERF_${the_module}_DEPS})
+       ocv_target_link_libraries(${the_target} PRIVATE ${perf_deps} ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_LINKER_LIBS} ${OPENCV_PERF_${the_module}_DEPS})
        add_dependencies(opencv_perf_tests ${the_target})
  
 +      if(TARGET opencv_videoio_plugins)
 +        add_dependencies(${the_target} opencv_videoio_plugins)
 +      endif()
 +
 +      if(HAVE_HPX)
 +        message("Linking HPX to Perf test of module ${name}")
 +        ocv_target_link_libraries(${the_target} LINK_PRIVATE "${HPX_LIBRARIES}")
 +      endif()
 +
        set_target_properties(${the_target} PROPERTIES LABELS "${OPENCV_MODULE_${the_module}_LABEL};PerfTest")
        set_source_files_properties(${OPENCV_PERF_${the_module}_SOURCES} ${${the_target}_pch}
          PROPERTIES LABELS "${OPENCV_MODULE_${the_module}_LABEL};PerfTest")
@@@ -1239,18 -1230,9 +1243,18 @@@ function(ocv_add_accuracy_tests
        if(EXISTS "${CMAKE_CURRENT_BINARY_DIR}/test")
          ocv_target_include_directories(${the_target} "${CMAKE_CURRENT_BINARY_DIR}/test")
        endif()
-       ocv_target_link_libraries(${the_target} LINK_PRIVATE ${test_deps} ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_LINKER_LIBS} ${OPENCV_TEST_${the_module}_DEPS})
+       ocv_target_link_libraries(${the_target} PRIVATE ${test_deps} ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_LINKER_LIBS} ${OPENCV_TEST_${the_module}_DEPS})
        add_dependencies(opencv_tests ${the_target})
  
 +      if(TARGET opencv_videoio_plugins)
 +        add_dependencies(${the_target} opencv_videoio_plugins)
 +      endif()
 +
 +      if(HAVE_HPX)
 +        message("Linking HPX to Perf test of module ${name}")
 +        ocv_target_link_libraries(${the_target} LINK_PRIVATE "${HPX_LIBRARIES}")
 +      endif()
 +
        set_target_properties(${the_target} PROPERTIES LABELS "${OPENCV_MODULE_${the_module}_LABEL};AccuracyTest")
        set_source_files_properties(${OPENCV_TEST_${the_module}_SOURCES} ${${the_target}_pch}
          PROPERTIES LABELS "${OPENCV_MODULE_${the_module}_LABEL};AccuracyTest")
Simple merge
Simple merge
diff --cc doc/Doxyfile.in
Simple merge
@@@ -105,19 -257,27 +105,19 @@@ void CV_UndistortPointsBadArgTest::run(
      R = cv::cvarrToMat(&_R_orig);
      src_points = cv::cvarrToMat(&_src_points_orig);
  
 -    temp = cvCreateMat(2,2,CV_32FC2);
 -    src_points = cv::cvarrToMat(temp);
 +    src_points.create(2, 2, CV_32FC2);
      errcount += run_test_case( CV_StsAssert, "Invalid input data matrix size" );
      src_points = cv::cvarrToMat(&_src_points_orig);
 -    cvReleaseMat(&temp);
  
 -    temp = cvCreateMat(1,4,CV_64FC2);
 -    src_points = cv::cvarrToMat(temp);
 +    src_points.create(1, 4, CV_64FC2);
      errcount += run_test_case( CV_StsAssert, "Invalid input data matrix type" );
      src_points = cv::cvarrToMat(&_src_points_orig);
 -    cvReleaseMat(&temp);
  
      src_points = cv::Mat();
-     errcount += run_test_case( CV_StsAssert, "Input data matrix is not continuous" );
+     errcount += run_test_case( CV_StsBadArg, "Input data matrix is not continuous" );
      src_points = cv::cvarrToMat(&_src_points_orig);
 -    cvReleaseMat(&temp);
 -
 -
  
  //------------
 -    cvReleaseImage(&temp_img);
      ts->set_failed_test_info(errcount > 0 ? cvtest::TS::FAIL_BAD_ARG_CHECK : cvtest::TS::OK);
  }
  
Simple merge
Simple merge
Simple merge
@@@ -64,164 -63,246 +64,164 @@@ if(DEFINED WINRT AND NOT DEFINED WINRT_
          ${CMAKE_CURRENT_LIST_DIR}/src/cap_winrt/MediaStreamSink.hpp)
  endif()
  
 -if(HAVE_MFX)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_common.cpp)
 -  list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_common.hpp)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_reader.cpp)
 -  list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_reader.hpp)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_writer.cpp)
 -  list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_writer.hpp)
 -  list(APPEND VIDEOIO_LIBRARIES mfx)
 -endif()
 +include(${CMAKE_CURRENT_LIST_DIR}/cmake/plugin.cmake)
  
 -if(WIN32 AND NOT ARM)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_cmu.cpp)
 +set(tgts)
 +
 +if(TARGET ocv.3rdparty.mediasdk)
 +  if("mfx" IN_LIST VIDEOIO_PLUGIN_LIST)
 +    ocv_create_builtin_videoio_plugin("opencv_videoio_intel_mfx" ocv.3rdparty.mediasdk "cap_mfx_common.cpp" "cap_mfx_reader.cpp" "cap_mfx_writer.cpp" "cap_mfx_plugin.cpp")
 +  else()
 +    list(APPEND videoio_srcs
 +      ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_common.cpp
 +      ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_reader.cpp
 +      ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_writer.cpp)
 +    list(APPEND videoio_hdrs
 +      ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_common.hpp
 +      ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_reader.hpp
 +      ${CMAKE_CURRENT_LIST_DIR}/src/cap_mfx_writer.hpp)
 +    list(APPEND tgts ocv.3rdparty.mediasdk)
 +  endif()
  endif()
  
 -if (WIN32 AND HAVE_DSHOW)
 +if(TARGET ocv.3rdparty.dshow)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dshow.cpp)
    list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dshow.hpp)
 -  if(MINGW AND X86_64)
 -    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTRSAFE_NO_DEPRECATE")
 -  endif()
 +  list(APPEND tgts ocv.3rdparty.dshow)
  endif()
  
 -if(WIN32 AND HAVE_MSMF)
 +if(TARGET ocv.3rdparty.msmf)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_msmf.hpp)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_msmf.cpp)
 -  if(HAVE_MSMF_DXVA)
 -    add_definitions(-DHAVE_MSMF_DXVA)
 -  endif()
 +  list(APPEND tgts ocv.3rdparty.msmf)
  endif()
  
 -if (WIN32 AND HAVE_VFW)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_vfw.cpp)
 -endif()
 -
 -if(HAVE_XINE)
 +if(TARGET ocv.3rdparty.xine)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_xine.cpp)
 -endif(HAVE_XINE)
 +  list(APPEND tgts ocv.3rdparty.xine)
 +endif()
  
 -if(HAVE_DC1394_2)
 +if(TARGET ocv.3rdparty.dc1394_2)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dc1394_v2.cpp)
 -endif(HAVE_DC1394_2)
 -
 -if(HAVE_DC1394)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_dc1394.cpp)
 -endif(HAVE_DC1394)
 -
 -if(HAVE_GSTREAMER)
 -  IF(WIN32)
 -    INCLUDE_DIRECTORIES(${GSTREAMER_INCLUDE_DIR})
 -    list(APPEND VIDEOIO_LIBRARIES ${GSTREAMER_LIBRARIES})
 -  ENDIF(WIN32)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_gstreamer.cpp)
 -endif(HAVE_GSTREAMER)
 -
 -if(HAVE_UNICAP)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_unicap.cpp)
 -endif(HAVE_UNICAP)
 -
 -if(HAVE_LIBV4L)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_libv4l.cpp)
 -elseif(HAVE_CAMV4L2 OR HAVE_VIDEOIO)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_v4l.cpp)
 +  list(APPEND tgts ocv.3rdparty.dc1394_2)
  endif()
  
 -if(HAVE_OPENNI)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_openni.cpp)
 -  ocv_include_directories(${OPENNI_INCLUDE_DIR})
 -  list(APPEND VIDEOIO_LIBRARIES ${OPENNI_LIBRARY})
 -endif(HAVE_OPENNI)
 +if(TARGET ocv.3rdparty.gstreamer)
 +  if("gstreamer" IN_LIST VIDEOIO_PLUGIN_LIST)
 +    ocv_create_builtin_videoio_plugin("opencv_videoio_gstreamer" ocv.3rdparty.gstreamer "cap_gstreamer.cpp")
 +  else()
 +    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_gstreamer.cpp)
 +    list(APPEND tgts ocv.3rdparty.gstreamer)
 +  endif()
 +endif()
  
 -if(HAVE_OPENNI2)
 +if(TARGET ocv.3rdparty.v4l)
 +  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_v4l.cpp)
 +  list(APPEND tgts ocv.3rdparty.v4l)
 +endif()
 +
 +if(TARGET ocv.3rdparty.openni2)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_openni2.cpp)
 -  ocv_include_directories(${OPENNI2_INCLUDE_DIR})
 -  list(APPEND VIDEOIO_LIBRARIES ${OPENNI2_LIBRARY})
 -endif(HAVE_OPENNI2)
 +  list(APPEND tgts ocv.3rdparty.openni2)
 +endif()
  
 -if(HAVE_XIMEA)
 +if(TARGET ocv.3rdparty.ximea)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ximea.cpp)
 -  if(XIMEA_PATH)
 -    ocv_include_directories(${XIMEA_PATH})
 -  endif()
 -  if(XIMEA_LIBRARY_DIR)
 -    link_directories("${XIMEA_LIBRARY_DIR}")
 -  endif()
 -  if(WIN32 AND X86_64)
 -    list(APPEND VIDEOIO_LIBRARIES xiapi64)
 -  elseif(WIN32)
 -    list(APPEND VIDEOIO_LIBRARIES xiapi32)
 -  elseif(APPLE)
 -    list(APPEND VIDEOIO_LIBRARIES "-framework m3api")
 -  else()
 -    list(APPEND VIDEOIO_LIBRARIES m3api)
 -  endif()
 -endif(HAVE_XIMEA)
 +  list(APPEND tgts ocv.3rdparty.ximea)
 +endif()
  
 -if(HAVE_FFMPEG)
 -  list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg_impl.hpp)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg.cpp)
 -  if(UNIX AND BZIP2_LIBRARIES)
 -    list(APPEND VIDEOIO_LIBRARIES ${BZIP2_LIBRARIES})
 -  endif()
 -  if(APPLE)
 -    list(APPEND VIDEOIO_LIBRARIES "-framework VideoDecodeAcceleration" bz2)
 -  endif()
 +if(TARGET ocv.3rdparty.ffmpeg)
    if(HAVE_FFMPEG_WRAPPER)
 -    add_definitions(-DHAVE_FFMPEG_WRAPPER=1)
 +    list(APPEND tgts ocv.3rdparty.ffmpeg)
 +  elseif("ffmpeg" IN_LIST VIDEOIO_PLUGIN_LIST)
 +    ocv_create_builtin_videoio_plugin("opencv_videoio_ffmpeg" ocv.3rdparty.ffmpeg "cap_ffmpeg.cpp")
 +  else()
 +    list(APPEND videoio_hdrs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg_impl.hpp)
 +    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_ffmpeg.cpp)
 +    list(APPEND tgts ocv.3rdparty.ffmpeg)
    endif()
 -endif(HAVE_FFMPEG)
 +endif()
  
 -if(HAVE_PVAPI)
 -  add_definitions(-DHAVE_PVAPI)
 -  add_definitions(${PVAPI_DEFINITIONS})
 -  ocv_include_directories(${PVAPI_INCLUDE_PATH})
 +if(TARGET ocv.3rdparty.pvapi)
    set(videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_pvapi.cpp ${videoio_srcs})
 -  list(APPEND VIDEOIO_LIBRARIES ${PVAPI_LIBRARY})
 +  list(APPEND tgts ocv.3rdparty.pvapi)
  endif()
  
 -if(HAVE_GIGE_API)
 -  add_definitions(-DHAVE_GIGE_API)
 -  ocv_include_directories(${GIGEAPI_INCLUDE_PATH})
 -  set(videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_giganetix.cpp ${videoio_srcs})
 -  list(APPEND VIDEOIO_LIBRARIES ${GIGEAPI_LIBRARIES})
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_giganetix.cpp)
 -endif(HAVE_GIGE_API)
 -
 -if(HAVE_ARAVIS_API)
 -  add_definitions(-DHAVE_ARAVIS_API)
 -  ocv_include_directories(${ARAVIS_INCLUDE_PATH})
 -  set(videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_aravis.cpp ${videoio_srcs})
 -  list(APPEND VIDEOIO_LIBRARIES ${ARAVIS_LIBRARIES})
 +if(TARGET ocv.3rdparty.aravis)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_aravis.cpp)
 -endif(HAVE_ARAVIS_API)
 +  list(APPEND tgts ocv.3rdparty.aravis)
 +endif()
  
 -if(HAVE_AVFOUNDATION)
 +if(TARGET ocv.3rdparty.avfoundation)
    if(IOS)
      list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_avfoundation.mm)
 -    list(APPEND VIDEOIO_LIBRARIES "-framework AVFoundation" "-framework QuartzCore")
    else()
      list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_avfoundation_mac.mm)
 -    list(APPEND VIDEOIO_LIBRARIES "-framework Cocoa" "-framework Accelerate" "-framework AVFoundation" "-framework CoreGraphics" "-framework CoreMedia" "-framework CoreVideo" "-framework QuartzCore")
    endif()
 +  list(APPEND tgts ocv.3rdparty.avfoundation)
  endif()
  
 -if(HAVE_QUICKTIME)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_qt.cpp)
 -  list(APPEND VIDEOIO_LIBRARIES "-framework Carbon" "-framework QuickTime" "-framework CoreFoundation" "-framework QuartzCore")
 -elseif(HAVE_QTKIT)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_qtkit.mm)
 -  list(APPEND VIDEOIO_LIBRARIES "-framework QTKit" "-framework QuartzCore" "-framework AppKit")
 +if(TARGET ocv.3rdparty.librealsense)
 +  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_librealsense.cpp)
 +  list(APPEND tgts ocv.3rdparty.librealsense)
  endif()
  
 -if(HAVE_INTELPERC)
 -  list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_intelperc.cpp)
 -  ocv_include_directories(${INTELPERC_INCLUDE_DIR})
 -  list(APPEND VIDEOIO_LIBRARIES ${INTELPERC_LIBRARIES})
 -endif(HAVE_INTELPERC)
 -
 -if(HAVE_GPHOTO2)
 +if(TARGET ocv.3rdparty.gphoto2)
    list(APPEND videoio_srcs ${CMAKE_CURRENT_LIST_DIR}/src/cap_gphoto2.cpp)
 -endif(HAVE_GPHOTO2)
 +  list(APPEND tgts ocv.3rdparty.gphoto2)
 +endif()
  
 -if(IOS)
 +if(TARGET ocv.3rdparty.cap_ios)
    list(APPEND videoio_srcs
 -       ${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_abstract_camera.mm
 -       ${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_photo_camera.mm
 -       ${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_video_camera.mm)
 -
 -  list(APPEND VIDEOIO_LIBRARIES "-framework Accelerate" "-framework AVFoundation" "-framework CoreGraphics" "-framework CoreImage" "-framework CoreMedia" "-framework CoreVideo" "-framework QuartzCore" "-framework UIKit")
 +    ${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_abstract_camera.mm
 +    ${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_photo_camera.mm
 +    ${CMAKE_CURRENT_LIST_DIR}/src/cap_ios_video_camera.mm)
 +  list(APPEND tgts ocv.3rdparty.cap_ios)
  endif()
  
 -if(TRUE)
 -  # these variables are set by 'ocv_append_build_options(VIDEOIO ...)'
 -  foreach(P ${VIDEOIO_INCLUDE_DIRS})
 -    ocv_include_directories(${P})
 -  endforeach()
 -
 -  foreach(P ${VIDEOIO_LIBRARY_DIRS})
 -    link_directories(${P})
 -  endforeach()
 +if(TARGET ocv.3rdparty.android_mediandk)
 +  list(APPEND videoio_srcs
 +    ${CMAKE_CURRENT_LIST_DIR}/src/cap_android_mediandk.cpp)
 +  list(APPEND tgts ocv.3rdparty.android_mediandk)
  endif()
  
 -source_group("Src" FILES ${videoio_srcs} ${videoio_hdrs})
 -source_group("Include" FILES ${videoio_ext_hdrs})
 -ocv_set_module_sources(HEADERS ${videoio_ext_hdrs} SOURCES ${videoio_srcs} ${videoio_hdrs})
 +ocv_set_module_sources(HEADERS ${videoio_ext_hdrs} ${videoio_hdrs} SOURCES ${videoio_srcs})
  ocv_module_include_directories()
 +ocv_create_module()
 +ocv_add_accuracy_tests(${tgts})
 +ocv_add_perf_tests(${tgts})
  
 -ocv_create_module(${VIDEOIO_LIBRARIES})
 -
 -macro(ocv_videoio_configure_target)
 -if(APPLE)
 -  add_apple_compiler_options(the_module)
 +if(VIDEOIO_ENABLE_PLUGINS)
 +  ocv_target_compile_definitions(${the_module} PRIVATE ENABLE_PLUGINS)
  endif()
  
 -if(MSVC)
 -  set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /NODEFAULTLIB:libcmt.lib /DEBUG")
 -  if(DEFINED WINRT AND NOT DEFINED ENABLE_WINRT_MODE_NATIVE)
 -    set_target_properties(${the_module} PROPERTIES VS_DESKTOP_EXTENSIONS_VERSION "${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
 -  endif()
 +if(VIDEOIO_ENABLE_STRICT_PLUGIN_CHECK)
 +  ocv_target_compile_definitions(${the_module} PRIVATE STRICT_PLUGIN_CHECK)
  endif()
  
 -ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)
 +ocv_target_link_libraries(${the_module} LINK_PRIVATE ${tgts})
  
 +# copy FFmpeg dll to the output folder
  if(WIN32 AND HAVE_FFMPEG_WRAPPER)
-   if(MSVC64 OR MINGW64)
-     set(FFMPEG_SUFFIX "_64")
 -  #copy ffmpeg dll to the output folder
+   if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+     set(FFMPEG_SUFFIX _64)
    endif()
 -
    set(ffmpeg_dir "${OpenCV_BINARY_DIR}/3rdparty/ffmpeg")
 -  set(ffmpeg_bare_name "opencv_ffmpeg${FFMPEG_SUFFIX}.dll")
 -  set(ffmpeg_bare_name_ver "opencv_ffmpeg${OPENCV_DLLVERSION}${FFMPEG_SUFFIX}.dll")
 +  set(ffmpeg_bare_name "opencv_videoio_ffmpeg${FFMPEG_SUFFIX}.dll")
 +  set(ffmpeg_bare_name_ver "opencv_videoio_ffmpeg${OPENCV_DLLVERSION}${FFMPEG_SUFFIX}.dll")
    set(ffmpeg_path "${ffmpeg_dir}/${ffmpeg_bare_name}")
 -
    if(MSVC_IDE)
 -    add_custom_command(TARGET ${the_module} POST_BUILD
 -                       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Release/${ffmpeg_bare_name_ver}"
 -                       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Debug/${ffmpeg_bare_name_ver}"
 -                       COMMENT "Copying ${ffmpeg_path} to the output directory")
 +    execute_process(
 +      COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Release/${ffmpeg_bare_name_ver}"
 +      COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Debug/${ffmpeg_bare_name_ver}")
    elseif(MSVC AND (CMAKE_GENERATOR MATCHES "Visual"))
 -    add_custom_command(TARGET ${the_module} POST_BUILD
 -                       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/${ffmpeg_bare_name_ver}"
 -                       COMMENT "Copying ${ffmpeg_path} to the output directory")
 +    execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/${ffmpeg_bare_name_ver}")
    else()
 -    add_custom_command(TARGET ${the_module} POST_BUILD
 -                       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${ffmpeg_bare_name_ver}"
 -                       COMMENT "Copying ${ffmpeg_path} to the output directory")
 +    execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${ffmpeg_bare_name_ver}")
    endif()
 -
    install(FILES "${ffmpeg_path}" DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT libs RENAME "${ffmpeg_bare_name_ver}")
 -
    if(INSTALL_CREATE_DISTRIB)
 -    install(FILES "${ffmpeg_dir}/opencv_ffmpeg.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_ffmpeg${OPENCV_DLLVERSION}.dll")
 -    install(FILES "${ffmpeg_dir}/opencv_ffmpeg_64.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_ffmpeg${OPENCV_DLLVERSION}_64.dll")
 +    install(FILES "${ffmpeg_dir}/opencv_videoio_ffmpeg.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_videoio_ffmpeg${OPENCV_DLLVERSION}.dll")
 +    install(FILES "${ffmpeg_dir}/opencv_videoio_ffmpeg_64.dll" DESTINATION "bin/" COMPONENT libs RENAME "opencv_videoio_ffmpeg${OPENCV_DLLVERSION}_64.dll")
    endif()
  endif()
 -endmacro()
 -
 -if(NOT BUILD_opencv_world)
 -  ocv_videoio_configure_target()
 -endif()
 -
 -ocv_add_accuracy_tests()
 -ocv_add_perf_tests()
Simple merge