Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

What is the difference between the 3.0.0 headers for Windows/All Platforms?

I downloaded the windows binary package and the source package for all platforms.

I ran the self-extracting archive under windows. For the source, I built under Linux and did make install.

Now when I diff the two opencv2 directories, I see many differences:

diff -ur /usr/local/include/opencv2/videoio.hpp cpp-source/opencv2/videoio.hpp
--- /usr/local/include/opencv2/videoio.hpp  2015-06-03 13:21:34.000000000 -0400
+++ cpp-source/opencv2/videoio.hpp  2015-03-25 14:04:29.490676900 -0400
@@ -50,7 +50,6 @@
   @{
     @defgroup videoio_c C API
     @defgroup videoio_ios iOS glue
-    @defgroup videoio_winrt WinRT glue
   @}
 */

@@ -81,16 +80,14 @@
        CAP_PVAPI        = 800,   // PvAPI, Prosilica GigE SDK
        CAP_OPENNI       = 900,   // OpenNI (for Kinect)
        CAP_OPENNI_ASUS  = 910,   // OpenNI (for Asus Xtion)
-       CAP_ANDROID      = 1000,  // Android - not used
+       CAP_ANDROID      = 1000,  // Android
        CAP_XIAPI        = 1100,  // XIMEA Camera API
        CAP_AVFOUNDATION = 1200,  // AVFoundation framework for iOS (OS X Lion will have the same API)
        CAP_GIGANETIX    = 1300,  // Smartek Giganetix GigEVisionSDK
        CAP_MSMF         = 1400,  // Microsoft Media Foundation (via videoInput)
-       CAP_WINRT        = 1410,  // Microsoft Windows Runtime using Media Foundation

I haven't confirmed, but I think that misusing the Windows headers on Linux might cause link errors in my program. So I'm wondering:

  • What is the reason for the difference?
  • Is it safe to use the "all platforms" headers on Windows?