diff --git a/modules/gpu/CMakeLists.txt b/modules/gpu/CMakeLists.txt index 1227b93a34..887daa917e 100644 --- a/modules/gpu/CMakeLists.txt +++ b/modules/gpu/CMakeLists.txt @@ -5,7 +5,7 @@ endif() set(the_description "GPU-accelerated Computer Vision") ocv_add_module(gpu opencv_imgproc opencv_calib3d opencv_objdetect opencv_video opencv_nonfree opencv_photo opencv_legacy) -ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/cuda" "${CMAKE_CURRENT_SOURCE_DIR}/../highgui/src") +ocv_module_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/cuda" "${OpenCV_SOURCE_DIR}/modules/highgui/src") file(GLOB lib_hdrs "include/opencv2/${name}/*.hpp" "include/opencv2/${name}/*.h") file(GLOB lib_device_hdrs "include/opencv2/${name}/device/*.hpp" "include/opencv2/${name}/device/*.h") @@ -21,16 +21,16 @@ source_group("Src\\Cuda" FILES ${lib_cuda} ${lib_cuda_hdrs}) source_group("Device" FILES ${lib_device_hdrs}) source_group("Device\\Detail" FILES ${lib_device_hdrs_detail}) -if (HAVE_CUDA) +if(HAVE_CUDA) file(GLOB_RECURSE ncv_srcs "src/nvidia/*.cpp" "src/nvidia/*.h*") - file(GLOB_RECURSE ncv_cuda "src/nvidia/*.cu") + file(GLOB_RECURSE ncv_cuda "src/nvidia/*.cu") set(ncv_files ${ncv_srcs} ${ncv_cuda}) source_group("Src\\NVidia" FILES ${ncv_files}) - ocv_include_directories("src/nvidia" "src/nvidia/core" "src/nvidia/NPP_staging" ${CUDA_INCLUDE_DIRS}) + + ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/nvidia" "${CMAKE_CURRENT_SOURCE_DIR}/src/nvidia/core" "${CMAKE_CURRENT_SOURCE_DIR}/src/nvidia/NPP_staging" ${CUDA_INCLUDE_DIRS}) ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef -Wmissing-declarations /wd4211 /wd4201 /wd4100 /wd4505 /wd4408) - string(REPLACE "-Wsign-promo" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;/EHsc-;") + string(REPLACE "-Wsign-promo" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") if(MSVC) if(NOT ENABLE_NOISY_WARNINGS) @@ -46,21 +46,13 @@ if (HAVE_CUDA) set(cuda_link_libs ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) - if(NOT APPLE) - unset(CUDA_nvcuvid_LIBRARY CACHE) + if(WIN32) find_cuda_helper_libs(nvcuvid) set(cuda_link_libs ${cuda_link_libs} ${CUDA_nvcuvid_LIBRARY}) - endif() - if(WIN32) - unset(CUDA_nvcuvenc_LIBRARY CACHE) find_cuda_helper_libs(nvcuvenc) set(cuda_link_libs ${cuda_link_libs} ${CUDA_nvcuvenc_LIBRARY}) endif() - - if(NOT APPLE AND WITH_FFMPEG) - set(cuda_link_libs ${cuda_link_libs} ${HIGHGUI_LIBRARIES}) - endif() else() set(lib_cuda "") set(cuda_objs "") diff --git a/modules/gpu/perf/perf_video.cpp b/modules/gpu/perf/perf_video.cpp index 5a598ebe57..edbe2aacd6 100644 --- a/modules/gpu/perf/perf_video.cpp +++ b/modules/gpu/perf/perf_video.cpp @@ -996,10 +996,12 @@ PERF_TEST_P(Video_Cn_MaxFeatures, DISABLED_Video_GMG, } } +#ifdef WIN32 + ////////////////////////////////////////////////////// // VideoWriter -PERF_TEST_P(Video, DISABLED_Video_VideoWriter, Values("gpu/video/768x576.avi", "gpu/video/1920x1080.avi")) +PERF_TEST_P(Video, Video_VideoWriter, Values("gpu/video/768x576.avi", "gpu/video/1920x1080.avi")) { declare.time(30); @@ -1096,4 +1098,6 @@ PERF_TEST_P(Video, Video_VideoReader, Values("gpu/video/768x576.avi", "gpu/video } } +#endif + } // namespace diff --git a/modules/gpu/src/cuvid_video_source.cpp b/modules/gpu/src/cuvid_video_source.cpp index 5c46913539..0700ba4cde 100644 --- a/modules/gpu/src/cuvid_video_source.cpp +++ b/modules/gpu/src/cuvid_video_source.cpp @@ -1,7 +1,7 @@ #include "cuvid_video_source.h" #include "cu_safe_call.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) cv::gpu::detail::CuvidVideoSource::CuvidVideoSource(const std::string& fname) { diff --git a/modules/gpu/src/cuvid_video_source.h b/modules/gpu/src/cuvid_video_source.h index a06353fedd..b9c522cae9 100644 --- a/modules/gpu/src/cuvid_video_source.h +++ b/modules/gpu/src/cuvid_video_source.h @@ -45,7 +45,7 @@ #include "precomp.hpp" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) namespace cv { namespace gpu { diff --git a/modules/gpu/src/ffmpeg_video_source.cpp b/modules/gpu/src/ffmpeg_video_source.cpp index 7538de601d..fe97715543 100644 --- a/modules/gpu/src/ffmpeg_video_source.cpp +++ b/modules/gpu/src/ffmpeg_video_source.cpp @@ -42,7 +42,7 @@ #include "ffmpeg_video_source.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) #if defined(HAVE_FFMPEG) && defined(BUILD_SHARED_LIBS) #include "cap_ffmpeg_impl.hpp" diff --git a/modules/gpu/src/ffmpeg_video_source.h b/modules/gpu/src/ffmpeg_video_source.h index 66bb7c71ca..9ec5559c50 100644 --- a/modules/gpu/src/ffmpeg_video_source.h +++ b/modules/gpu/src/ffmpeg_video_source.h @@ -46,7 +46,7 @@ #include "precomp.hpp" #include "thread_wrappers.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) struct InputMediaStream_FFMPEG; diff --git a/modules/gpu/src/frame_queue.cpp b/modules/gpu/src/frame_queue.cpp index 4ed6d0f147..5f0659c7bf 100644 --- a/modules/gpu/src/frame_queue.cpp +++ b/modules/gpu/src/frame_queue.cpp @@ -42,7 +42,7 @@ #include "frame_queue.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) cv::gpu::detail::FrameQueue::FrameQueue() : endOfDecode_(0), diff --git a/modules/gpu/src/frame_queue.h b/modules/gpu/src/frame_queue.h index 5c049a28e5..dc3da73364 100644 --- a/modules/gpu/src/frame_queue.h +++ b/modules/gpu/src/frame_queue.h @@ -46,7 +46,7 @@ #include "precomp.hpp" #include "thread_wrappers.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) namespace cv { namespace gpu { diff --git a/modules/gpu/src/precomp.hpp b/modules/gpu/src/precomp.hpp index c37332ae45..9310e69f1c 100644 --- a/modules/gpu/src/precomp.hpp +++ b/modules/gpu/src/precomp.hpp @@ -97,11 +97,8 @@ #include #endif - #ifndef __APPLE__ - #include - #endif - #ifdef WIN32 + #include #include #endif diff --git a/modules/gpu/src/thread_wrappers.cpp b/modules/gpu/src/thread_wrappers.cpp index fcfa59827e..e88b792430 100644 --- a/modules/gpu/src/thread_wrappers.cpp +++ b/modules/gpu/src/thread_wrappers.cpp @@ -42,7 +42,7 @@ #include "thread_wrappers.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) #ifdef WIN32 #define NOMINMAX diff --git a/modules/gpu/src/thread_wrappers.h b/modules/gpu/src/thread_wrappers.h index 9198d3e906..6d6e87c5e9 100644 --- a/modules/gpu/src/thread_wrappers.h +++ b/modules/gpu/src/thread_wrappers.h @@ -45,7 +45,7 @@ #include "precomp.hpp" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) namespace cv { namespace gpu { diff --git a/modules/gpu/src/video_decoder.cpp b/modules/gpu/src/video_decoder.cpp index 41e1d26078..bba28af86e 100644 --- a/modules/gpu/src/video_decoder.cpp +++ b/modules/gpu/src/video_decoder.cpp @@ -43,7 +43,7 @@ #include "video_decoder.h" #include "frame_queue.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) void cv::gpu::detail::VideoDecoder::create(const VideoReader_GPU::FormatInfo& videoFormat) { diff --git a/modules/gpu/src/video_decoder.h b/modules/gpu/src/video_decoder.h index 9c4dfa9294..0b638a0c69 100644 --- a/modules/gpu/src/video_decoder.h +++ b/modules/gpu/src/video_decoder.h @@ -46,7 +46,7 @@ #include "precomp.hpp" #include "cu_safe_call.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) namespace cv { namespace gpu { diff --git a/modules/gpu/src/video_parser.cpp b/modules/gpu/src/video_parser.cpp index 2ff14bd75a..78f1efe82c 100644 --- a/modules/gpu/src/video_parser.cpp +++ b/modules/gpu/src/video_parser.cpp @@ -43,7 +43,7 @@ #include "video_parser.h" #include "cu_safe_call.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) cv::gpu::detail::VideoParser::VideoParser(VideoDecoder* videoDecoder, FrameQueue* frameQueue) : videoDecoder_(videoDecoder), frameQueue_(frameQueue), unparsedPackets_(0), hasError_(false) diff --git a/modules/gpu/src/video_parser.h b/modules/gpu/src/video_parser.h index 3935ffcefe..c3c2d1c618 100644 --- a/modules/gpu/src/video_parser.h +++ b/modules/gpu/src/video_parser.h @@ -48,7 +48,7 @@ #include "frame_queue.h" #include "video_decoder.h" -#if defined(HAVE_CUDA) && !defined(__APPLE__) +#if defined(HAVE_CUDA) && defined(WIN32) namespace cv { namespace gpu { diff --git a/modules/gpu/src/video_reader.cpp b/modules/gpu/src/video_reader.cpp index df3c2ff2f0..d9294d861d 100644 --- a/modules/gpu/src/video_reader.cpp +++ b/modules/gpu/src/video_reader.cpp @@ -42,7 +42,7 @@ #include "precomp.hpp" -#if !defined HAVE_CUDA || defined(CUDA_DISABLER) || defined(__APPLE__) +#if !defined HAVE_CUDA || defined(CUDA_DISABLER) || !defined(WIN32) class cv::gpu::VideoReader_GPU::Impl { diff --git a/modules/gpu/test/test_video.cpp b/modules/gpu/test/test_video.cpp index 510d8e7448..a4b98bb3d2 100644 --- a/modules/gpu/test/test_video.cpp +++ b/modules/gpu/test/test_video.cpp @@ -868,11 +868,11 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, GMG, testing::Combine( testing::Values(Channels(1), Channels(3), Channels(4)), WHOLE_SUBMAT)); +#ifdef WIN32 + ////////////////////////////////////////////////////// // VideoWriter -#ifdef WIN32 - PARAM_TEST_CASE(VideoWriter, cv::gpu::DeviceInfo, std::string) { cv::gpu::DeviceInfo devInfo; @@ -934,8 +934,6 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, VideoWriter, testing::Combine( ALL_DEVICES, testing::Values(std::string("768x576.avi"), std::string("1920x1080.avi")))); -#endif // WIN32 - ////////////////////////////////////////////////////// // VideoReader @@ -976,4 +974,6 @@ INSTANTIATE_TEST_CASE_P(GPU_Video, VideoReader, testing::Combine( ALL_DEVICES, testing::Values(std::string("768x576.avi"), std::string("1920x1080.avi")))); +#endif // WIN32 + #endif // HAVE_CUDA