diff --git a/modules/gpu/src/nvidia/NCVBroxOpticalFlow.cu b/modules/gpu/src/nvidia/NCVBroxOpticalFlow.cu index 6639609320..06d88ea010 100644 --- a/modules/gpu/src/nvidia/NCVBroxOpticalFlow.cu +++ b/modules/gpu/src/nvidia/NCVBroxOpticalFlow.cu @@ -62,7 +62,7 @@ #include "NPP_staging/NPP_staging.hpp" #include "NCVBroxOpticalFlow.hpp" - +#include "opencv2/gpu/device/utility.hpp" //////////////////////////////////////////// @@ -131,6 +131,7 @@ template inline shared_ptr<_Tp>& shared_ptr<_Tp>::operator = (cons return *this; } + //////////////////////////////////////////// //using std::tr1::shared_ptr; @@ -1181,8 +1182,8 @@ NCVStatus NCVBroxOpticalFlow(const NCVBroxOpticalFlowDescriptor desc, ScaleVector(ptrVNew->ptr(), ptrVNew->ptr(), 1.0f/scale_factor, ns * nh, stream); } - std::swap(ptrU, ptrUNew); - std::swap(ptrV, ptrVNew); + cv::gpu::device::swap(ptrU, ptrUNew); + cv::gpu::device::swap(ptrV, ptrVNew); } scale /= scale_factor; } diff --git a/modules/gpu/src/opencv2/gpu/device/utility.hpp b/modules/gpu/src/opencv2/gpu/device/utility.hpp index 031fd7fa29..990158e637 100644 --- a/modules/gpu/src/opencv2/gpu/device/utility.hpp +++ b/modules/gpu/src/opencv2/gpu/device/utility.hpp @@ -58,7 +58,7 @@ namespace cv { namespace gpu { namespace device /////////////////////////////////////////////////////////////////////////////// // swap - template void __device__ __forceinline__ swap(T& a, T& b) + template void __device__ __host__ __forceinline__ swap(T& a, T& b) { const T temp = a; a = b;