From 60b33046a71c4e661b03b7c81f7a69ece02c2290 Mon Sep 17 00:00:00 2001
From: Luis Roberto Morales Iglesias <lr.morales.iglesias@gmail.com>
Date: Thu, 15 Sep 2016 14:20:02 +0200
Subject: [PATCH] [Issue #7290] Fixes OpenNI and OpenNI2 linking conflict

---
 modules/videoio/src/cap.cpp         | 6 ++++++
 modules/videoio/src/cap_openni2.cpp | 2 +-
 modules/videoio/src/precomp.hpp     | 1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/modules/videoio/src/cap.cpp b/modules/videoio/src/cap.cpp
index 55c20bef52..a774afbaad 100644
--- a/modules/videoio/src/cap.cpp
+++ b/modules/videoio/src/cap.cpp
@@ -340,6 +340,12 @@ CV_IMPL CvCapture * cvCreateFileCaptureWithPreference (const char * filename, in
         if (apiPreference) break;
 #endif
 
+#ifdef HAVE_OPENNI2
+    case CV_CAP_OPENNI2:
+        TRY_OPEN(result, cvCreateFileCapture_OpenNI2 (filename))
+        if (apiPreference) break;
+#endif
+
     case CV_CAP_IMAGES:
         TRY_OPEN(result, cvCreateFileCapture_Images (filename))
     }
diff --git a/modules/videoio/src/cap_openni2.cpp b/modules/videoio/src/cap_openni2.cpp
index aebf1889a1..775038e93f 100644
--- a/modules/videoio/src/cap_openni2.cpp
+++ b/modules/videoio/src/cap_openni2.cpp
@@ -1086,7 +1086,7 @@ CvCapture* cvCreateCameraCapture_OpenNI2( int index )
     return 0;
 }
 
-CvCapture* cvCreateFileCapture_OpenNI( const char* filename )
+CvCapture* cvCreateFileCapture_OpenNI2( const char* filename )
 {
     CvCapture_OpenNI2* capture = new CvCapture_OpenNI2( filename );
 
diff --git a/modules/videoio/src/precomp.hpp b/modules/videoio/src/precomp.hpp
index cb3a775dc9..e166596cad 100644
--- a/modules/videoio/src/precomp.hpp
+++ b/modules/videoio/src/precomp.hpp
@@ -124,6 +124,7 @@ CvVideoWriter* cvCreateVideoWriter_MSMF( const char* filename, int fourcc,
 CvCapture* cvCreateCameraCapture_OpenNI( int index );
 CvCapture* cvCreateCameraCapture_OpenNI2( int index );
 CvCapture* cvCreateFileCapture_OpenNI( const char* filename );
+CvCapture* cvCreateFileCapture_OpenNI2( const char* filename );
 CvCapture* cvCreateCameraCapture_Android( int index );
 CvCapture* cvCreateCameraCapture_XIMEA( int index );
 CvCapture* cvCreateCameraCapture_AVFoundation(int index);