Merge pull request #10394 from alalek:cmake_fix_pch_pic_pie
authorVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Fri, 22 Dec 2017 13:26:31 +0000 (13:26 +0000)
committerVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Fri, 22 Dec 2017 13:26:32 +0000 (13:26 +0000)
14 files changed:
cmake/OpenCVCompilerOptions.cmake
modules/core/src/ocl.cpp
modules/cudalegacy/test/NCVTest.hpp
modules/features2d/src/agast.cpp
modules/features2d/src/agast_score.cpp
modules/features2d/src/fast.cpp
modules/imgcodecs/src/grfmt_jpeg.cpp
modules/imgproc/perf/perf_resize.cpp
modules/imgproc/src/canny.cpp
modules/imgproc/src/resize.cpp
modules/ts/include/opencv2/ts.hpp
modules/ts/include/opencv2/ts/ts_gtest.h
modules/videoio/src/cap_ffmpeg_impl.hpp
modules/videoio/src/cap_msmf.hpp

index 47dc705..353ee12 100644 (file)
@@ -309,9 +309,6 @@ if(MSVC)
     if(MSVC_VERSION EQUAL 1400)
       ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4510 /wd4610 /wd4312 /wd4201 /wd4244 /wd4328 /wd4267)
     endif()
-    if(MSVC_VERSION LESS 1900) # MSVS2015
-      ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127) # warning C4127: conditional expression is constant
-    endif()
   endif()
 
   # allow extern "C" functions throw exceptions
@@ -323,6 +320,7 @@ if(MSVC)
   endforeach()
 
   if(NOT ENABLE_NOISY_WARNINGS)
+    ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127) # conditional expression is constant
     ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4251) # class 'std::XXX' needs to have dll-interface to be used by clients of YYY
     ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4324) # 'struct_name' : structure was padded due to __declspec(align())
     ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4275) # non dll-interface class 'std::exception' used as base for dll-interface class 'cv::Exception'
index c6aefde..58fc0fe 100644 (file)
@@ -151,6 +151,8 @@ struct DummyImpl
 #define CV_OCL_DBG_CHECK_(expr, check_result) expr; (void)check_result
 #define CV_OCL_DBG_CHECK(expr) do { cl_int __cl_result = (expr); CV_OCL_CHECK_RESULT(__cl_result, #expr); } while (0)
 
+static const bool CV_OPENCL_DISABLE_BUFFER_RECT_OPERATIONS = false;
+
 #else // HAVE_OPENCL
 
 #ifndef _DEBUG
@@ -225,6 +227,15 @@ static const bool CV_OPENCL_CACHE_CLEANUP = utils::getConfigurationParameterBool
 static const bool CV_OPENCL_VALIDATE_BINARY_PROGRAMS_VALUE = utils::getConfigurationParameterBool("OPENCV_OPENCL_VALIDATE_BINARY_PROGRAMS", false);
 #endif
 
+// Option to disable calls clEnqueueReadBufferRect / clEnqueueWriteBufferRect / clEnqueueCopyBufferRect
+static const bool CV_OPENCL_DISABLE_BUFFER_RECT_OPERATIONS = utils::getConfigurationParameterBool("OPENCV_OPENCL_DISABLE_BUFFER_RECT_OPERATIONS",
+#ifdef __APPLE__
+        true
+#else
+        false
+#endif
+);
+
 #endif // HAVE_OPENCL
 
 struct UMat2D
@@ -5206,8 +5217,7 @@ public:
                 CV_OCL_CHECK(clEnqueueReadBuffer(q, (cl_mem)u->handle, CL_TRUE,
                     srcrawofs, total, alignedPtr.getAlignedPtr(), 0, 0, 0));
             }
-#ifdef __APPLE__
-            else
+            else if (CV_OPENCL_DISABLE_BUFFER_RECT_OPERATIONS)
             {
                 const size_t padding = CV_OPENCL_DATA_PTR_ALIGNMENT;
                 size_t new_srcrawofs = srcrawofs & ~(padding-1);
@@ -5224,7 +5234,6 @@ public:
                 for( size_t i = 0; i < new_sz[1]; i++ )
                     memcpy( (uchar*)dstptr + i*new_dststep[0], ptr + i*new_srcstep[0] + membuf_ofs, new_sz[0]);
             }
