fixed some compilation under ubuntu
authorAnatoly Baksheev <no@email>
Fri, 4 Feb 2011 18:29:05 +0000 (18:29 +0000)
committerAnatoly Baksheev <no@email>
Fri, 4 Feb 2011 18:29:05 +0000 (18:29 +0000)
modules/gpu/CMakeLists.txt
modules/gpu/src/nvidia/NCVHaarObjectDetection.cu
modules/gpu/src/nvidia/NPP_staging/NPP_staging.cu
modules/gpu/src/nvidia/core/NCV.cpp
modules/gpu/src/nvidia/core/NCVRuntimeTemplates.hpp
modules/gpu/src/precomp.hpp
samples/gpu/cascadeclassifier_nvidia_api.cpp
tests/gpu/src/nvidia/TestHaarCascadeApplication.cpp
tests/gpu/src/nvidia/main_nvidia.cpp

index e99cbc7..1babeb1 100644 (file)
@@ -35,51 +35,59 @@ source_group("Include" FILES ${lib_hdrs})
 file(GLOB lib_device_hdrs "src/opencv2/gpu/device/*.h*")
 source_group("Device" FILES ${lib_device_hdrs})
 
-if (HAVE_CUDA AND MSVC)
+if (HAVE_CUDA)
     file(GLOB_RECURSE ncv_srcs "src/nvidia/*.cpp")     
-       file(GLOB_RECURSE ncv_cuda "src/nvidia/*.cu")   
-       file(GLOB_RECURSE ncv_hdr1 "src/nvidia/*.hpp")  
-       file(GLOB_RECURSE ncv_hdr2 "src/nvidia/*.h")    
-       source_group("Src\\NVidia" FILES ${ncv_srcs} ${ncv_hdr1} ${ncv_hdr2} ${ncv_cuda})       
-       include_directories("src/nvidia/core" "src/nvidia/NPP_staging")
+    file(GLOB_RECURSE ncv_cuda "src/nvidia/*.cu")
+    file(GLOB_RECURSE ncv_hdr1 "src/nvidia/*.hpp")
+    file(GLOB_RECURSE ncv_hdr2 "src/nvidia/*.h")
+
+    if (NOT MSVS)
+        file(GLOB vvv "src/nvidia/*.cu")
+        list(GET vvv 0 vv)
+        list(REMOVE_ITEM ncv_cuda ${vv})
+    endif()
+    message(STATUS ${ncv_cuda})
+
+    source_group("Src\\NVidia" FILES ${ncv_srcs} ${ncv_hdr1} ${ncv_hdr2} ${ncv_cuda})
+    include_directories("src/nvidia/core" "src/nvidia/NPP_staging")
 endif()
 
 if (HAVE_CUDA)         
-       get_filename_component(_path_to_findnpp "${CMAKE_CURRENT_LIST_FILE}" PATH)
-       set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${_path_to_findnpp}) 
-       find_package(NPP 3.2.16 REQUIRED)
-       message(STATUS "NPP detected: " ${NPP_VERSION})
+    get_filename_component(_path_to_findnpp "${CMAKE_CURRENT_LIST_FILE}" PATH)
+    set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${_path_to_findnpp})
+    find_package(NPP 3.2.16 REQUIRED)
+    message(STATUS "NPP detected: " ${NPP_VERSION})
        
