From ed8368fed78944896be71c93fd4817b2eef7b26b Mon Sep 17 00:00:00 2001 From: atinfinity Date: Sun, 31 Jan 2016 01:28:15 +0900 Subject: [PATCH] fixed to use NVCUVID in 'cudacodec' module. --- cmake/OpenCVDetectCUDA.cmake | 7 ++++++- modules/cudacodec/CMakeLists.txt | 2 ++ modules/cudacodec/src/precomp.hpp | 4 +++- modules/cudacodec/src/video_writer.cpp | 6 +++--- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/cmake/OpenCVDetectCUDA.cmake b/cmake/OpenCVDetectCUDA.cmake index c1cb95888d..9b52a5e8e6 100644 --- a/cmake/OpenCVDetectCUDA.cmake +++ b/cmake/OpenCVDetectCUDA.cmake @@ -33,7 +33,12 @@ if(CUDA_FOUND) if(WIN32) find_cuda_helper_libs(nvcuvenc) endif() - set(HAVE_NVCUVID 1) + if(CUDA_nvcuvid_LIBRARY) + set(HAVE_NVCUVID 1) + endif() + if(CUDA_nvcuvenc_LIBRARY) + set(HAVE_NVCUVENC 1) + endif() endif() message(STATUS "CUDA detected: " ${CUDA_VERSION}) diff --git a/modules/cudacodec/CMakeLists.txt b/modules/cudacodec/CMakeLists.txt index f2e955b6cd..6aecd26db0 100644 --- a/modules/cudacodec/CMakeLists.txt +++ b/modules/cudacodec/CMakeLists.txt @@ -15,7 +15,9 @@ set(extra_libs "") if(HAVE_NVCUVID) list(APPEND extra_libs ${CUDA_CUDA_LIBRARY} ${CUDA_nvcuvid_LIBRARY}) +endif() +if(HAVE_NVCUVENC) if(WIN32) list(APPEND extra_libs ${CUDA_nvcuvenc_LIBRARY}) endif() diff --git a/modules/cudacodec/src/precomp.hpp b/modules/cudacodec/src/precomp.hpp index 80257a0cd6..59504c2c49 100644 --- a/modules/cudacodec/src/precomp.hpp +++ b/modules/cudacodec/src/precomp.hpp @@ -61,7 +61,9 @@ #ifdef WIN32 #define NOMINMAX #include - #include + #ifdef HAVE_NVCUVENC + #include + #endif #else #include #include diff --git a/modules/cudacodec/src/video_writer.cpp b/modules/cudacodec/src/video_writer.cpp index 6faa9d3bf9..f6b9fc7380 100644 --- a/modules/cudacodec/src/video_writer.cpp +++ b/modules/cudacodec/src/video_writer.cpp @@ -47,7 +47,7 @@ using namespace cv; using namespace cv::cuda; using namespace cv::cudacodec; -#if !defined(HAVE_NVCUVID) || !defined(WIN32) +#if !defined(HAVE_NVCUVENC) || !defined(WIN32) cv::cudacodec::EncoderParams::EncoderParams() { throw_no_cuda(); } cv::cudacodec::EncoderParams::EncoderParams(const String&) { throw_no_cuda(); } @@ -60,7 +60,7 @@ Ptr cv::cudacodec::createVideoWriter(const String&, Size, double, c Ptr cv::cudacodec::createVideoWriter(const Ptr&, Size, double, SurfaceFormat) { throw_no_cuda(); return Ptr(); } Ptr cv::cudacodec::createVideoWriter(const Ptr&, Size, double, const EncoderParams&, SurfaceFormat) { throw_no_cuda(); return Ptr(); } -#else // !defined HAVE_CUDA || !defined WIN32 +#else // !defined HAVE_NVCUVENC || !defined WIN32 void RGB_to_YV12(const GpuMat& src, GpuMat& dst); @@ -913,4 +913,4 @@ Ptr cv::cudacodec::createVideoWriter(const Ptr& en return makePtr(encoderCallback, frameSize, fps, params, format); } -#endif // !defined HAVE_CUDA || !defined WIN32 +#endif // !defined HAVE_NVCUVENC || !defined WIN32