-#else
             else
             {
                 AlignedDataPtr2D<false, true> alignedPtr((uchar*)dstptr, new_sz[1], new_sz[0], new_dststep[0], CV_OPENCL_DATA_PTR_ALIGNMENT);
@@ -5236,7 +5245,6 @@ public:
                     new_dststep[0], 0,
                     ptr, 0, 0, 0));
             }
-#endif
         }
     }
 
@@ -5343,8 +5351,7 @@ public:
                 CV_OCL_CHECK(clEnqueueWriteBuffer(q, (cl_mem)u->handle, CL_TRUE,
                     dstrawofs, total, alignedPtr.getAlignedPtr(), 0, 0, 0));
             }
-#ifdef __APPLE__
-            else
+            else if (CV_OPENCL_DISABLE_BUFFER_RECT_OPERATIONS)
             {
                 const size_t padding = CV_OPENCL_DATA_PTR_ALIGNMENT;
                 size_t new_dstrawofs = dstrawofs & ~(padding-1);
@@ -5366,7 +5373,6 @@ public:
                 CV_OCL_CHECK(clEnqueueWriteBuffer(q, (cl_mem)u->handle, CL_TRUE,
                                                  new_dstrawofs, total, ptr, 0, 0, 0));
             }
-#else
             else
             {
                 AlignedDataPtr2D<true, false> alignedPtr((uchar*)srcptr, new_sz[1], new_sz[0], new_srcstep[0], CV_OPENCL_DATA_PTR_ALIGNMENT);
@@ -5378,7 +5384,6 @@ public:
                     new_srcstep[0], 0,
                     ptr, 0, 0, 0));
             }
-#endif
         }
         u->markHostCopyObsolete(true);
 #ifdef HAVE_OPENCL_SVM
@@ -5520,8 +5525,7 @@ public:
                 CV_OCL_CHECK(retval = clEnqueueCopyBuffer(q, (cl_mem)src->handle, (cl_mem)dst->handle,
                                                srcrawofs, dstrawofs, total, 0, 0, 0));
             }
-#ifdef __APPLE__
-            else
+            else if (CV_OPENCL_DISABLE_BUFFER_RECT_OPERATIONS)
             {
                 const size_t padding = CV_OPENCL_DATA_PTR_ALIGNMENT;
                 size_t new_srcrawofs = srcrawofs & ~(padding-1);
@@ -5554,7 +5558,6 @@ public:
                 CV_OCL_CHECK(clEnqueueWriteBuffer(q, (cl_mem)dst->handle, CL_TRUE,
                                                   new_dstrawofs, dst_total, dstptr, 0, 0, 0));
             }
-#else
             else
             {
                 CV_OCL_CHECK(retval = clEnqueueCopyBufferRect(q, (cl_mem)src->handle, (cl_mem)dst->handle,
@@ -5563,7 +5566,6 @@ public:
                                                    new_dststep[0], 0,
                                                    0, 0, 0));
             }