-       include_directories(${CUDA_INCLUDE_DIRS} ${CUDA_NPP_INCLUDES})  
-       
-       if (UNIX OR APPLE)
-               set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}  "-Xcompiler;-fPIC;")
-               #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" "-fPIC")
-       endif()
-
-       #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-keep")
-       #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;/EHsc-;")
-
-       string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-       string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
-       string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
-
-       if(MSVC)
-               #string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-               #string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
-               #string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
-               set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4211 /wd4201 /wd4100 /wd4505 /wd4408")
-
-               string(REPLACE "/EHsc-" "/EHs" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-               string(REPLACE "/EHsc-" "/EHs" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
-               string(REPLACE "/EHsc-" "/EHs" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
-               string(REPLACE "/EHsc-" "/EHs" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-               string(REPLACE "/EHsc-" "/EHs" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
-               string(REPLACE "/EHsc-" "/EHs" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
-       endif()     
+    include_directories(${CUDA_INCLUDE_DIRS} ${CUDA_NPP_INCLUDES})
+
+    if (UNIX OR APPLE)
+        set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}  "-Xcompiler;-fPIC;")
+        #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" "-fPIC")
+    endif()
+
+    #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-keep")
+    #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;/EHsc-;")
+
+    string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+    string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
+
+    if(MSVC)
+        #string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+        #string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+        #string(REPLACE "/W4" "/W3" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4211 /wd4201 /wd4100 /wd4505 /wd4408")
+
+        string(REPLACE "/EHsc-" "/EHs" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+        string(REPLACE "/EHsc-" "/EHs" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+        string(REPLACE "/EHsc-" "/EHs" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
+        string(REPLACE "/EHsc-" "/EHs" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+        string(REPLACE "/EHsc-" "/EHs" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+        string(REPLACE "/EHsc-" "/EHs" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
+    endif()
     
-       CUDA_COMPILE(cuda_objs ${lib_cuda} ${ncv_cuda})
-       #CUDA_BUILD_CLEAN_TARGET()
+    CUDA_COMPILE(cuda_objs ${lib_cuda} ${ncv_cuda})
+    #CUDA_BUILD_CLEAN_TARGET()
 endif()
 
 add_library(${the_target} ${lib_srcs} ${lib_hdrs} ${lib_int_hdrs} ${lib_cuda} ${lib_cuda_hdrs} ${lib_device_hdrs} ${ncv_srcs} ${ncv_hdr1} ${ncv_hdr2} ${ncv_cuda} ${cuda_objs})
index 49d3267..5abb91a 100644 (file)
@@ -56,6 +56,7 @@
 ////////////////////////////////////////////////////////////////////////////////\r
 \r
 #include <algorithm>\r
+#include <cstdio>\r
 \r
 #include "NCV.hpp"\r
 #include "NPP_staging/NPP_staging.hpp"\r
@@ -2396,11 +2397,10 @@ static NCVStatus loadFromNVBIN(const std::string &filename,
     FILE *fp = fopen(filename.c_str(), "rb");\r
     ncvAssertReturn(fp != NULL, NCV_FILE_ERROR);\r
     Ncv32u fileVersion;\r
-    fread(&fileVersion, sizeof(Ncv32u), 1, fp);        \r
-\r
+    ncvAssertReturn(1 == fread(&fileVersion, sizeof(Ncv32u), 1, fp), NCV_FILE_ERROR);\r
     ncvAssertReturn(fileVersion == NVBIN_HAAR_VERSION, NCV_FILE_ERROR);\r
     Ncv32u fsize;\r
-    fread_s(&fsize, sizeof(Ncv32u), sizeof(Ncv32u), 1, fp);\r
+    ncvAssertReturn(1 == fread(&fsize, sizeof(Ncv32u), 1, fp), NCV_FILE_ERROR);\r
     fseek(fp, 0, SEEK_END);\r
     Ncv32u fsizeActual = ftell(fp);\r
     ncvAssertReturn(fsize == fsizeActual, NCV_FILE_ERROR);\r
@@ -2409,7 +2409,7 @@ static NCVStatus loadFromNVBIN(const std::string &filename,
     fdata.resize(fsize);\r
     Ncv32u dataOffset = 0;\r
     fseek(fp, 0, SEEK_SET);\r
-    fread(&fdata[0], fsize, 1, fp);\r
+    ncvAssertReturn(1 == fread(&fdata[0], fsize, 1, fp), NCV_FILE_ERROR);\r
     fclose(fp);\r
 \r
     //data\r
@@ -2458,18 +2458,17 @@ NCVStatus ncvHaarGetClassifierSize(const std::string &filename, Ncv32u &numStage
 \r
     if (fext == "nvbin")\r
     {\r
-        FILE *fp;\r
-        fopen_s(&fp, filename.c_str(), "rb");\r
+        FILE *fp = fopen(filename.c_str(), "rb");\r
         ncvAssertReturn(fp != NULL, NCV_FILE_ERROR);\r
         Ncv32u fileVersion;\r
-        fread_s(&fileVersion, sizeof(Ncv32u), sizeof(Ncv32u), 1, fp);\r
+        ncvAssertReturn(1 == fread(&fileVersion, sizeof(Ncv32u), 1, fp), NCV_FILE_ERROR);\r
         ncvAssertReturn(fileVersion == NVBIN_HAAR_VERSION, NCV_FILE_ERROR);\r
         fseek(fp, NVBIN_HAAR_SIZERESERVED, SEEK_SET);\r
         Ncv32u tmp;\r
-        fread_s(&numStages, sizeof(Ncv32u), sizeof(Ncv32u), 1, fp);\r
-        fread_s(&tmp, sizeof(Ncv32u), sizeof(Ncv32u), 1, fp);\r
-        fread_s(&numNodes, sizeof(Ncv32u), sizeof(Ncv32u), 1, fp);\r
-        fread_s(&numFeatures, sizeof(Ncv32u), sizeof(Ncv32u), 1, fp);\r
+        ncvAssertReturn(1 == fread(&numStages,   sizeof(Ncv32u), 1, fp), NCV_FILE_ERROR);\r
+        ncvAssertReturn(1 == fread(&tmp,         sizeof(Ncv32u), 1, fp), NCV_FILE_ERROR);\r
+        ncvAssertReturn(1 == fread(&numNodes,    sizeof(Ncv32u), 1, fp), NCV_FILE_ERROR);\r
+        ncvAssertReturn(1 == fread(&numFeatures, sizeof(Ncv32u), 1, fp), NCV_FILE_ERROR);\r
         fclose(fp);\r
     }\r
     else if (fext == "xml")\r
@@ -2596,8 +2595,7 @@ NCVStatus ncvHaarStoreNVBIN_host(const std::string &filename,
     dataOffset = sizeof(Ncv32u);\r
     *(Ncv32u *)(&fdata[0]+dataOffset) = fsize;\r
 \r
-    FILE *fp;\r
-    fopen_s(&fp, filename.c_str(), "wb");\r
+    FILE *fp = fopen(filename.c_str(), "wb");\r
     ncvAssertReturn(fp != NULL, NCV_FILE_ERROR);\r
     fwrite(&fdata[0], fsize, 1, fp);\r
     fclose(fp);\r
index 66f9dcd..2379587 100644 (file)
@@ -161,20 +161,32 @@ const Ncv32u NUM_SCAN_THREADS = 256;
 const Ncv32u LOG2_NUM_SCAN_THREADS = 8;\r
 \r
 \r
+struct T_true {};\r
+struct T_false {};\r
+template <typename T, typename U> struct is_same : T_false {};\r
+template <typename T> struct is_same<T, T> : T_true {};\r
+\r
+template <int v>\r
+struct Int2Type\r
+{\r
+    enum { value = v };\r
+};\r
+\r
+\r
 template<class T_in, class T_out>\r
 struct _scanElemOp\r
 {\r
     template<bool tbDoSqr>\r
-    static inline __host__ __device__ T_out scanElemOp(T_in elem);\r
-\r
-    template<>\r
-    static inline __host__ __device__ T_out scanElemOp<false>(T_in elem)\r
+    static inline __host__ __device__ T_out scanElemOp(T_in elem)\r
+    {\r
+        return scanElemOp_( elem, Int2Type<(int)tbDoSqr>() );\r
+    }\r
+private:\r
+    static inline __host__ __device__ T_out scanElemOp_(T_in elem,const Int2Type<0>&)\r
     {\r
         return (T_out)elem;\r
     }\r
-\r
-    template<>\r
-    static inline __host__ __device__ T_out scanElemOp<true>(T_in elem)\r
+    static inline __host__ __device__ T_out scanElemOp_(T_in elem, const Int2Type<1>&)\r
     {\r
         return (T_out)(elem*elem);\r
     }\r
index c276cff..cfccb09 100644 (file)
@@ -73,7 +73,7 @@ void ncvDebugOutput(const char *msg, ...)
     char buffer[K_DEBUG_STRING_MAXLEN];\r
     va_list args;\r
     va_start(args, msg);\r
-    vsnprintf_s(buffer, K_DEBUG_STRING_MAXLEN, K_DEBUG_STRING_MAXLEN-1, msg, args);\r
+    vsnprintf(buffer, K_DEBUG_STRING_MAXLEN, msg, args);\r
     va_end (args);\r
     debugOutputHandler(buffer);\r
 }\r
@@ -531,6 +531,10 @@ typedef struct _NcvTimeMoment NcvTimeMoment;
         return (((double)t2->tv.tv_sec - (double)t1->tv.tv_sec) * 1000000 + (double)t2->tv.tv_usec - (double)t1->tv.tv_usec);\r
     }\r
 \r
+    double _ncvMomentsDiffToMilliseconds(NcvTimeMoment *t1, NcvTimeMoment *t2)\r
+    {\r
+        return ((double)t2->tv.tv_sec - (double)t1->tv.tv_sec) * 1000;\r
+    }\r
 \r
 #endif //#if defined(_WIN32) || defined(_WIN64)\r
 \r
@@ -569,4 +573,4 @@ double ncvEndQueryTimerMs(NcvTimer t)
     return res;\r
 }\r
 \r
-#endif /* !defined (HAVE_CUDA) */
\ No newline at end of file
+#endif /* !defined (HAVE_CUDA) */\r
index 3d3f94f..ea29e66 100644 (file)
@@ -146,10 +146,10 @@ namespace NCVRuntimeTemplateBool
     {\r
         //Convenience function used by the user\r
         //Takes a variable argument list, transforms it into a list\r
-        static void call(Func &functor, int dummy, ...)\r
+        static void call(Func &functor, Ncv32u dummy, ...)\r
         {\r
             //Vector used to collect arguments\r
-            std::vector<int> templateParamList;\r
+            std::vector<NcvBool> templateParamList;\r
 \r
             //Variable argument list manipulation\r
             va_list listPointer;\r
@@ -157,7 +157,7 @@ namespace NCVRuntimeTemplateBool
             //Collect parameters into the list\r
             for(int i=0; i<NumArguments; i++)\r
             {\r
-                int val = va_arg(listPointer, int);\r
+                NcvBool val = va_arg(listPointer, NcvBool);\r
                 templateParamList.push_back(val);\r
             }\r
             va_end(listPointer);\r
@@ -168,26 +168,26 @@ namespace NCVRuntimeTemplateBool
 \r
         //Actual function called recursively to build a typelist based\r
         //on a list of values\r
-        static void call( Func &functor, std::vector<int> &templateParamList)\r
+        static void call( Func &functor, std::vector<NcvBool> &templateParamList)\r
         {\r
             //Get current parameter value in the list\r
-            int val = templateParamList[templateParamList.size() - 1];\r
+            NcvBool val = templateParamList[templateParamList.size() - 1];\r
             templateParamList.pop_back();\r
 \r
             //Select the compile time value to add into the typelist\r
-            //depending on the runtime variable and make recursive call. \r
+            //depending on the runtime variable and make recursive call.\r
             //Both versions are really instantiated\r
-            if(val)\r
+            if (val)\r
             {\r
                 KernelCaller<\r
-                    Loki::Typelist<typename Loki::Int2Type<true>, TList >,\r
+                    Loki::Typelist<typename Loki::Int2Type<1>, TList >,\r
                     NumArguments-1, Func >\r
                     ::call(functor, templateParamList);\r
             }\r
             else\r
             {\r
-                KernelCaller< \r
-                    Loki::Typelist<typename Loki::Int2Type<false>, TList >,\r
+                KernelCaller<\r
+                    Loki::Typelist<typename Loki::Int2Type<0>, TList >,\r
                     NumArguments-1, Func >\r
                     ::call(functor, templateParamList);\r
             }\r
@@ -205,7 +205,7 @@ namespace NCVRuntimeTemplateBool
             functor.call(TList()); //TList instantiated to get the method template parameter resolved\r
         }\r
 \r
-        static void call(Func &functor, std::vector<int> &templateParams)\r
+        static void call(Func &functor, std::vector<NcvBool> &templateParams)\r
         {\r
             functor.call(TList());\r
         }\r
index ca07311..e86c1a9 100644 (file)
@@ -70,9 +70,9 @@
     #include "opencv2/gpu/stream_accessor.hpp"\r
     #include "npp.h"    \r
     \r
-       #include "nvidia/core/NCV.hpp"\r
-       #include "nvidia/NPP_staging/npp_staging.hpp"\r
-       #include "nvidia/NCVHaarObjectDetection.hpp"\r
+    #include "nvidia/core/NCV.hpp"\r
+    #include "nvidia/NPP_staging/NPP_staging.hpp"\r
+    #include "nvidia/NCVHaarObjectDetection.hpp"\r
 \r
 #define CUDART_MINIMUM_REQUIRED_VERSION 3020\r
 #define NPP_MINIMUM_REQUIRED_VERSION 3216\r
index ff99f2c..0f2aec9 100644 (file)
@@ -2,20 +2,16 @@
 #include <cstdio>\r
 \r
 #include "cvconfig.h"\r
-#if !defined(HAVE_CUDA)\r
-       int main( int argc, const char** argv ) { return printf("Please compile the librarary with CUDA support."), -1; }\r
+#if !defined(HAVE_CUDA) || defined(__GNUC__)\r
+    int main( int argc, const char** argv ) { return printf("Please compile the librarary with CUDA support."), -1; }\r
 #else\r
 \r
-\r
 #include <cuda_runtime.h>\r
 #include "opencv2/opencv.hpp"\r
 #include "NCVHaarObjectDetection.hpp"\r
 \r
-\r
-\r
 using namespace cv;\r
 \r
-\r
 const Size2i preferredVideoFrameSize(640, 480);\r
 \r
 std::string preferredClassifier = "haarcascade_frontalface_alt.xml";\r
@@ -37,10 +33,9 @@ void imagePrintf(Mat& img, int lineOffsY, Scalar color, const char *format, ...)
 \r
     va_list arg_ptr;\r
     va_start(arg_ptr, format);\r
-    int len = _vscprintf(format, arg_ptr) + 1;\r
-    \r
-    vector<char> strBuf(len);    \r
-    vsprintf_s(&strBuf[0], len, format, arg_ptr);\r
+\r
+    char strBuf[4096];\r
+    vsprintf(&strBuf[0], format, arg_ptr);\r
 \r
     Point org(1, 3 * textSize.height * (lineOffsY + 1) / 2);    \r
     putText(img, &strBuf[0], org, fontFace, fontScale, color);\r
@@ -357,4 +352,4 @@ int main( int argc, const char** argv )
 }\r
 \r
 \r
-#endif
\ No newline at end of file
+#endif\r
index e3a13fc..674291c 100644 (file)
  */\r
 \r
 #include <float.h>\r
+\r
+#if defined(__GNUC__)\r
+    #include <fpu_control.h>\r
+#endif\r
+\r
 #include "TestHaarCascadeApplication.h"\r
 #include "NCVHaarObjectDetection.hpp"\r
 \r
@@ -195,6 +200,24 @@ bool TestHaarCascadeApplication::process()
     }\r
     ncvAssertReturn(cudaSuccess == cudaStreamSynchronize(0), false);\r
 \r
+#if defined(__GNUC__)\r
+    //http://www.christian-seiler.de/projekte/fpmath/\r
+\r
+    fpu_control_t fpu_oldcw, fpu_cw;\r
+    _FPU_GETCW(fpu_oldcw); // store old cw\r
+     fpu_cw = (fpu_oldcw & ~_FPU_EXTENDED & ~_FPU_DOUBLE & ~_FPU_SINGLE) | _FPU_SINGLE;\r
+    _FPU_SETCW(fpu_cw);\r
+\r
+    // calculations here\r
+    ncvStat = ncvApplyHaarClassifierCascade_host(\r
+        h_integralImage, h_rectStdDev, h_pixelMask,\r
+        detectionsOnThisScale_h,\r
+        haar, h_HaarStages, h_HaarNodes, h_HaarFeatures, false,\r
+        searchRoiU, 1, 1.0f);\r
+    ncvAssertReturn(ncvStat == NCV_SUCCESS, false);\r
+\r
+    _FPU_SETCW(fpu_oldcw); // restore old cw\r
+#else\r
     Ncv32u fpu_oldcw, fpu_cw;\r
     _controlfp_s(&fpu_cw, 0, 0);\r
     fpu_oldcw = fpu_cw;\r
@@ -206,7 +229,7 @@ bool TestHaarCascadeApplication::process()
         searchRoiU, 1, 1.0f);\r
     ncvAssertReturn(ncvStat == NCV_SUCCESS, false);\r
     _controlfp_s(&fpu_cw, fpu_oldcw, _MCW_PC);\r
-\r
+#endif\r
     NCV_SKIP_COND_END\r
 \r
     int devId;\r
index e4f2119..facddbc 100644 (file)
@@ -30,14 +30,14 @@ void generateIntegralTests(NCVAutoTestLister &testLister, NCVTestSourceProvider<
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "LinIntImgW%dH%d", i, 2);\r
+        sprintf(testName, "LinIntImgW%dH%d", i, 2);\r
         testLister.add(new TestIntegralImage<T_in, T_out>(testName, src, i, 2));\r
     }\r
     for (Ncv32f _i=1.0; _i<maxHeight; _i*=1.2f)\r
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "LinIntImgW%dH%d", 2, i);\r
+        sprintf(testName, "LinIntImgW%dH%d", 2, i);\r
         testLister.add(new TestIntegralImage<T_in, T_out>(testName, src, 2, i));\r
     }\r
 \r
@@ -55,14 +55,14 @@ void generateSquaredIntegralTests(NCVAutoTestLister &testLister, NCVTestSourcePr
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "SqIntImgW%dH%d", i, 32);\r
+        sprintf(testName, "SqIntImgW%dH%d", i, 32);\r
         testLister.add(new TestIntegralImageSquared(testName, src, i, 32));\r
     }\r
     for (Ncv32f _i=1.0; _i<maxHeight; _i*=1.2f)\r
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "SqIntImgW%dH%d", 32, i);\r
+        sprintf(testName, "SqIntImgW%dH%d", 32, i);\r
         testLister.add(new TestIntegralImageSquared(testName, src, 32, i));\r
     }\r
 \r
@@ -82,7 +82,7 @@ void generateRectStdDevTests(NCVAutoTestLister &testLister, NCVTestSourceProvide
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "RectStdDevW%dH%d", i*2, i);\r
+        sprintf(testName, "RectStdDevW%dH%d", i*2, i);\r
         testLister.add(new TestRectStdDev(testName, src, i*2, i, rect, 1, true));\r
         testLister.add(new TestRectStdDev(testName, src, i*2, i, rect, 1.5, false));\r
         testLister.add(new TestRectStdDev(testName, src, i-1, i*2-1, rect, 1, false));\r
@@ -103,7 +103,7 @@ void generateResizeTests(NCVAutoTestLister &testLister, NCVTestSourceProvider<T>
     for (Ncv32u i=1; i<480; i+=3)\r
     {\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "TestResize_VGA_s%d", i);\r
+        sprintf(testName, "TestResize_VGA_s%d", i);\r
         testLister.add(new TestResize<T>(testName, src, 640, 480, i, true));\r
         testLister.add(new TestResize<T>(testName, src, 640, 480, i, false));\r
     }\r
@@ -112,7 +112,7 @@ void generateResizeTests(NCVAutoTestLister &testLister, NCVTestSourceProvider<T>
     for (Ncv32u i=1; i<1080; i+=5)\r
     {\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "TestResize_1080_s%d", i);\r
+        sprintf(testName, "TestResize_1080_s%d", i);\r
         testLister.add(new TestResize<T>(testName, src, 1920, 1080, i, true));\r
         testLister.add(new TestResize<T>(testName, src, 1920, 1080, i, false));\r
     }\r
@@ -128,13 +128,13 @@ void generateNPPSTVectorTests(NCVAutoTestLister &testLister, NCVTestSourceProvid
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "Compaction%d", i);\r
+        sprintf(testName, "Compaction%d", i);\r
         testLister.add(new TestCompact(testName, src, i, 0xFFFFFFFF, 30));\r
     }\r
     for (Ncv32u i=1; i<260; i++)\r
     {\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "Compaction%d", i);\r
+        sprintf(testName, "Compaction%d", i);\r
         testLister.add(new TestCompact(testName, src, i, 0xC001C0DE, 70));\r
         testLister.add(new TestCompact(testName, src, i, 0xC001C0DE, 0));\r
         testLister.add(new TestCompact(testName, src, i, 0xC001C0DE, 100));\r
@@ -142,13 +142,13 @@ void generateNPPSTVectorTests(NCVAutoTestLister &testLister, NCVTestSourceProvid
     for (Ncv32u i=256*256-256; i<256*256+257; i++)\r
     {\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "Compaction%d", i);\r
+        sprintf(testName, "Compaction%d", i);\r
         testLister.add(new TestCompact(testName, src, i, 0xFFFFFFFF, 40));\r
     }\r
     for (Ncv32u i=256*256*256-10; i<256*256*256+10; i++)\r
     {\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "Compaction%d", i);\r
+        sprintf(testName, "Compaction%d", i);\r
         testLister.add(new TestCompact(testName, src, i, 0x00000000, 2));\r
     }\r
 }\r
@@ -162,7 +162,7 @@ void generateTransposeTests(NCVAutoTestLister &testLister, NCVTestSourceProvider
         for (int j=2; j<64; j+=4)\r
         {\r
             char testName[80];\r
-            sprintf_s(testName, sizeof(testName), "TestTranspose_%dx%d", i, j);\r
+            sprintf(testName, "TestTranspose_%dx%d", i, j);\r
             testLister.add(new TestTranspose<T>(testName, src, i, j));\r
         }\r
     }\r
@@ -172,7 +172,7 @@ void generateTransposeTests(NCVAutoTestLister &testLister, NCVTestSourceProvider
         for (int j=1; j<2; j+=1)\r
         {\r
             char testName[80];\r
-            sprintf_s(testName, sizeof(testName), "TestTranspose_%dx%d", i, j);\r
+            sprintf(testName, "TestTranspose_%dx%d", i, j);\r
             testLister.add(new TestTranspose<T>(testName, src, i, j));\r
         }\r
     }\r
@@ -192,7 +192,7 @@ void generateDrawRectsTests(NCVAutoTestLister &testLister, NCVTestSourceProvider
         Ncv32u j = maxHeight * i / maxWidth;\r
         if (!j) continue;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "DrawRectsW%dH%d", i, j);\r
+        sprintf(testName, "DrawRectsW%dH%d", i, j);\r
 \r
         if (sizeof(T) == sizeof(Ncv32u))\r
         {\r
@@ -222,7 +222,7 @@ void generateVectorTests(NCVAutoTestLister &testLister, NCVTestSourceProvider<Nc
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "VectorGrow%d", i);\r
+        sprintf(testName, "VectorGrow%d", i);\r
         testLister.add(new TestHypothesesGrow(testName, src, 20, 20, 2.2f, i, i/2, i, i/4));\r
         testLister.add(new TestHypothesesGrow(testName, src, 10, 42, 1.2f, i, i, i, 0));\r
     }\r
@@ -239,7 +239,7 @@ void generateHypothesesFiltrationTests(NCVAutoTestLister &testLister, NCVTestSou
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "HypFilter%d", i);\r
+        sprintf(testName, "HypFilter%d", i);\r
         testLister.add(new TestHypothesesFilter(testName, src, i, 3, 0.2f));\r
         testLister.add(new TestHypothesesFilter(testName, src, i, 0, 0.2f));\r
         testLister.add(new TestHypothesesFilter(testName, src, i, 1, 0.1f));\r
@@ -265,7 +265,7 @@ void generateHaarApplicationTests(NCVAutoTestLister &testLister, NCVTestSourcePr
         for (Ncv32u j=20; j<128; j+=5)\r
         {\r
             char testName[80];\r
-            sprintf_s(testName, sizeof(testName), "HaarAppl%d_%d", i, j);\r
+            sprintf(testName, "HaarAppl%d_%d", i, j);\r
             testLister.add(new TestHaarCascadeApplication(testName, src, "haarcascade_frontalface_alt.xml", j, i));\r
         }\r
     }\r
@@ -273,7 +273,7 @@ void generateHaarApplicationTests(NCVAutoTestLister &testLister, NCVTestSourcePr
     {\r
         Ncv32u i = (Ncv32u)_i;\r
         char testName[80];\r
-        sprintf_s(testName, sizeof(testName), "HaarAppl%d", i);\r
+        sprintf(testName, "HaarAppl%d", i);\r
         testLister.add(new TestHaarCascadeApplication(testName, src, "haarcascade_frontalface_alt.xml", i, i));\r
     }\r
 }\r