[SCM] openni-sensor-primesense/master: Remove Kinect specific patches, now in openni-sensor-pointclouds
jspricke-guest at users.alioth.debian.org
jspricke-guest at users.alioth.debian.org
Mon Nov 25 18:48:32 UTC 2013
The following commit has been merged in the master branch:
commit 9b9e5fa7ce7f1b60a4d4a354f33d30365d0b43d2
Author: Jochen Sprickerhof <jochen at sprickerhof.de>
Date: Mon Nov 25 19:46:50 2013 +0100
Remove Kinect specific patches, now in openni-sensor-pointclouds
diff --git a/debian/patches/0013-Disable-SSE.patch b/debian/patches/0001-Disable-SSE.patch
similarity index 92%
rename from debian/patches/0013-Disable-SSE.patch
rename to debian/patches/0001-Disable-SSE.patch
index 7e5d3f0..8915654 100644
--- a/debian/patches/0013-Disable-SSE.patch
+++ b/debian/patches/0001-Disable-SSE.patch
@@ -5,7 +5,7 @@ Subject: Disable SSE
Disable error when no SSE optimization is selected and disables SSE as
well to get clean CFLAGS.
---
- Platform/Linux/Build/Common/Platform.x86 | 4 +---
+ Platform/Linux/Build/Common/Platform.x86 | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/Platform/Linux/Build/Common/Platform.x86 b/Platform/Linux/Build/Common/Platform.x86
diff --git a/debian/patches/0001-Fix-types.patch b/debian/patches/0001-Fix-types.patch
deleted file mode 100644
index a43033d..0000000
--- a/debian/patches/0001-Fix-types.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:35:59 +0100
-Subject: Fix types
-
-taken from https://github.com/avin2/SensorKinect
----
- Source/XnDeviceSensorV2/XnDataProcessor.h | 2 +-
- Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h | 3 ++-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/XnDataProcessor.h b/Source/XnDeviceSensorV2/XnDataProcessor.h
-index 7132346..6f6cbb4 100644
---- a/Source/XnDeviceSensorV2/XnDataProcessor.h
-+++ b/Source/XnDeviceSensorV2/XnDataProcessor.h
-@@ -86,7 +86,7 @@ protected:
- /* The number of bytes received so far (since last time this member was reset). */
- XnUInt32 m_nBytesReceived;
- /* Stores last packet ID */
-- XnUInt16 m_nLastPacketID;
-+ XnUInt8 m_nLastPacketID;
- /* The name of the stream. */
- const XnChar* m_csName;
-
-diff --git a/Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h b/Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h
-index 057d925..661d83a 100644
---- a/Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h
-+++ b/Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h
-@@ -82,7 +82,8 @@ typedef struct XnSensorProtocolResponseHeader
- {
- XnUInt16 nMagic;
- XnUInt16 nType;
-- XnUInt16 nPacketID;
-+ XnUInt8 nPacketID;
-+ XnUInt8 nUnknown;
- XnUInt16 nBufSize;
- XnUInt32 nTimeStamp;
- } XnSensorProtocolResponseHeader;
diff --git a/debian/patches/0002-Changed-25Hz-support-to-5_1-since-5_1_6-works-good.patch b/debian/patches/0002-Changed-25Hz-support-to-5_1-since-5_1_6-works-good.patch
deleted file mode 100644
index 5b484e0..0000000
--- a/debian/patches/0002-Changed-25Hz-support-to-5_1-since-5_1_6-works-good.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:36:59 +0100
-Subject: Changed 25Hz support to 5_1 since 5_1_6 works good
-
-taken from https://kforge.ros.org/openni/drivers
----
- Source/XnDeviceSensorV2/XnSensorImageStream.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/XnSensorImageStream.cpp b/Source/XnDeviceSensorV2/XnSensorImageStream.cpp
-index be42cc7..23f25a5 100644
---- a/Source/XnDeviceSensorV2/XnSensorImageStream.cpp
-+++ b/Source/XnDeviceSensorV2/XnSensorImageStream.cpp
-@@ -225,8 +225,8 @@ XnStatus XnSensorImageStream::Init()
- XN_IS_STATUS_OK(nRetVal);
- }
-
-- // starting with FW 5.2, 25 FPS is also supported
-- if (m_Helper.GetFirmwareVersion() >= XN_SENSOR_FW_VER_5_2)
-+ // starting with FW 5.1, 25 FPS is also supported
-+ if (m_Helper.GetFirmwareVersion() >= XN_SENSOR_FW_VER_5_1)
- {
- nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_YUV422, XN_RESOLUTION_QVGA, 25);
- XN_IS_STATUS_OK(nRetVal);
diff --git a/debian/patches/0014-Don-t-write-log-file-upon-OpenNI-invocation.patch b/debian/patches/0002-Don-t-write-log-file-upon-OpenNI-invocation.patch
similarity index 93%
rename from debian/patches/0014-Don-t-write-log-file-upon-OpenNI-invocation.patch
rename to debian/patches/0002-Don-t-write-log-file-upon-OpenNI-invocation.patch
index d48bc0e..5aa4268 100644
--- a/debian/patches/0014-Don-t-write-log-file-upon-OpenNI-invocation.patch
+++ b/debian/patches/0002-Don-t-write-log-file-upon-OpenNI-invocation.patch
@@ -3,7 +3,7 @@ Date: Tue, 6 Nov 2012 20:45:05 +0100
Subject: Don't write log file upon OpenNI invocation
---
- Data/GlobalDefaults.ini | 2 +-
+ Data/GlobalDefaults.ini | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Data/GlobalDefaults.ini b/Data/GlobalDefaults.ini
diff --git a/debian/patches/0003-Don-t-try-to-register-callback-for-a-5.0-device.patch b/debian/patches/0003-Don-t-try-to-register-callback-for-a-5.0-device.patch
deleted file mode 100644
index 614eb1f..0000000
--- a/debian/patches/0003-Don-t-try-to-register-callback-for-a-5.0-device.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:37:41 +0100
-Subject: Don't try to register callback for a 5.0 device
-
-taken from https://github.com/avin2/SensorKinect
----
- Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-index 8fd955c..50f23d5 100644
---- a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-+++ b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-@@ -469,9 +469,6 @@ XnStatus XnSensorIO::SetCallback(XnUSBEventCallbackFunctionPtr pCallbackPtr, voi
- //TODO: Support multiple sensors - this won't work for more than one.
- XnStatus nRetVal = XN_STATUS_OK;
-
-- // try to register callback to a 5.0 device
-- nRetVal = xnUSBSetCallbackHandler(XN_SENSOR_VENDOR_ID, XN_SENSOR_5_0_PRODUCT_ID, NULL, pCallbackPtr, pCallbackData);
--
- return nRetVal;
- }
-
diff --git a/debian/patches/0015-Fix-parallel-build.patch b/debian/patches/0003-Fix-parallel-build.patch
similarity index 92%
rename from debian/patches/0015-Fix-parallel-build.patch
rename to debian/patches/0003-Fix-parallel-build.patch
index e434bf3..18376f9 100644
--- a/debian/patches/0015-Fix-parallel-build.patch
+++ b/debian/patches/0003-Fix-parallel-build.patch
@@ -4,7 +4,7 @@ Subject: Fix parallel build
taken from https://kforge.ros.org/openni/drivers
---
- Platform/Linux/CreateRedist/RedistMaker | 2 +-
+ Platform/Linux/CreateRedist/RedistMaker | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Platform/Linux/CreateRedist/RedistMaker b/Platform/Linux/CreateRedist/RedistMaker
diff --git a/debian/patches/0016-Add-SONAME-to-libraries.patch b/debian/patches/0004-Add-SONAME-to-libraries.patch
similarity index 93%
rename from debian/patches/0016-Add-SONAME-to-libraries.patch
rename to debian/patches/0004-Add-SONAME-to-libraries.patch
index 6503e22..d84ba8e 100644
--- a/debian/patches/0016-Add-SONAME-to-libraries.patch
+++ b/debian/patches/0004-Add-SONAME-to-libraries.patch
@@ -3,7 +3,7 @@ Date: Tue, 6 Nov 2012 20:46:48 +0100
Subject: Add SONAME to libraries
---
- Platform/Linux/Build/Common/CommonCppMakefile | 4 ++--
+ Platform/Linux/Build/Common/CommonCppMakefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platform/Linux/Build/Common/CommonCppMakefile b/Platform/Linux/Build/Common/CommonCppMakefile
diff --git a/debian/patches/0004-Disable-setting-USB-interface.patch b/debian/patches/0004-Disable-setting-USB-interface.patch
deleted file mode 100644
index caf08f6..0000000
--- a/debian/patches/0004-Disable-setting-USB-interface.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:38:08 +0100
-Subject: Disable setting USB interface
-
-taken from https://kforge.ros.org/openni/drivers
----
- Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-index 50f23d5..4d9b0b4 100644
---- a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-+++ b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-@@ -147,9 +147,6 @@ XnStatus XnSensorIO::OpenDataEndPoints(XnSensorUsbInterface nInterface, const Xn
- XN_LOG_WARNING_RETURN(XN_STATUS_USB_INTERFACE_NOT_SUPPORTED, XN_MASK_DEVICE_IO, "Unknown interface type: %d", nInterface);
- }
-
-- xnLogVerbose(XN_MASK_DEVICE_IO, "Setting USB alternative interface to %d...", nAlternativeInterface);
-- nRetVal = xnUSBSetInterface(m_pSensorHandle->USBDevice, 0, nAlternativeInterface);
-- XN_IS_STATUS_OK(nRetVal);
- }
-
- xnLogVerbose(XN_MASK_DEVICE_IO, "Opening endpoints...");
diff --git a/debian/patches/0005-Add-support-for-vendor-id-in-Enumerate-USB-devices.patch b/debian/patches/0005-Add-support-for-vendor-id-in-Enumerate-USB-devices.patch
deleted file mode 100644
index 5e3c6ab..0000000
--- a/debian/patches/0005-Add-support-for-vendor-id-in-Enumerate-USB-devices.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:38:26 +0100
-Subject: Add support for vendor id in Enumerate() USB devices
-
-taken from https://kforge.ros.org/openni/drivers
----
- Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-index 4d9b0b4..87097a1 100644
---- a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-+++ b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-@@ -353,14 +353,14 @@ XnStatus XnSensorIO::CloseDevice()
- return (XN_STATUS_OK);
- }
-
--XnStatus Enumerate(XnUInt16 nProduct, XnStringsHash& devicesSet)
-+XnStatus Enumerate(XnUInt16 nVendor, XnUInt16 nProduct, XnStringsHash& devicesSet)
- {
- XnStatus nRetVal = XN_STATUS_OK;
-
- const XnUSBConnectionString* astrDevicePaths;
- XnUInt32 nCount;
-
-- nRetVal = xnUSBEnumerateDevices(XN_SENSOR_VENDOR_ID, nProduct, &astrDevicePaths, &nCount);
-+ nRetVal = xnUSBEnumerateDevices(nVendor, nProduct, &astrDevicePaths, &nCount);
- XN_IS_STATUS_OK(nRetVal);
-
- for (XnUInt32 i = 0; i < nCount; ++i)
-@@ -389,26 +389,26 @@ XnStatus XnSensorIO::EnumerateSensors(XnConnectionString* aConnectionStrings, Xn
- if (devicesSet.Size() == 0)
- {
- // search for a v6.0.1 device
-- nRetVal = Enumerate(XN_SENSOR_6_0_1_PRODUCT_ID, devicesSet);
-+ nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_6_0_1_PRODUCT_ID, devicesSet);
- XN_IS_STATUS_OK(nRetVal);
-
- // search for a v6.0 device
-- nRetVal = Enumerate(XN_SENSOR_6_0_PRODUCT_ID, devicesSet);
-+ nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_6_0_PRODUCT_ID, devicesSet);
- XN_IS_STATUS_OK(nRetVal);
- }
- #else
- XnStringsHash devicesSet;
-
- // search for a v6.0.1 device
-- nRetVal = Enumerate(XN_SENSOR_6_0_1_PRODUCT_ID, devicesSet);
-+ nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_6_0_1_PRODUCT_ID, devicesSet);
- XN_IS_STATUS_OK(nRetVal);
-
- // search for a v6.0 device
-- nRetVal = Enumerate(XN_SENSOR_6_0_PRODUCT_ID, devicesSet);
-+ nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_6_0_PRODUCT_ID, devicesSet);
- XN_IS_STATUS_OK(nRetVal);
-
- // search for a v5.0 device
-- nRetVal = Enumerate(XN_SENSOR_5_0_PRODUCT_ID, devicesSet);
-+ nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_5_0_PRODUCT_ID, devicesSet);
- XN_IS_STATUS_OK(nRetVal);
- #endif
-
diff --git a/debian/patches/0017-Use-system-wide-libjpeg.patch b/debian/patches/0005-Use-system-wide-libjpeg.patch
similarity index 92%
rename from debian/patches/0017-Use-system-wide-libjpeg.patch
rename to debian/patches/0005-Use-system-wide-libjpeg.patch
index b215a97..b6edc27 100644
--- a/debian/patches/0017-Use-system-wide-libjpeg.patch
+++ b/debian/patches/0005-Use-system-wide-libjpeg.patch
@@ -3,8 +3,8 @@ Date: Tue, 6 Nov 2012 20:47:04 +0100
Subject: Use system wide libjpeg
---
- Platform/Linux/Build/XnFormats/Makefile | 11 ++++++++---
- Source/XnFormats/XnStreamCompression.h | 2 +-
+ Platform/Linux/Build/XnFormats/Makefile | 11 ++++++++---
+ Source/XnFormats/XnStreamCompression.h | 2 +-
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/Platform/Linux/Build/XnFormats/Makefile b/Platform/Linux/Build/XnFormats/Makefile
diff --git a/debian/patches/0006-Add-support-for-XN-sensor-version-2.patch b/debian/patches/0006-Add-support-for-XN-sensor-version-2.patch
deleted file mode 100644
index 4739f6f..0000000
--- a/debian/patches/0006-Add-support-for-XN-sensor-version-2.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:38:48 +0100
-Subject: Add support for XN sensor version 2
-
-taken from https://kforge.ros.org/openni/drivers
----
- Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-index 87097a1..f358f6a 100644
---- a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-+++ b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-@@ -30,6 +30,7 @@
- // Defines
- //---------------------------------------------------------------------------
- #define XN_SENSOR_VENDOR_ID 0x1D27
-+#define XN_SENSOR_2_0_PRODUCT_ID 0x0200
- #define XN_SENSOR_5_0_PRODUCT_ID 0x0500
- #define XN_SENSOR_6_0_PRODUCT_ID 0x0600
- #define XN_SENSOR_6_0_1_PRODUCT_ID 0x0601
-@@ -410,6 +411,11 @@ XnStatus XnSensorIO::EnumerateSensors(XnConnectionString* aConnectionStrings, Xn
- // search for a v5.0 device
- nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_5_0_PRODUCT_ID, devicesSet);
- XN_IS_STATUS_OK(nRetVal);
-+
-+ // try searching for an older device
-+ nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_2_0_PRODUCT_ID, devicesSet);
-+ XN_IS_STATUS_OK(nRetVal);
-+
- #endif
-
- // now copy back
diff --git a/debian/patches/0018-Fix-include-dirs.patch b/debian/patches/0006-Fix-include-dirs.patch
similarity index 90%
rename from debian/patches/0018-Fix-include-dirs.patch
rename to debian/patches/0006-Fix-include-dirs.patch
index da274ae..dcc7199 100644
--- a/debian/patches/0018-Fix-include-dirs.patch
+++ b/debian/patches/0006-Fix-include-dirs.patch
@@ -3,8 +3,8 @@ Date: Tue, 6 Nov 2012 23:49:55 +0100
Subject: Fix include dirs
---
- Platform/Linux/Build/EngineLibMakefile | 2 +-
- Platform/Linux/Build/Utils/EngineUtilMakefile | 2 +-
+ Platform/Linux/Build/EngineLibMakefile | 2 +-
+ Platform/Linux/Build/Utils/EngineUtilMakefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platform/Linux/Build/EngineLibMakefile b/Platform/Linux/Build/EngineLibMakefile
diff --git a/debian/patches/0007-Add-support-for-Kinect-product-id.patch b/debian/patches/0007-Add-support-for-Kinect-product-id.patch
deleted file mode 100644
index 4671b60..0000000
--- a/debian/patches/0007-Add-support-for-Kinect-product-id.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:39:14 +0100
-Subject: Add support for Kinect product id
-
-taken from https://kforge.ros.org/openni/drivers
----
- Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-index f358f6a..b86283e 100644
---- a/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-+++ b/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
-@@ -34,6 +34,8 @@
- #define XN_SENSOR_5_0_PRODUCT_ID 0x0500
- #define XN_SENSOR_6_0_PRODUCT_ID 0x0600
- #define XN_SENSOR_6_0_1_PRODUCT_ID 0x0601
-+#define XN_SENSOR_MSK_VENDOR_ID 0x045E
-+#define XN_SENSOR_MSK_PRODUCT_ID 0x02AE
-
- //---------------------------------------------------------------------------
- // Enums
-@@ -399,6 +401,10 @@ XnStatus XnSensorIO::EnumerateSensors(XnConnectionString* aConnectionStrings, Xn
- }
- #else
- XnStringsHash devicesSet;
-+
-+ // search for a MSK device
-+ nRetVal = Enumerate(XN_SENSOR_MSK_VENDOR_ID, XN_SENSOR_MSK_PRODUCT_ID, devicesSet);
-+ XN_IS_STATUS_OK(nRetVal);
-
- // search for a v6.0.1 device
- nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_6_0_1_PRODUCT_ID, devicesSet);
diff --git a/debian/patches/0019-Remove-call-to-XnLockedServerStreamsHash.patch b/debian/patches/0007-Remove-call-to-XnLockedServerStreamsHash.patch
similarity index 92%
rename from debian/patches/0019-Remove-call-to-XnLockedServerStreamsHash.patch
rename to debian/patches/0007-Remove-call-to-XnLockedServerStreamsHash.patch
index 2c2783c..f4714a8 100644
--- a/debian/patches/0019-Remove-call-to-XnLockedServerStreamsHash.patch
+++ b/debian/patches/0007-Remove-call-to-XnLockedServerStreamsHash.patch
@@ -4,7 +4,7 @@ Subject: Remove call to XnLockedServerStreamsHash
taken from https://github.com/rbrusu/Sensor
---
- Source/XnDeviceSensorV2/XnServerSensorInvoker.h | 8 +-------
+ Source/XnDeviceSensorV2/XnServerSensorInvoker.h | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/Source/XnDeviceSensorV2/XnServerSensorInvoker.h b/Source/XnDeviceSensorV2/XnServerSensorInvoker.h
diff --git a/debian/patches/0008-Add-support-for-different-frame-rates-and-high-resol.patch b/debian/patches/0008-Add-support-for-different-frame-rates-and-high-resol.patch
deleted file mode 100644
index 7e3b5cf..0000000
--- a/debian/patches/0008-Add-support-for-different-frame-rates-and-high-resol.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:42:17 +0100
-Subject: Add support for different frame rates and high resolution
-
-taken from https://github.com/avin2/SensorKinect
----
- Source/XnDeviceSensorV2/XnFirmwareStreams.cpp | 12 ------------
- Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp | 4 ----
- Source/XnDeviceSensorV2/XnSensorIRStream.cpp | 2 ++
- 3 files changed, 2 insertions(+), 16 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/XnFirmwareStreams.cpp b/Source/XnDeviceSensorV2/XnFirmwareStreams.cpp
-index eb2e45d..5d1f30b 100644
---- a/Source/XnDeviceSensorV2/XnFirmwareStreams.cpp
-+++ b/Source/XnDeviceSensorV2/XnFirmwareStreams.cpp
-@@ -110,12 +110,6 @@ XnStatus XnFirmwareStreams::CheckClaimStream(const XnChar* strType, XnResolution
- {
- XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "Cannot set depth stream to resolution %d when IR is set to resolution %d!", nRes, pIRStreamData->nRes);
- }
--
-- // check FPS
-- if (pIRStreamData->nFPS != nFPS)
-- {
-- XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "Depth and IR streams must have the same FPS!");
-- }
- }
- }
- else if (strcmp(strType, XN_STREAM_TYPE_IR) == 0)
-@@ -142,12 +136,6 @@ XnStatus XnFirmwareStreams::CheckClaimStream(const XnChar* strType, XnResolution
- {
- XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "Cannot set IR stream to resolution %d when Depth is set to resolution %d!", nRes, pDepthStreamData->nRes);
- }
--
-- // check FPS
-- if (pDepthStreamData->nFPS != nFPS)
-- {
-- XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "Depth and IR streams must have the same FPS!");
-- }
- }
- }
- else if (strcmp(strType, XN_STREAM_TYPE_IMAGE) == 0)
-diff --git a/Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp b/Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp
-index 913fb6a..235da3b 100644
---- a/Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp
-+++ b/Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp
-@@ -510,10 +510,6 @@ XnStatus XnSensorFirmwareParams::SetImageResolution(XnUInt64 nValue)
- case XN_RESOLUTION_VGA:
- break;
- case XN_RESOLUTION_SXGA:
-- if (m_pInfo->nFWVer < XN_SENSOR_FW_VER_5_3)
-- {
-- XN_LOG_WARNING_RETURN(XN_STATUS_IO_INVALID_STREAM_IMAGE_RESOLUTION, XN_MASK_DEVICE_SENSOR, "Image resolution is not supported by this firmware!");
-- }
- break;
- case XN_RESOLUTION_UXGA:
- if (m_pInfo->nFWVer < XN_SENSOR_FW_VER_5_1)
-diff --git a/Source/XnDeviceSensorV2/XnSensorIRStream.cpp b/Source/XnDeviceSensorV2/XnSensorIRStream.cpp
-index ebf162a..73c50a1 100644
---- a/Source/XnDeviceSensorV2/XnSensorIRStream.cpp
-+++ b/Source/XnDeviceSensorV2/XnSensorIRStream.cpp
-@@ -87,6 +87,7 @@ XnStatus XnSensorIRStream::Init()
- { 0, XN_RESOLUTION_QVGA, 60 },
- { 0, XN_RESOLUTION_VGA, 30 },
- { 0, XN_RESOLUTION_SXGA, 30 },
-+ { 0, XN_RESOLUTION_SXGA, 15 },
- };
- nRetVal = AddSupportedModes(aSupportedModes, sizeof(aSupportedModes)/sizeof(aSupportedModes[0]));
- XN_IS_STATUS_OK(nRetVal);
-@@ -96,6 +97,7 @@ XnStatus XnSensorIRStream::Init()
- XnCmosPreset aSupportedModesSXGA[] =
- {
- { 0, XN_RESOLUTION_SXGA, 30 },
-+ { 0, XN_RESOLUTION_SXGA, 15 },
- };
- nRetVal = AddSupportedModes(aSupportedModesSXGA, sizeof(aSupportedModesSXGA)/sizeof(aSupportedModesSXGA[0]));
- XN_IS_STATUS_OK(nRetVal);
diff --git a/debian/patches/0020-Move-XnSensorServer-to-usr-lib-libopenni-sensor-prim.patch b/debian/patches/0008-Move-XnSensorServer-to-usr-lib-libopenni-sensor-prim.patch
similarity index 93%
rename from debian/patches/0020-Move-XnSensorServer-to-usr-lib-libopenni-sensor-prim.patch
rename to debian/patches/0008-Move-XnSensorServer-to-usr-lib-libopenni-sensor-prim.patch
index 1b942a5..4c2d348 100644
--- a/debian/patches/0020-Move-XnSensorServer-to-usr-lib-libopenni-sensor-prim.patch
+++ b/debian/patches/0008-Move-XnSensorServer-to-usr-lib-libopenni-sensor-prim.patch
@@ -3,7 +3,7 @@ Date: Thu, 20 Dec 2012 20:33:14 +0100
Subject: Move XnSensorServer to /usr/lib/libopenni-sensor-primesense0
---
- Source/XnDeviceSensorV2/XnSensorClient.cpp | 2 +-
+ Source/XnDeviceSensorV2/XnSensorClient.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/XnDeviceSensorV2/XnSensorClient.cpp b/Source/XnDeviceSensorV2/XnSensorClient.cpp
diff --git a/debian/patches/0009-Test-for-y-value-in-registration.patch b/debian/patches/0009-Test-for-y-value-in-registration.patch
deleted file mode 100644
index f1eca68..0000000
--- a/debian/patches/0009-Test-for-y-value-in-registration.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:42:43 +0100
-Subject: Test for y value in registration
-
-taken from https://kforge.ros.org/openni/drivers
----
- Source/XnDeviceSensorV2/Registration.cpp | 19 +++++++++++++++++--
- 1 file changed, 17 insertions(+), 2 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/Registration.cpp b/Source/XnDeviceSensorV2/Registration.cpp
-index 4f85eee..1ad0435 100644
---- a/Source/XnDeviceSensorV2/Registration.cpp
-+++ b/Source/XnDeviceSensorV2/Registration.cpp
-@@ -472,13 +472,28 @@ void XnRegistration::Apply1000(XnDepthPixel* pInput, XnDepthPixel* pOutput)
- nNewX = (XnInt32)(XnDouble(*pRegTable)/XN_REG_X_SCALE + XnInt32(pDepth2ShiftTable[nValue]/XN_REG_PARAB_COEFF - nConstShift) * dShiftFactor);
- nNewY = *(pRegTable+1);
-
-- if ((XnUInt32)nNewX-1 < (XnUInt32)nDepthXRes-1)
-+ if ((XnUInt32)nNewX-1 < (XnUInt32)nDepthXRes-1 && (XnUInt32)nNewY <(XnUInt32) nDepthYRes)
- {
- nArrPos = nNewY * nDepthXRes + nNewX;
- nOutValue = pOutput[nArrPos];
-
- if (nOutValue == 0 || nOutValue > nValue)
- {
-+ if ( nNewX > 0 && nNewY > 0 )
-+ {
-+ pOutput[nArrPos-nDepthXRes] = nValue;
-+ pOutput[nArrPos-nDepthXRes-1] = nValue;
-+ pOutput[nArrPos-1] = nValue;
-+ }
-+ else if( nNewY > 0 )
-+ {
-+ pOutput[nArrPos-nDepthXRes] = nValue;
-+ }
-+ else if( nNewX > 0 )
-+ {
-+ pOutput[nArrPos-1] = nValue;
-+ }
-+
- pOutput[nArrPos] = nValue;
- pOutput[nArrPos-1] = nValue;
- pOutput[nArrPos-nDepthXRes] = nValue;
-@@ -523,7 +538,7 @@ void XnRegistration::Apply1080(XnDepthPixel* pInput, XnDepthPixel* pOutput)
- nNewX = (XnUInt32)(*pRegTable + pRGBRegDepthToShiftTable[nValue]) / RGB_REG_X_VAL_SCALE;
- nNewY = *(pRegTable+1);
-
-- if (nNewX < nDepthXRes)
-+ if (nNewX < nDepthXRes && nNewY < nDepthYRes)
- {
- nArrPos = bMirror ? (nNewY+1)*nDepthXRes - nNewX : (nNewY*nDepthXRes) + nNewX;
- nArrPos -= nConstOffset;
diff --git a/debian/patches/0010-Change-host-protocol.patch b/debian/patches/0010-Change-host-protocol.patch
deleted file mode 100644
index c706a28..0000000
--- a/debian/patches/0010-Change-host-protocol.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:43:10 +0100
-Subject: Change host protocol
-
-taken from https://github.com/avin2/SensorKinect
----
- Source/XnDeviceSensorV2/XnSensorDepthStream.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Source/XnDeviceSensorV2/XnSensorDepthStream.cpp b/Source/XnDeviceSensorV2/XnSensorDepthStream.cpp
-index 5c2ed2e..f9a0c9f 100644
---- a/Source/XnDeviceSensorV2/XnSensorDepthStream.cpp
-+++ b/Source/XnDeviceSensorV2/XnSensorDepthStream.cpp
-@@ -319,6 +319,7 @@ XnStatus XnSensorDepthStream::ConfigureStreamImpl()
- nRetVal = m_Helper.GetCmosInfo()->SetCmosConfig(XN_CMOS_TYPE_DEPTH, GetResolution(), GetFPS());
- XN_IS_STATUS_OK(nRetVal);
-
-+ XnHostProtocolSetParam(GetHelper()->GetPrivateData(), 0x105, 0);
- return XN_STATUS_OK;
- }
-
diff --git a/debian/patches/0011-Add-and-enable-uncompressed-Bayer-modes.patch b/debian/patches/0011-Add-and-enable-uncompressed-Bayer-modes.patch
deleted file mode 100644
index cc23002..0000000
--- a/debian/patches/0011-Add-and-enable-uncompressed-Bayer-modes.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:43:44 +0100
-Subject: Add and enable (uncompressed) Bayer modes
-
-taken from https://kforge.ros.org/openni/drivers
----
- Source/XnDeviceSensorV2/XnHostProtocol.h | 4 +--
- Source/XnDeviceSensorV2/XnSensorDepthStream.h | 6 ++---
- Source/XnDeviceSensorV2/XnSensorImageStream.cpp | 33 ++++++++++++++++++++++-
- Source/XnDeviceSensorV2/XnSensorImageStream.h | 6 ++---
- 4 files changed, 40 insertions(+), 9 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/XnHostProtocol.h b/Source/XnDeviceSensorV2/XnHostProtocol.h
-index 36721c8..e04f2b4 100644
---- a/Source/XnDeviceSensorV2/XnHostProtocol.h
-+++ b/Source/XnDeviceSensorV2/XnHostProtocol.h
-@@ -108,8 +108,8 @@ enum EPsProtocolOpCodes_V017
- typedef enum
- {
- XN_HOST_PROTOCOL_ALGORITHM_DEPTH_INFO = 0x00,
-- XN_HOST_PROTOCOL_ALGORITHM_REGISTRATION = 0x02,
-- XN_HOST_PROTOCOL_ALGORITHM_PADDING = 0x03,
-+ XN_HOST_PROTOCOL_ALGORITHM_REGISTRATION = 0x40,
-+ XN_HOST_PROTOCOL_ALGORITHM_PADDING = 0x41,
- XN_HOST_PROTOCOL_ALGORITHM_BLANKING = 0x06,
- XN_HOST_PROTOCOL_ALGORITHM_DEVICE_INFO = 0x07,
- XN_HOST_PROTOCOL_ALGORITHM_FREQUENCY = 0x80
-diff --git a/Source/XnDeviceSensorV2/XnSensorDepthStream.h b/Source/XnDeviceSensorV2/XnSensorDepthStream.h
-index 7ac329a..737ec68 100644
---- a/Source/XnDeviceSensorV2/XnSensorDepthStream.h
-+++ b/Source/XnDeviceSensorV2/XnSensorDepthStream.h
-@@ -36,11 +36,11 @@
- // Defines
- //---------------------------------------------------------------------------
- #define XN_DEPTH_STREAM_DEFAULT_INPUT_FORMAT XN_IO_DEPTH_FORMAT_UNCOMPRESSED_11_BIT
--#define XN_DEPTH_STREAM_DEFAULT_RESOLUTION XN_RESOLUTION_QVGA
-+#define XN_DEPTH_STREAM_DEFAULT_RESOLUTION XN_RESOLUTION_VGA
- #define XN_DEPTH_STREAM_DEFAULT_FPS 30
- #define XN_DEPTH_STREAM_DEFAULT_OUTPUT_FORMAT XN_OUTPUT_FORMAT_DEPTH_VALUES
- #define XN_DEPTH_STREAM_DEFAULT_REGISTRATION FALSE
--#define XN_DEPTH_STREAM_DEFAULT_REGISTRATION_TYPE XN_PROCESSING_DONT_CARE
-+#define XN_DEPTH_STREAM_DEFAULT_REGISTRATION_TYPE XN_PROCESSING_SOFTWARE
- #define XN_DEPTH_STREAM_DEFAULT_HOLE_FILLER TRUE
- #define XN_DEPTH_STREAM_DEFAULT_WHITE_BALANCE TRUE
- #define XN_DEPTH_STREAM_DEFAULT_GAIN_OLD 50
-@@ -162,4 +162,4 @@ private:
- XnCallbackHandle m_hReferenceSizeChangedCallback;
- };
-
--#endif //__XN_SENSOR_DEPTH_STREAM_H__
-\ No newline at end of file
-+#endif //__XN_SENSOR_DEPTH_STREAM_H__
-diff --git a/Source/XnDeviceSensorV2/XnSensorImageStream.cpp b/Source/XnDeviceSensorV2/XnSensorImageStream.cpp
-index 23f25a5..8c17b11 100644
---- a/Source/XnDeviceSensorV2/XnSensorImageStream.cpp
-+++ b/Source/XnDeviceSensorV2/XnSensorImageStream.cpp
-@@ -214,6 +214,14 @@ XnStatus XnSensorImageStream::Init()
- nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_YUV422, XN_RESOLUTION_VGA, 30);
- XN_IS_STATUS_OK(nRetVal);
-
-+ // Enable Bayer images
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_BAYER, XN_RESOLUTION_QVGA, 30);
-+ XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_BAYER, XN_RESOLUTION_QVGA, 60);
-+ XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_BAYER, XN_RESOLUTION_VGA, 30);
-+ XN_IS_STATUS_OK(nRetVal);
-+
- // add uncompressed ones
- if (bUncompressedAllowed)
- {
-@@ -223,6 +231,16 @@ XnStatus XnSensorImageStream::Init()
- XN_IS_STATUS_OK(nRetVal);
- nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_VGA, 30);
- XN_IS_STATUS_OK(nRetVal);
-+
-+ // Enable umcompressed Bayer
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER, XN_RESOLUTION_SXGA, 15);
-+ XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER, XN_RESOLUTION_VGA, 30);
-+ XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER, XN_RESOLUTION_QVGA, 60);
-+ XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER, XN_RESOLUTION_QVGA, 30);
-+ XN_IS_STATUS_OK(nRetVal);
- }
-
- // starting with FW 5.1, 25 FPS is also supported
-@@ -232,13 +250,22 @@ XnStatus XnSensorImageStream::Init()
- XN_IS_STATUS_OK(nRetVal);
- nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_YUV422, XN_RESOLUTION_VGA, 25);
- XN_IS_STATUS_OK(nRetVal);
--
-+ // Enable Bayer
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_BAYER, XN_RESOLUTION_QVGA, 25);
-+ XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_BAYER, XN_RESOLUTION_VGA, 25);
-+ XN_IS_STATUS_OK(nRetVal);
-+
- if (bUncompressedAllowed)
- {
- nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_QVGA, 25);
- XN_IS_STATUS_OK(nRetVal);
- nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_VGA, 25);
- XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER, XN_RESOLUTION_QVGA, 25);
-+ XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER, XN_RESOLUTION_VGA, 25);
-+ XN_IS_STATUS_OK(nRetVal);
- }
- }
-
-@@ -255,11 +282,15 @@ XnStatus XnSensorImageStream::Init()
- {
- nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_YUV422, XN_RESOLUTION_SXGA, 30);
- XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_BAYER, XN_RESOLUTION_SXGA, 30);
-+ XN_IS_STATUS_OK(nRetVal);
-
- if (bUncompressedAllowed)
- {
- nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_SXGA, 30);
- XN_IS_STATUS_OK(nRetVal);
-+ nRetVal = AddSupportedMode(supportedModes, XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER, XN_RESOLUTION_SXGA, 30);
-+ XN_IS_STATUS_OK(nRetVal);
- }
- }
- }
-diff --git a/Source/XnDeviceSensorV2/XnSensorImageStream.h b/Source/XnDeviceSensorV2/XnSensorImageStream.h
-index 94bc3a5..be9091f 100644
---- a/Source/XnDeviceSensorV2/XnSensorImageStream.h
-+++ b/Source/XnDeviceSensorV2/XnSensorImageStream.h
-@@ -33,8 +33,8 @@
- // Defines
- //---------------------------------------------------------------------------
- #define XN_IMAGE_STREAM_DEFAULT_FPS 30
--#define XN_IMAGE_STREAM_DEFAULT_RESOLUTION XN_RESOLUTION_QVGA
--#define XN_IMAGE_STREAM_DEFAULT_INPUT_FORMAT XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422
-+#define XN_IMAGE_STREAM_DEFAULT_RESOLUTION XN_RESOLUTION_VGA
-+#define XN_IMAGE_STREAM_DEFAULT_INPUT_FORMAT XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER
- #define XN_IMAGE_STREAM_DEFAULT_OUTPUT_FORMAT XN_OUTPUT_FORMAT_RGB24
- #define XN_IMAGE_STREAM_DEFAULT_FLICKER 0
- #define XN_IMAGE_STREAM_DEFAULT_QUALITY 3
-@@ -169,4 +169,4 @@ private:
- XnActualIntProperty m_ActualRead;
- };
-
--#endif //__XN_SENSOR_IMAGE_STREAM_H__
-\ No newline at end of file
-+#endif //__XN_SENSOR_IMAGE_STREAM_H__
diff --git a/debian/patches/0012-Add-ROS-code-for-improved-Bayer-Pattern-to-RGB-conve.patch b/debian/patches/0012-Add-ROS-code-for-improved-Bayer-Pattern-to-RGB-conve.patch
deleted file mode 100644
index 50f3ff8..0000000
--- a/debian/patches/0012-Add-ROS-code-for-improved-Bayer-Pattern-to-RGB-conve.patch
+++ /dev/null
@@ -1,1286 +0,0 @@
-From: Jochen Sprickerhof <jochen at sprickerhof.de>
-Date: Tue, 6 Nov 2012 20:44:06 +0100
-Subject: Add ROS code for improved Bayer Pattern to RGB conversion
-
-taken from https://kforge.ros.org/openni/drivers
----
- Source/XnDeviceSensorV2/Bayer.cpp | 1233 +++++++++++++++++++++++++++++++++++--
- 1 file changed, 1168 insertions(+), 65 deletions(-)
-
-diff --git a/Source/XnDeviceSensorV2/Bayer.cpp b/Source/XnDeviceSensorV2/Bayer.cpp
-index 43666ad..3190857 100644
---- a/Source/XnDeviceSensorV2/Bayer.cpp
-+++ b/Source/XnDeviceSensorV2/Bayer.cpp
-@@ -20,104 +20,1207 @@
- * *
- ****************************************************************************/
- //---------------------------------------------------------------------------
-+/****************************************************************************
-+ * Edited 12.04.2011 by Raphael Dumusc *
-+ * Incorporated ROS code for improved Bayer Pattern to RGB conversion. *
-+ ***************************************************************************/
- // Includes
-+ /*
-+ The ROS bayer pattern to RGB conversion
-+ Modified to be used in Avin's mod of the Primesense driver.
-+ Original code available here:
-+ http://www.ros.org/doc/api/openni_camera/html/openni__image__bayer__grbg_8cpp_source.html
-+*/
-+
-+/*
-+ * Software License Agreement (BSD License)
-+ *
-+ * Copyright (c) 2011 2011 Willow Garage, Inc.
-+ * Suat Gedikli <gedikli at willowgarage.com>
-+ *
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * * Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * * Redistributions in binary form must reproduce the above
-+ * copyright notice, this list of conditions and the following
-+ * disclaimer in the documentation and/or other materials provided
-+ * with the distribution.
-+ * * Neither the name of Willow Garage, Inc. nor the names of its
-+ * contributors may be used to endorse or promote products derived
-+ * from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-+ * POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ */
- //---------------------------------------------------------------------------
- #include "Bayer.h"
--#include <math.h>
-+#include <sstream>
-+#include <iostream>
-
-+#define AVG(a,b) (((int)(a) + (int)(b)) >> 1)
-+#define AVG3(a,b,c) (((int)(a) + (int)(b) + (int)(c)) / 3)
-+#define AVG4(a,b,c,d) (((int)(a) + (int)(b) + (int)(c) + (int)(d)) >> 2)
-+#define WAVG4(a,b,c,d,x,y) ( ( ((int)(a) + (int)(b)) * (int)(x) + ((int)(c) + (int)(d)) * (int)(y) ) / ( 2 * ((int)(x) + (int(y))) ) )
-+using namespace std;
- //---------------------------------------------------------------------------
-+typedef enum
-+{
-+ Bilinear = 0,
-+ EdgeAware,
-+ EdgeAwareWeighted
-+} DebayeringMethod;
- // Global Variables
-+void BayerUpdateGamma(float fGammaCorr)
-+{
-+}
- //---------------------------------------------------------------------------
--XnUInt8 Gamma[256] = {
-- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
-- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
-- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
-- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
-- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
-- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
-- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
-- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
-- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
-- 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
-- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255};
-+void fillRGB(unsigned width, unsigned height, const XnUInt8* bayer_pixel, unsigned char* rgb_buffer, DebayeringMethod debayering_method, XnUInt32 nDownSampleStep)
-+{
-
-+ unsigned rgb_line_step = width * 3;
- //---------------------------------------------------------------------------
- // Code
-+ unsigned rgb_line_skip = rgb_line_step - width * 3;
- //---------------------------------------------------------------------------
--void BayerUpdateGamma(float fGammaCorr)
-+ if (nDownSampleStep == 1)
- {
-- for(XnUInt32 iG = 0; iG < 256;++iG)
-- Gamma[iG] = XnUInt8(255*pow(XnDouble(iG)/255.0,(XnDouble)fGammaCorr) + 0.5);
-+ //register const XnUInt8 *bayer_pixel = image_md_->Data ();
-+ register unsigned yIdx, xIdx;
-+
-+ int bayer_line_step = width;
-+ int bayer_line_step2 = width << 1;
-+
-+ if (debayering_method == Bilinear)
-+ {
-+ // first two pixel values for first two lines
-+ // Bayer 0 1 2
-+ // 0 G r g
-+ // line_step b g b
-+ // line_step2 g r g
-+
-+ rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[rgb_line_step + 2] = rgb_buffer[2] = bayer_pixel[bayer_line_step]; // blue;
-+
-+ // Bayer 0 1 2
-+ // 0 g R g
-+ // line_step b g b
-+ // line_step2 g r g
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // 0 g r g
-+ // line_step B g b
-+ // line_step2 g r g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[bayer_line_step2]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // pixel (1, 1) 0 1 2
-+ // 0 g r g
-+ // line_step b G b
-+ // line_step2 g r g
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = AVG( bayer_pixel[line_step] , bayer_pixel[line_step+2] );
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // rest of the first two lines
-+
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
-+ {
-+ // GRGR line
-+ // Bayer -1 0 1 2
-+ // 0 r G r g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = bayer_pixel[bayer_line_step + 1];
-+
-+ // Bayer -1 0 1 2
-+ // 0 r g R g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer -1 0 1 2
-+ // 0 r g r g
-+ // line_step g B g b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1 2
-+ // 0 r g r g
-+ // line_step g b G b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = AVG( bayer_pixel[line_step] , bayer_pixel[line_step+2] );
- }
-
--static inline void WriteRGB(XnUInt8 *pBuffer, XnUInt8 nRed, XnUInt8 nGreen, XnUInt8 nBlue)
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // 0 r G r
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = rgb_buffer[5] = rgb_buffer[2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g R
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[5] = bayer_pixel[line_step];
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g B g
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g b G
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+
-+ bayer_pixel += bayer_line_step + 2;
-+ rgb_buffer += rgb_line_step + 6 + rgb_line_skip;
-+
-+ // main processing
-+
-+ for (yIdx = 2; yIdx < height - 2; yIdx += 2)
- {
-- pBuffer[BAYER_RED] = Gamma[nRed];
-- pBuffer[BAYER_GREEN] = Gamma[nGreen];
-- pBuffer[BAYER_BLUE] = Gamma[nBlue];
-+ // first two pixel values
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 G r g
-+ // line_step b g b
-+ // line_step2 g r g
-+
-+ rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]); // blue;
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g R g
-+ // line_step b g b
-+ // line_step2 g r g
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // 0 g r g
-+ // line_step B g b
-+ // line_step2 g r g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[bayer_line_step2]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // pixel (1, 1) 0 1 2
-+ // 0 g r g
-+ // line_step b G b
-+ // line_step2 g r g
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // continue with rest of the line
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
-+ {
-+ // GRGR line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r G r g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g R g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step], bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g B g b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g b G b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
- }
-
--void Bayer2RGB888(const XnUInt8* pBayerImage, XnUInt8* pRGBImage, XnUInt32 nXRes, XnUInt32 nYRes, XnUInt32 /*nDownSampleStep*/, XnUInt32 nBadPixels)
-+ // last two pixels of the line
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // 0 r G r
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = rgb_buffer[5] = rgb_buffer[2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g R
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[5] = bayer_pixel[line_step];
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g B g
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g b G
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+
-+ bayer_pixel += bayer_line_step + 2;
-+ rgb_buffer += rgb_line_step + 6 + rgb_line_skip;
-+ }
-+
-+ //last two lines
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 G r g
-+ // line_step b g b
-+
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[rgb_line_step + 2] = rgb_buffer[2] = bayer_pixel[bayer_line_step]; // blue;
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g R g
-+ // line_step b g b
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g r g
-+ // line_step B g b
-+ //rgb_pixel[rgb_line_step ] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 1] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g r g
-+ // line_step b G b
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // rest of the last two lines
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
- {
-- XnUInt8 nRed;
-- XnUInt8 nGreen;
-- XnUInt8 nBlue;
-- const XnUInt8* pBayer;
-- XnUInt8* pRGB;
-
- //if (nBadPixels > 1)
- //{
- //nBadPixels = 1;
- //}
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+
-
-- XnInt32 BAYER_LINE_LENGTH = nXRes;
-- XnInt32 BAYER_LINE_LENGTH2 = BAYER_LINE_LENGTH*2;
-- XnInt32 BAYER_RGB_LINE_LENGTH = nXRes*BAYER_BPP;
-- XnInt32 BAYER_RGB_LINE_LENGTH2 = BAYER_RGB_LINE_LENGTH*2;
-
-- const XnUInt8* pCurrBayer;
-- XnUInt8* pCurrRGB;
-- XnUInt32 nColCount;
-- XnUInt32 nTotalColsCount = (nXRes-2) / 2;
-- XnUInt32 nTotalRowsCount = (nYRes-4) / 2;
-
-- pBayer = pBayerImage + BAYER_LINE_LENGTH - nBadPixels;
-- pRGB = pRGBImage + BAYER_RGB_LINE_LENGTH;
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[-bayer_line_step + 2]);
-
-- do {
-- pCurrBayer = pBayer+ 1;
-- pCurrRGB = pRGB + BAYER_BPP;
-
-- nColCount = nTotalColsCount;
-
-- do {
-
-- nRed = ((XnUInt32)pCurrBayer[-BAYER_LINE_LENGTH]+pCurrBayer[BAYER_LINE_LENGTH]) / 2;
-- nBlue = ((XnUInt32)pCurrBayer[-1]+pCurrBayer[1]) / 2;
-- WriteRGB(pCurrRGB+0, nRed, pCurrBayer[0], nBlue);
-
-- nRed = ((XnUInt32)pCurrBayer[-BAYER_LINE_LENGTH+2]+pCurrBayer[BAYER_LINE_LENGTH+2]) / 2;
-- nGreen = ((XnUInt32)pCurrBayer[0]+pCurrBayer[2]) / 2;
-- WriteRGB(pCurrRGB+BAYER_BPP, nRed, nGreen, pCurrBayer[1]);
-
-- nGreen = ((XnUInt32)pCurrBayer[BAYER_LINE_LENGTH-1]+pCurrBayer[BAYER_LINE_LENGTH+1]) / 2;
-- nBlue = ((XnUInt32)pCurrBayer[BAYER_LINE_LENGTH2-1]+pCurrBayer[BAYER_LINE_LENGTH2+1]) / 2;
-- WriteRGB(pCurrRGB+BAYER_RGB_LINE_LENGTH, pCurrBayer[BAYER_LINE_LENGTH], nGreen, nBlue);
-+ rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[-1], bayer_pixel[1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g b G b
-+ //rgb_pixel[rgb_line_step + 3] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+}
-+
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r G r
-+ // line_step g b g
-+ rgb_buffer[rgb_line_step ] = rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[5] = rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g R
-+ // line_step g b g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[-bayer_line_step + 1]);
-+ //rgb_pixel[5] = AVG( bayer_pixel[line_step], bayer_pixel[-line_step] );
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g r
-+ // line_step g B g
-+ //rgb_pixel[rgb_line_step ] = AVG2( bayer_pixel[-1], bayer_pixel[1] );
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g r
-+ // line_step g b G
-+ //rgb_pixel[rgb_line_step + 3] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+ }
-+ else if (debayering_method == EdgeAware)
-+ {
-+ int dh, dv;
-+
-+ // first two pixel values for first two lines
-+ // Bayer 0 1 2
-+ // 0 G r g
-+ // line_step b g b
-+ // line_step2 g r g
-+
-+ rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[rgb_line_step + 2] = rgb_buffer[2] = bayer_pixel[bayer_line_step]; // blue;
-+
-+ // Bayer 0 1 2
-+ // 0 g R g
-+ // line_step b g b
-+ // line_step2 g r g
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // 0 g r g
-+ // line_step B g b
-+ // line_step2 g r g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[bayer_line_step2]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // pixel (1, 1) 0 1 2
-+ // 0 g r g
-+ // line_step b G b
-+ // line_step2 g r g
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = AVG( bayer_pixel[line_step] , bayer_pixel[line_step+2] );
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // rest of the first two lines
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
-+ {
-+ // GRGR line
-+ // Bayer -1 0 1 2
-+ // 0 r G r g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = bayer_pixel[bayer_line_step + 1];
-+
-+ // Bayer -1 0 1 2
-+ // 0 r g R g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer -1 0 1 2
-+ // 0 r g r g
-+ // line_step g B g b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1 2
-+ // 0 r g r g
-+ // line_step g b G b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = AVG( bayer_pixel[line_step] , bayer_pixel[line_step+2] );
-+ }
-+
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // 0 r G r
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = rgb_buffer[5] = rgb_buffer[2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g R
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[5] = bayer_pixel[line_step];
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g B g
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g b G
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+
-+ bayer_pixel += bayer_line_step + 2;
-+ rgb_buffer += rgb_line_step + 6 + rgb_line_skip;
-+ // main processing
-+ for (yIdx = 2; yIdx < height - 2; yIdx += 2)
-+ {
-+ // first two pixel values
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 G r g
-+ // line_step b g b
-+ // line_step2 g r g
-+
-+ rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]); // blue;
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g R g
-+ // line_step b g b
-+ // line_step2 g r g
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // 0 g r g
-+ // line_step B g b
-+ // line_step2 g r g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[bayer_line_step2]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // pixel (1, 1) 0 1 2
-+ // 0 g r g
-+ // line_step b G b
-+ // line_step2 g r g
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // continue with rest of the line
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
-+ {
-+ // GRGR line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r G r g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g R g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+
-+ dh = abs (bayer_pixel[0] - bayer_pixel[2]);
-+ dv = abs (bayer_pixel[-bayer_line_step + 1] - bayer_pixel[bayer_line_step + 1]);
-+
-+ if (dh > dv)
-+ rgb_buffer[4] = AVG (bayer_pixel[-bayer_line_step + 1], bayer_pixel[bayer_line_step + 1]);
-+ else if (dv > dh)
-+ rgb_buffer[4] = AVG (bayer_pixel[0], bayer_pixel[2]);
-+ else
-+ rgb_buffer[4] = AVG4 (bayer_pixel[-bayer_line_step + 1], bayer_pixel[bayer_line_step + 1], bayer_pixel[0], bayer_pixel[2]);
-+
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[5] = AVG4 (bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step], bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g B g b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ dv = abs (bayer_pixel[0] - bayer_pixel[bayer_line_step2]);
-+ dh = abs (bayer_pixel[bayer_line_step - 1] - bayer_pixel[bayer_line_step + 1]);
-+
-+ if (dv > dh)
-+ rgb_buffer[rgb_line_step + 1] = AVG (bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ else if (dh > dv)
-+ rgb_buffer[rgb_line_step + 1] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step2]);
-+ else
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g b G b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+ }
-+
-+ // last two pixels of the line
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // 0 r G r
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = rgb_buffer[5] = rgb_buffer[2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g R
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[5] = bayer_pixel[line_step];
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g B g
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g b G
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+
-+ bayer_pixel += bayer_line_step + 2;
-+ rgb_buffer += rgb_line_step + 6 + rgb_line_skip;
-+ }
-+
-+ //last two lines
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 G r g
-+ // line_step b g b
-+
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[rgb_line_step + 2] = rgb_buffer[2] = bayer_pixel[bayer_line_step]; // blue;
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g R g
-+ // line_step b g b
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g r g
-+ // line_step B g b
-+ //rgb_pixel[rgb_line_step ] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 1] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g r g
-+ // line_step b G b
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // rest of the last two lines
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
-+ {
-+ // GRGR line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r G r g
-+ // line_step g b g b
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g R g
-+ // line_step g b g b
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[-bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g B g b
-+ rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[-1], bayer_pixel[1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g b G b
-+ //rgb_pixel[rgb_line_step + 3] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+ }
-+
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r G r
-+ // line_step g b g
-+ rgb_buffer[rgb_line_step ] = rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[5] = rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g R
-+ // line_step g b g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[-bayer_line_step + 1]);
-+ //rgb_pixel[5] = AVG( bayer_pixel[line_step], bayer_pixel[-line_step] );
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g r
-+ // line_step g B g
-+ //rgb_pixel[rgb_line_step ] = AVG2( bayer_pixel[-1], bayer_pixel[1] );
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g r
-+ // line_step g b G
-+ //rgb_pixel[rgb_line_step + 3] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+ }
-+ else if (debayering_method == EdgeAwareWeighted)
-+ {
-+ int dh, dv;
-+
-+ // first two pixel values for first two lines
-+ // Bayer 0 1 2
-+ // 0 G r g
-+ // line_step b g b
-+ // line_step2 g r g
-+
-+ rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[rgb_line_step + 2] = rgb_buffer[2] = bayer_pixel[bayer_line_step]; // blue;
-+
-+ // Bayer 0 1 2
-+ // 0 g R g
-+ // line_step b g b
-+ // line_step2 g r g
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // 0 g r g
-+ // line_step B g b
-+ // line_step2 g r g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[bayer_line_step2]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // pixel (1, 1) 0 1 2
-+ // 0 g r g
-+ // line_step b G b
-+ // line_step2 g r g
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = AVG( bayer_pixel[line_step] , bayer_pixel[line_step+2] );
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // rest of the first two lines
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
-+ {
-+ // GRGR line
-+ // Bayer -1 0 1 2
-+ // 0 r G r g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = bayer_pixel[bayer_line_step + 1];
-+
-+ // Bayer -1 0 1 2
-+ // 0 r g R g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer -1 0 1 2
-+ // 0 r g r g
-+ // line_step g B g b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1 2
-+ // 0 r g r g
-+ // line_step g b G b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = AVG( bayer_pixel[line_step] , bayer_pixel[line_step+2] );
-+ }
-+
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // 0 r G r
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = rgb_buffer[5] = rgb_buffer[2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g R
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[5] = bayer_pixel[line_step];
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g B g
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g b G
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+
-+ bayer_pixel += bayer_line_step + 2;
-+ rgb_buffer += rgb_line_step + 6 + rgb_line_skip;
-+ // main processing
-+ for (yIdx = 2; yIdx < height - 2; yIdx += 2)
-+ {
-+ // first two pixel values
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 G r g
-+ // line_step b g b
-+ // line_step2 g r g
-+
-+ rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]); // blue;
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g R g
-+ // line_step b g b
-+ // line_step2 g r g
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // 0 g r g
-+ // line_step B g b
-+ // line_step2 g r g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[bayer_line_step2]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // pixel (1, 1) 0 1 2
-+ // 0 g r g
-+ // line_step b G b
-+ // line_step2 g r g
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // continue with rest of the line
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
-+ {
-+ // GRGR line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r G r g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g R g
-+ // line_step g b g b
-+ // line_step2 r g r g
-+
-+ dh = abs (bayer_pixel[0] - bayer_pixel[2]);
-+ dv = abs (bayer_pixel[-bayer_line_step + 1] - bayer_pixel[bayer_line_step + 1]);
-+
-+ if (dv == 0 && dh == 0)
-+ rgb_buffer[4] = AVG4 (bayer_pixel[1 - bayer_line_step], bayer_pixel[1 + bayer_line_step], bayer_pixel[0], bayer_pixel[2]);
-+ else
-+ rgb_buffer[4] = WAVG4 (bayer_pixel[1 - bayer_line_step], bayer_pixel[1 + bayer_line_step], bayer_pixel[0], bayer_pixel[2], dh, dv);
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[5] = AVG4 (bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step], bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g B g b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ dv = abs (bayer_pixel[0] - bayer_pixel[bayer_line_step2]);
-+ dh = abs (bayer_pixel[bayer_line_step - 1] - bayer_pixel[bayer_line_step + 1]);
-+
-+ if (dv == 0 && dh == 0)
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ else
-+ rgb_buffer[rgb_line_step + 1] = WAVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1], dh, dv);
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g b G b
-+ // line_step2 r g r g
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+ }
-+
-+ // last two pixels of the line
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // 0 r G r
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = rgb_buffer[5] = rgb_buffer[2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g R
-+ // line_step g b g
-+ // line_step2 r g r
-+ rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[5] = bayer_pixel[line_step];
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g B g
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step ] = AVG4 (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1], bayer_pixel[-1], bayer_pixel[bayer_line_step2 - 1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG4 (bayer_pixel[0], bayer_pixel[bayer_line_step2], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ //rgb_pixel[rgb_line_step + 2] = bayer_pixel[line_step];
-+
-+ // Bayer -1 0 1
-+ // 0 r g r
-+ // line_step g b G
-+ // line_step2 r g r
-+ rgb_buffer[rgb_line_step + 3] = AVG (bayer_pixel[1], bayer_pixel[bayer_line_step2 + 1]);
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+
-+ bayer_pixel += bayer_line_step + 2;
-+ rgb_buffer += rgb_line_step + 6 + rgb_line_skip;
-+ }
-+
-+ //last two lines
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 G r g
-+ // line_step b g b
-+
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[rgb_line_step ] = rgb_buffer[3] = rgb_buffer[0] = bayer_pixel[1]; // red pixel
-+ rgb_buffer[1] = bayer_pixel[0]; // green pixel
-+ rgb_buffer[rgb_line_step + 2] = rgb_buffer[2] = bayer_pixel[bayer_line_step]; // blue;
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g R g
-+ // line_step b g b
-+ //rgb_pixel[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[2 - bayer_line_step]);
-+
-+ // BGBG line
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g r g
-+ // line_step B g b
-+ //rgb_pixel[rgb_line_step ] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 1] = AVG (bayer_pixel[0], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer 0 1 2
-+ // -1 b g b
-+ // 0 g r g
-+ // line_step b G b
-+ //rgb_pixel[rgb_line_step + 3] = AVG( bayer_pixel[1] , bayer_pixel[line_step2+1] );
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+
-+ rgb_buffer += 6;
-+ bayer_pixel += 2;
-+ // rest of the last two lines
-+ for (xIdx = 2; xIdx < width - 2; xIdx += 2, rgb_buffer += 6, bayer_pixel += 2)
-+ {
-+ // GRGR line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r G r g
-+ // line_step g b g b
-+ rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g R g
-+ // line_step g b g b
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG4 (bayer_pixel[0], bayer_pixel[2], bayer_pixel[bayer_line_step + 1], bayer_pixel[1 - bayer_line_step]);
-+ rgb_buffer[5] = AVG4 (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2], bayer_pixel[-bayer_line_step], bayer_pixel[-bayer_line_step + 2]);
-+
-+ // BGBG line
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g B g b
-+ rgb_buffer[rgb_line_step ] = AVG (bayer_pixel[-1], bayer_pixel[1]);
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+
-+ // Bayer -1 0 1 2
-+ // -1 g b g b
-+ // 0 r g r g
-+ // line_step g b G b
-+ //rgb_pixel[rgb_line_step + 3] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ rgb_buffer[rgb_line_step + 5] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[bayer_line_step + 2]);
-+ }
-+
-+ // last two pixel values for first two lines
-+ // GRGR line
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r G r
-+ // line_step g b g
-+ rgb_buffer[rgb_line_step ] = rgb_buffer[0] = AVG (bayer_pixel[1], bayer_pixel[-1]);
-+ rgb_buffer[1] = bayer_pixel[0];
-+ rgb_buffer[5] = rgb_buffer[2] = AVG (bayer_pixel[bayer_line_step], bayer_pixel[-bayer_line_step]);
-+
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g R
-+ // line_step g b g
-+ rgb_buffer[rgb_line_step + 3] = rgb_buffer[3] = bayer_pixel[1];
-+ rgb_buffer[4] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step + 1], bayer_pixel[-bayer_line_step + 1]);
-+ //rgb_pixel[5] = AVG( bayer_pixel[line_step], bayer_pixel[-line_step] );
-+
-+ // BGBG line
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g r
-+ // line_step g B g
-+ //rgb_pixel[rgb_line_step ] = AVG2( bayer_pixel[-1], bayer_pixel[1] );
-+ rgb_buffer[rgb_line_step + 1] = AVG3 (bayer_pixel[0], bayer_pixel[bayer_line_step - 1], bayer_pixel[bayer_line_step + 1]);
-+ rgb_buffer[rgb_line_step + 5] = rgb_buffer[rgb_line_step + 2] = bayer_pixel[bayer_line_step];
-+
-+ // Bayer -1 0 1
-+ // -1 g b g
-+ // 0 r g r
-+ // line_step g b G
-+ //rgb_pixel[rgb_line_step + 3] = bayer_pixel[1];
-+ rgb_buffer[rgb_line_step + 4] = bayer_pixel[bayer_line_step + 1];
-+ //rgb_pixel[rgb_line_step + 5] = bayer_pixel[line_step];
-+ }
-+ //else
-+ // THROW_OPENNI_EXCEPTION ("Unknwon debayering method: %d", (int)debayering_method);
-+ }
-+ //Warning: Downsampling mod is untested
-+ else if (nDownSampleStep > 1)
-+ {
-+ // get each or each 2nd pixel group to find rgb values!
-+ register unsigned bayerXStep = nDownSampleStep;
-+ register unsigned bayerYSkip = (nDownSampleStep - 1) * width;
-+
-+ // Downsampling and debayering at once
-+ register const XnUInt8* bayer_buffer = bayer_pixel;
-+
-+ for (register unsigned yIdx = 0; yIdx < height; ++yIdx, bayer_buffer += bayerYSkip, rgb_buffer += rgb_line_skip) // skip a line
-+ {
-+ for (register unsigned xIdx = 0; xIdx < width; ++xIdx, rgb_buffer += 3, bayer_buffer += bayerXStep)
-+ {
-+ rgb_buffer[ 2 ] = bayer_buffer[ width ];
-+ rgb_buffer[ 1 ] = AVG (bayer_buffer[0], bayer_buffer[ width + 1]);
-+ rgb_buffer[ 0 ] = bayer_buffer[ 1 ];
-+ }
-+ }
-+ }
-+}
-
-- nRed = ((XnUInt32)pCurrBayer[BAYER_LINE_LENGTH]+pCurrBayer[BAYER_LINE_LENGTH+2]) / 2;
-- nBlue = ((XnUInt32)pCurrBayer[1]+pCurrBayer[BAYER_LINE_LENGTH2+1]) / 2;
-- WriteRGB(pCurrRGB+BAYER_RGB_LINE_LENGTH+BAYER_BPP, nRed, pCurrBayer[BAYER_LINE_LENGTH+1], nBlue);
-
-- pCurrBayer += 2;
-- pCurrRGB += 2*BAYER_BPP;
-- } while (--nColCount);
-
-- pBayer += BAYER_LINE_LENGTH2;
-- pRGB += BAYER_RGB_LINE_LENGTH2;
-- } while (--nTotalRowsCount);
-+void Bayer2RGB888(const XnUInt8* pBayerImage, XnUInt8* pRGBImage, XnUInt32 nXRes, XnUInt32 nYRes, XnUInt32 nDownSampleStep, XnUInt32 nBadPixels)
-+{
-+ fillRGB(nXRes, nYRes, pBayerImage, pRGBImage, DebayeringMethod(1), nDownSampleStep); // DebayeringMethod(0) == bilinear, (1) == edge aware, (2) == edge aware weighted
- }
diff --git a/debian/patches/series b/debian/patches/series
index 2331faa..e1772b4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,20 +1,8 @@
-0001-Fix-types.patch
-0002-Changed-25Hz-support-to-5_1-since-5_1_6-works-good.patch
-0003-Don-t-try-to-register-callback-for-a-5.0-device.patch
-0004-Disable-setting-USB-interface.patch
-0005-Add-support-for-vendor-id-in-Enumerate-USB-devices.patch
-0006-Add-support-for-XN-sensor-version-2.patch
-0007-Add-support-for-Kinect-product-id.patch
-0008-Add-support-for-different-frame-rates-and-high-resol.patch
-0009-Test-for-y-value-in-registration.patch
-0010-Change-host-protocol.patch
-0011-Add-and-enable-uncompressed-Bayer-modes.patch
-0012-Add-ROS-code-for-improved-Bayer-Pattern-to-RGB-conve.patch
-0013-Disable-SSE.patch
-0014-Don-t-write-log-file-upon-OpenNI-invocation.patch
-0015-Fix-parallel-build.patch
-0016-Add-SONAME-to-libraries.patch
-0017-Use-system-wide-libjpeg.patch
-0018-Fix-include-dirs.patch
-0019-Remove-call-to-XnLockedServerStreamsHash.patch
-0020-Move-XnSensorServer-to-usr-lib-libopenni-sensor-prim.patch
+0001-Disable-SSE.patch
+0002-Don-t-write-log-file-upon-OpenNI-invocation.patch
+0003-Fix-parallel-build.patch
+0004-Add-SONAME-to-libraries.patch
+0005-Use-system-wide-libjpeg.patch
+0006-Fix-include-dirs.patch
+0007-Remove-call-to-XnLockedServerStreamsHash.patch
+0008-Move-XnSensorServer-to-usr-lib-libopenni-sensor-prim.patch
--
openni-sensor-primesense packaging
More information about the pkg-multimedia-commits
mailing list