-#endif
         }
         if (retval == CL_SUCCESS)
         {
index 23b1fee..3d7bf47 100644 (file)
@@ -44,7 +44,7 @@
 #define _ncvtest_hpp_
 
 #if defined _MSC_VER
-# pragma warning( disable : 4201 4408 4127 4100)
+# pragma warning( disable : 4201 4408 4100)
 #endif
 
 #include <string>
index d1f1bb6..ee14d06 100644 (file)
@@ -45,10 +45,6 @@ The references are:
 #include "precomp.hpp"
 #include "agast_score.hpp"
 
-#ifdef _MSC_VER
-#pragma warning( disable : 4127 )
-#endif
-
 namespace cv
 {
 
index ac80077..92a34a7 100644 (file)
@@ -44,10 +44,6 @@ The references are:
 
 #include "agast_score.hpp"
 
-#ifdef _MSC_VER
-#pragma warning( disable : 4127 )
-#endif
-
 namespace cv
 {
 
index c87ea69..f81e7e2 100644 (file)
@@ -48,9 +48,6 @@ The references are:
 #include "opencv2/core/hal/intrin.hpp"
 
 #include "opencv2/core/openvx/ovx_defs.hpp"
-#if defined _MSC_VER
-# pragma warning( disable : 4127)
-#endif
 
 namespace cv
 {
index caf768d..f53550a 100644 (file)
@@ -78,18 +78,11 @@ extern "C" {
 namespace cv
 {
 
-#ifdef _MSC_VER
-# pragma warning(push)
-# pragma warning(disable:4324) //structure was padded due to __declspec(align())
-#endif
 struct JpegErrorMgr
 {
     struct jpeg_error_mgr pub;
     jmp_buf setjmp_buffer;
 };
-#ifdef _MSC_VER
-# pragma warning(pop)
-#endif
 
 struct JpegSource
 {
index 3fb3740..f40cf8f 100644 (file)
@@ -12,7 +12,12 @@ typedef TestBaseWithParam<MatInfo_Size_Size_t> MatInfo_Size_Size;
 PERF_TEST_P(MatInfo_Size_Size, resizeUpLinear,
             testing::Values(
                 MatInfo_Size_Size_t(CV_8UC1, szVGA, szqHD),
+                MatInfo_Size_Size_t(CV_8UC2, szVGA, szqHD),
+                MatInfo_Size_Size_t(CV_8UC3, szVGA, szqHD),
+                MatInfo_Size_Size_t(CV_8UC4, szVGA, szqHD),
                 MatInfo_Size_Size_t(CV_8UC1, szVGA, sz720p),
+                MatInfo_Size_Size_t(CV_8UC2, szVGA, sz720p),
+                MatInfo_Size_Size_t(CV_8UC3, szVGA, sz720p),
                 MatInfo_Size_Size_t(CV_8UC4, szVGA, sz720p)
                 )
             )
@@ -37,9 +42,24 @@ PERF_TEST_P(MatInfo_Size_Size, resizeUpLinear,
 PERF_TEST_P(MatInfo_Size_Size, resizeDownLinear,
             testing::Values(
                 MatInfo_Size_Size_t(CV_8UC1, szVGA, szQVGA),
+                MatInfo_Size_Size_t(CV_8UC2, szVGA, szQVGA),
+                MatInfo_Size_Size_t(CV_8UC3, szVGA, szQVGA),
+                MatInfo_Size_Size_t(CV_8UC4, szVGA, szQVGA),
+                MatInfo_Size_Size_t(CV_8UC1, szqHD, szVGA),
+                MatInfo_Size_Size_t(CV_8UC2, szqHD, szVGA),
+                MatInfo_Size_Size_t(CV_8UC3, szqHD, szVGA),
                 MatInfo_Size_Size_t(CV_8UC4, szqHD, szVGA),
                 MatInfo_Size_Size_t(CV_8UC1, sz720p, Size(120 * sz720p.width / sz720p.height, 120)),//face detection min_face_size = 20%
+                MatInfo_Size_Size_t(CV_8UC2, sz720p, Size(120 * sz720p.width / sz720p.height, 120)),//face detection min_face_size = 20%
+                MatInfo_Size_Size_t(CV_8UC3, sz720p, Size(120 * sz720p.width / sz720p.height, 120)),//face detection min_face_size = 20%
+                MatInfo_Size_Size_t(CV_8UC4, sz720p, Size(120 * sz720p.width / sz720p.height, 120)),//face detection min_face_size = 20%
+                MatInfo_Size_Size_t(CV_8UC1, sz720p, szVGA),
+                MatInfo_Size_Size_t(CV_8UC2, sz720p, szVGA),
+                MatInfo_Size_Size_t(CV_8UC3, sz720p, szVGA),
                 MatInfo_Size_Size_t(CV_8UC4, sz720p, szVGA),
+                MatInfo_Size_Size_t(CV_8UC1, sz720p, szQVGA),
+                MatInfo_Size_Size_t(CV_8UC2, sz720p, szQVGA),
+                MatInfo_Size_Size_t(CV_8UC3, sz720p, szQVGA),
                 MatInfo_Size_Size_t(CV_8UC4, sz720p, szQVGA)
                 )
             )
index 23bb40e..7c13e4d 100644 (file)
 
 #include "opencv2/core/openvx/ovx_defs.hpp"
 
-#ifdef _MSC_VER
-#pragma warning( disable: 4127 ) // conditional expression is constant
-#endif
-
 #if CV_SIMD128
 #define CV_MALLOC_SIMD128 16
 #endif
index 14a0377..9b1ceb9 100644 (file)
@@ -443,104 +443,6 @@ void hlineResizeCn<uint8_t, ufixedpoint16, 2, true, 2>(uint8_t* src, int, int *o
     }
 }
 template <>
-void hlineResizeCn<uint8_t, ufixedpoint16, 2, true, 3>(uint8_t* src, int, int *ofst, ufixedpoint16* m, ufixedpoint16* dst, int dst_min, int dst_max, int dst_width)
-{
-    int i = 0;
-    ufixedpoint16 srccn[3] = { src[0], src[1], src[2] };
-    v_uint16x8 v_srccn0 = v_setall_u16(((uint16_t*)srccn)[0]);
-    v_uint16x8 v_srccn1 = v_setall_u16(((uint16_t*)srccn)[1]);
-    v_uint16x8 v_srccn2 = v_setall_u16(((uint16_t*)srccn)[2]);
-    for (; i < dst_min - 7; i += 8, m += 16, dst += 24) // Points that fall left from src image so became equal to leftmost src point
-    {
-        v_store_interleave((uint16_t*)dst, v_srccn0, v_srccn1, v_srccn2);
-    }
-    for (; i < dst_min; i++, m += 2)
-    {
-        *(dst++) = srccn[0];
-        *(dst++) = srccn[1];
-        *(dst++) = srccn[2];
-    }
-    for (; i < dst_max - 7 && ofst[i + 7] + 15 <= ofst[dst_width - 1]; i += 8, m += 16, dst += 24)
-    {
-        v_uint8x16 v_src0_c1, v_src0_c2, v_src0_c3;
-        v_load_deinterleave(src + 3 * ofst[i    ], v_src0_c1, v_src0_c2, v_src0_c3);
-        v_uint8x16 v_src1_c1, v_src1_c2, v_src1_c3;
-        v_load_deinterleave(src + 3 * ofst[i + 1], v_src1_c1, v_src1_c2, v_src1_c3);
-        v_uint8x16 v_src2_c1, v_src2_c2, v_src2_c3;
-        v_load_deinterleave(src + 3 * ofst[i + 2], v_src2_c1, v_src2_c2, v_src2_c3);
-        v_uint8x16 v_src3_c1, v_src3_c2, v_src3_c3;
-        v_load_deinterleave(src + 3 * ofst[i + 3], v_src3_c1, v_src3_c2, v_src3_c3);
-
-        v_uint16x8 v_tmp0, v_tmp1, v_tmp2;
-        v_uint16x8 v_src0123_c1, v_src0123_c2, v_src0123_c3;
-        v_zip(v_reinterpret_as_u16(v_src0_c1), v_reinterpret_as_u16(v_src2_c1), v_tmp0, v_tmp1);
-        v_zip(v_reinterpret_as_u16(v_src1_c1), v_reinterpret_as_u16(v_src3_c1), v_tmp1, v_tmp2);
-        v_zip(v_tmp0, v_tmp1, v_src0123_c1, v_tmp2);
-        v_zip(v_reinterpret_as_u16(v_src0_c2), v_reinterpret_as_u16(v_src2_c2), v_tmp0, v_tmp1);
-        v_zip(v_reinterpret_as_u16(v_src1_c2), v_reinterpret_as_u16(v_src3_c2), v_tmp1, v_tmp2);
-        v_zip(v_tmp0, v_tmp1, v_src0123_c2, v_tmp2);
-        v_zip(v_reinterpret_as_u16(v_src0_c3), v_reinterpret_as_u16(v_src2_c3), v_tmp0, v_tmp1);
-        v_zip(v_reinterpret_as_u16(v_src1_c3), v_reinterpret_as_u16(v_src3_c3), v_tmp1, v_tmp2);
-        v_zip(v_tmp0, v_tmp1, v_src0123_c3, v_tmp2);
-
-        v_load_deinterleave(src + 3 * ofst[i + 4], v_src0_c1, v_src0_c2, v_src0_c3);
-        v_load_deinterleave(src + 3 * ofst[i + 5], v_src1_c1, v_src1_c2, v_src1_c3);
-        v_load_deinterleave(src + 3 * ofst[i + 6], v_src2_c1, v_src2_c2, v_src2_c3);
-        v_load_deinterleave(src + 3 * ofst[i + 7], v_src3_c1, v_src3_c2, v_src3_c3);
-
-        v_uint16x8 v_src4567_c1, v_src4567_c2, v_src4567_c3;
-        v_zip(v_reinterpret_as_u16(v_src0_c1), v_reinterpret_as_u16(v_src2_c1), v_tmp0, v_tmp1);
-        v_zip(v_reinterpret_as_u16(v_src1_c1), v_reinterpret_as_u16(v_src3_c1), v_tmp1, v_tmp2);
-        v_zip(v_tmp0, v_tmp1, v_src4567_c1, v_tmp2);
-        v_zip(v_reinterpret_as_u16(v_src0_c2), v_reinterpret_as_u16(v_src2_c2), v_tmp0, v_tmp1);
-        v_zip(v_reinterpret_as_u16(v_src1_c2), v_reinterpret_as_u16(v_src3_c2), v_tmp1, v_tmp2);
-        v_zip(v_tmp0, v_tmp1, v_src4567_c2, v_tmp2);
-        v_zip(v_reinterpret_as_u16(v_src0_c3), v_reinterpret_as_u16(v_src2_c3), v_tmp0, v_tmp1);
-        v_zip(v_reinterpret_as_u16(v_src1_c3), v_reinterpret_as_u16(v_src3_c3), v_tmp1, v_tmp2);
-        v_zip(v_tmp0, v_tmp1, v_src4567_c3, v_tmp2);
-
-        v_expand(v_reinterpret_as_u8(v_combine_low(v_src0123_c1, v_src4567_c1)),
-            v_src0123_c1, v_src4567_c1
-        );
-        v_expand(v_reinterpret_as_u8(v_combine_low(v_src0123_c2, v_src4567_c2)),
-            v_src0123_c2, v_src4567_c2
-        );
-        v_expand(v_reinterpret_as_u8(v_combine_low(v_src0123_c3, v_src4567_c3)),
-            v_src0123_c3, v_src4567_c3
-        );
-        v_int16x8 v_mul0123 = v_load((int16_t*)m);
-        v_int16x8 v_mul4567 = v_load((int16_t*)m+8);
-        v_uint32x4 v_res0123_c1 = v_reinterpret_as_u32(v_dotprod(v_reinterpret_as_s16(v_src0123_c1), v_mul0123));
-        v_uint32x4 v_res0123_c2 = v_reinterpret_as_u32(v_dotprod(v_reinterpret_as_s16(v_src0123_c2), v_mul0123));
-        v_uint32x4 v_res0123_c3 = v_reinterpret_as_u32(v_dotprod(v_reinterpret_as_s16(v_src0123_c3), v_mul0123));
-        v_uint32x4 v_res4567_c1 = v_reinterpret_as_u32(v_dotprod(v_reinterpret_as_s16(v_src4567_c1), v_mul4567));
-        v_uint32x4 v_res4567_c2 = v_reinterpret_as_u32(v_dotprod(v_reinterpret_as_s16(v_src4567_c2), v_mul4567));
-        v_uint32x4 v_res4567_c3 = v_reinterpret_as_u32(v_dotprod(v_reinterpret_as_s16(v_src4567_c3), v_mul4567));
-
-        v_store_interleave((uint16_t*)dst , v_pack(v_res0123_c1, v_res4567_c1), v_pack(v_res0123_c2, v_res4567_c2), v_pack(v_res0123_c3, v_res4567_c3));
-    }
-    for (; i < dst_max; i += 1, m += 2)
-    {
-        uint8_t* px = src + 3 * ofst[i];
-        *(dst++) = m[0] * px[0] + m[1] * px[3];
-        *(dst++) = m[0] * px[1] + m[1] * px[4];
-        *(dst++) = m[0] * px[2] + m[1] * px[5];
-    }
-    srccn[0] = (src + 3 * ofst[dst_width - 1])[0]; v_srccn0 = v_setall_u16(((uint16_t*)srccn)[0]);
-    srccn[1] = (src + 3 * ofst[dst_width - 1])[1]; v_srccn1 = v_setall_u16(((uint16_t*)srccn)[1]);
-    srccn[2] = (src + 3 * ofst[dst_width - 1])[2]; v_srccn2 = v_setall_u16(((uint16_t*)srccn)[2]);
-    for (; i < dst_width - 7; i += 8, dst += 24) // Points that fall left from src image so became equal to leftmost src point
-    {
-        v_store_interleave((uint16_t*)dst, v_srccn0, v_srccn1, v_srccn2);
-    }
-    for (; i < dst_width; i++)
-    {
-        *(dst++) = srccn[0];
-        *(dst++) = srccn[1];
-        *(dst++) = srccn[2];
-    }
-}
-template <>
 void hlineResizeCn<uint8_t, ufixedpoint16, 2, true, 4>(uint8_t* src, int, int *ofst, ufixedpoint16* m, ufixedpoint16* dst, int dst_min, int dst_max, int dst_width)
 {
     int i = 0;
@@ -4153,6 +4055,9 @@ void cv::resize( InputArray _src, OutputArray _dst, Size dsize,
         inv_scale_y = (double)dsize.height/ssize.height;
     }
 
+    if (interpolation == INTER_LINEAR_EXACT && (_src.depth() == CV_32F || _src.depth() == CV_64F))
+        interpolation = INTER_LINEAR; // If depth isn't supported fallback to generic resize
+
     CV_OCL_RUN(_src.dims() <= 2 && _dst.isUMat() && _src.cols() > 10 && _src.rows() > 10,
                ocl_resize(_src, _dst, dsize, inv_scale_x, inv_scale_y, interpolation))
 
index dd1bc14..82e945a 100644 (file)
@@ -34,7 +34,6 @@
 #endif
 
 #ifdef _MSC_VER
-#pragma warning( disable: 4127 ) // conditional expression is constant
 #pragma warning( disable: 4503 ) // decorated name length exceeded, name was truncated
 #endif
 
index fb31603..18e6415 100644 (file)
@@ -7976,20 +7976,11 @@ GTEST_API_ std::string AppendUserMessage(
 // std::runtime_error inherits from std::exception, many testing
 // frameworks know how to extract and print the message inside it.
 
-#ifdef _MSC_VER
-# pragma warning(push)          // Saves the current warning state.
-# pragma warning(disable:4275)  // Temporarily disables warning 4275.
-#endif  // _MSC_VER
-
 class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error {
  public:
   explicit GoogleTestFailureException(const TestPartResult& failure);
 };
 
-#ifdef _MSC_VER
-# pragma warning(pop)           // Restores the warning state.
-#endif  // _MSC_VER
-
 #endif  // GTEST_HAS_EXCEPTIONS
 
 // A helper class for creating scoped traces in user programs.
index 27c374b..fb12902 100644 (file)
@@ -51,7 +51,7 @@
 #define CALC_FFMPEG_VERSION(a,b,c) ( a<<16 | b<<8 | c )
 
 #if defined _MSC_VER && _MSC_VER >= 1200
-#pragma warning( disable: 4244 4510 4512 4610 )
+#pragma warning( disable: 4244 4510 4610 )
 #endif
 
 #ifdef __GNUC__
@@ -83,7 +83,7 @@ extern "C" {
 #endif
 
 #if defined _MSC_VER && _MSC_VER >= 1200
-#pragma warning( default: 4244 4510 4512 4610 )
+#pragma warning( default: 4244 4510 4610 )
 #endif
 
 #ifdef NDEBUG
index 87a7476..cb0514f 100644 (file)
@@ -2084,11 +2084,6 @@ public:
 // succeed but return a nullptr pointer. By default, the list does not allow nullptr
 // pointers.
 
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable: 4127) // constant expression
-#endif
-
 template <class T, bool NULLABLE = FALSE>
 class ComPtrList : public List<T*>
 {
@@ -2179,10 +2174,6 @@ protected:
     }
 };
 
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
 /* Be sure to declare webcam device capability in manifest
   For better media capture support, add the following snippet with correct module name to the project manifest
     (videoio needs DLL activation class factoryentry points):