[openni-primesense] Update to stable release 5.0.3.3

Tim Niemueller timn at fedoraproject.org
Fri Dec 23 01:09:15 UTC 2011


commit 8b145bafefa8e24f9ffd43119b03029ea8e4823c
Author: Tim Niemueller <niemueller at kbsg.rwth-aachen.de>
Date:   Fri Dec 23 02:02:41 2011 +0100

    Update to stable release 5.0.3.3

 .gitignore                                       |    6 +-
 openni-primesense-5.0.0.25-extlibs.patch         |   12 -
 openni-primesense-5.0.0.25-fedora-buildsys.patch |  218 -------------
 openni-primesense-5.0.3.3-disable-sse.patch      |   19 ++
 openni-primesense-5.0.3.3-fedora.patch           |  181 +++++++++++
 openni-primesense-5.0.3.3-willowgarage.patch     |  356 ++++++++++++++++++++++
 openni-primesense-55-primesense-usb.rules        |   16 +-
 openni-primesense.spec                           |   47 ++-
 sources                                          |    2 +-
 9 files changed, 602 insertions(+), 255 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 7a052b7..d009be1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
-/openni-primesense-5.0.0.25-git894cea01.tar.gz
+/.build*
+/*.rpm
+/x86_64
+/openni-primesense-5.0.3.3
+/openni-primesense-5.0.3.3.tar.gz
diff --git a/openni-primesense-5.0.3.3-disable-sse.patch b/openni-primesense-5.0.3.3-disable-sse.patch
new file mode 100644
index 0000000..3434baf
--- /dev/null
+++ b/openni-primesense-5.0.3.3-disable-sse.patch
@@ -0,0 +1,19 @@
+--- a/Platform/Linux-x86/Build/Common/Platform.x86
++++ b/Platform/Linux-x86/Build/Common/Platform.x86
+@@ -1,6 +1,6 @@
+ # some defaults
+ ifndef SSE_GENERATION
+-	SSE_GENERATION = 3
++	SSE_GENERATION = 0
+ endif
+ 
+ # change c struct alignment options to be compatable with Win32
+@@ -17,8 +17,6 @@
+ 	else
+ 		ifeq ($(SSE_GENERATION), 3)
+ 			CFLAGS += -msse3
+-		else
+-			($error "Only SSE2 and SSE3 are supported")
+ 		endif
+ 	endif
+ endif
diff --git a/openni-primesense-5.0.3.3-fedora.patch b/openni-primesense-5.0.3.3-fedora.patch
new file mode 100644
index 0000000..6793085
--- /dev/null
+++ b/openni-primesense-5.0.3.3-fedora.patch
@@ -0,0 +1,181 @@
+diff -urN openni-primesense-5.0.3.3-git342e334c/Platform/Linux-x86/Build/Common/CommonCppMakefile openni-primesense-5.0.3.3-git342e334c.fedora/Platform/Linux-x86/Build/Common/CommonCppMakefile
+--- openni-primesense-5.0.3.3-git342e334c/Platform/Linux-x86/Build/Common/CommonCppMakefile	2011-07-14 12:38:10.000000000 +0200
++++ openni-primesense-5.0.3.3-git342e334c.fedora/Platform/Linux-x86/Build/Common/CommonCppMakefile	2011-09-01 18:31:35.579404456 +0200
+@@ -73,6 +73,9 @@
+ CFLAGS += $(INC_DIRS_OPTION) $(DEFINES_OPTION)
+ LDFLAGS += $(LIB_DIRS_OPTION) $(USED_LIBS_OPTION)
+ 
++CFLAGS += $(CFLAGS_EXT)
++LDFLAGS += $(LDFLAGS_EXT)
++
+ # some lib / exe specifics
+ ifneq "$(LIB_NAME)" ""
+ 	OUTPUT_NAME = lib$(LIB_NAME).so
+diff -urN openni-primesense-5.0.3.3-git342e334c/Platform/Linux-x86/Build/XnFormats/Makefile openni-primesense-5.0.3.3-git342e334c.fedora/Platform/Linux-x86/Build/XnFormats/Makefile
+--- openni-primesense-5.0.3.3-git342e334c/Platform/Linux-x86/Build/XnFormats/Makefile	2011-07-14 12:38:10.000000000 +0200
++++ openni-primesense-5.0.3.3-git342e334c.fedora/Platform/Linux-x86/Build/XnFormats/Makefile	2011-09-01 18:26:24.604160970 +0200
+@@ -1,10 +1,15 @@
+ SRC_FILES = \
+-			../../../../Source/XnFormats/*.cpp \
+-			../../../../Source/External/LibJPEG/*.c
++			../../../../Source/XnFormats/*.cpp
+ 
+ LIB_NAME = XnFormats
+ USED_LIBS = XnCore OpenNI
+ DEFINES = XN_FORMATS_EXPORTS
+-INC_DIRS = ../../../../Source/External/LibJPEG
++
++ifneq ($(wildcard /usr/include/jpeglib.h /usr/local/include/jpeglib.h),)
++  USED_LIBS += jpeg
++else
++  INC_DIRS  += ../../../../Source/External/LibJPEG
++  SRC_FILES += ../../../../Source/External/LibJPEG/*.c
++endif
+ 
+ include ../EngineLibMakefile
+diff -urN openni-primesense-5.0.3.3-git342e334c/Platform/Linux-x86/CreateRedist/install.sh openni-primesense-5.0.3.3-git342e334c.fedora/Platform/Linux-x86/CreateRedist/install.sh
+--- openni-primesense-5.0.3.3-git342e334c/Platform/Linux-x86/CreateRedist/install.sh	2011-07-14 12:38:10.000000000 +0200
++++ openni-primesense-5.0.3.3-git342e334c.fedora/Platform/Linux-x86/CreateRedist/install.sh	2011-09-01 18:34:58.584910602 +0200
+@@ -8,6 +8,8 @@
+ 	Installs PrimeSense Sensor Driver (default mode)
+ -u,--uninstall
+ 	Uninstalls PrimeSense Sensor Driver.
++-n,--no-register
++	Do not register with OpenNI
+ -c,--cross-compile-rootfs <path>
+ 	Used for cross-compiling. Installs PrimeSense Sensor Driver to <path> instead of '/'.
+ -h,--help
+@@ -34,6 +36,7 @@
+ BIN_FILES=`ls $SCRIPT_DIR/Bin/*`
+ 
+ rootfs=
++register=yes
+ 
+ # parse command line
+ while [ "$1" ]; do
+@@ -44,6 +47,9 @@
+ 	-u|--uninstall)
+ 		uninstall=yes
+ 		;;
++	-n|--no-register)
++		register=no
++		;;
+ 	-c|--cross-staging-dir)
+ 		shift
+ 		rootfs=$1
+@@ -70,11 +76,22 @@
+ 	exit 1
+ fi
+ 
+-INSTALL_LIB=$rootfs/usr/lib
+-INSTALL_BIN=$rootfs/usr/bin
+-INSTALL_ETC=$rootfs/usr/etc/primesense
+-INSTALL_RULES=$rootfs/etc/udev/rules.d
+-SERVER_LOGS_DIR=$rootfs/var/log/primesense/XnSensorServer
++if [ -z "$INSTALL_LIB" ]; then
++  INSTALL_LIB=$rootfs/usr/lib
++fi
++if [ -z "$INSTALL_BIN" ]; then
++  INSTALL_BIN=$rootfs/usr/bin
++fi
++if [ -z "$INSTALL_ETC" ]; then
++  INSTALL_ETC=$rootfs/usr/etc/primesense
++fi
++if [ -z "$INSTALL_RULES" ]; then
++  INSTALL_RULES=$rootfs/etc/udev/rules.d
++fi
++if [ -z "$SERVER_LOGS_DIR" ]; then
++  SERVER_LOGS_DIR=$rootfs/var/log/primesense
++fi
++
+ 
+ # make all calls into OpenNI run in this filesystem
+ export OPEN_NI_INSTALL_PATH=$rootfs
+@@ -92,30 +109,37 @@
+ 
+     # Copy shared libraries
+     printf "copying shared libraries..."
++    mkdir -p $INSTALL_LIB
+     cp $LIB_FILES $INSTALL_LIB
+     printf "OK\n"
+ 
+     # Copy executables
+     printf "copying executables..."
++    mkdir -p $INSTALL_BIN
+     cp $BIN_FILES $INSTALL_BIN
+     printf "OK\n"
+ 
+     # register modules
+-    for module in $MODULES; do
+-        printf "registering module '$module' with OpenNI..."
+-		$INSTALL_BIN/niReg -r $INSTALL_LIB/$module $INSTALL_ETC
+-        printf "OK\n"
+-    done
++    if [ "$register" == "yes" ]; then
++        for module in $MODULES; do
++            printf "registering module '$module' with OpenNI..."
++			$INSTALL_BIN/niReg -r $INSTALL_LIB/$module $INSTALL_ETC
++            printf "OK\n"
++        done
++    fi
+ 
+     # copy config file
+     printf "copying server config file..."
++    mkdir -p $INSTALL_ETC
+     cp Config/GlobalDefaults.ini $INSTALL_ETC
+     printf "OK\n"
+ 
+     # make server run as root
+     printf "setting uid of server..."
+-    chown root $INSTALL_BIN/XnSensorServer
+-    chmod +s $INSTALL_BIN/XnSensorServer
++    if [ "$register" == "yes" ]; then
++        chown root $INSTALL_BIN/XnSensorServer
++        chmod +s $INSTALL_BIN/XnSensorServer
++    fi
+     printf "OK\n"
+ 
+     # create server log dir
+@@ -128,6 +152,7 @@
+     if [ "`uname -s`" != "Darwin" ]; then
+         # install USB rules (so that PrimeSense sensors will be mounted with write permissions)
+         printf "installing usb rules..."
++        mkdir -p $INSTALL_RULES
+         cp Install/$RULES_FILE $INSTALL_RULES
+         printf "OK\n"
+     fi
+@@ -139,13 +164,15 @@
+ 	printf "Uninstalling PrimeSense Sensor\n"
+ 	printf "******************************\n\n"
+ 
+-    # unregister modules
+-    for module in $MODULES; do
+-    	printf "unregistering module '$module' from OpenNI..."
+-        if $INSTALL_BIN/niReg -u $INSTALL_LIB/$module; then
+-            printf "OK\n"
+-        fi
+-    done
++    if [ "$register" == "yes" ]; then
++        # unregister modules
++        for module in $MODULES; do
++            printf "unregistering module '$module' from OpenNI..."
++            if $INSTALL_BIN/niReg -u $INSTALL_LIB/$module; then
++                printf "OK\n"
++            fi
++        done
++    fi
+ 
+     # delete shared libraries
+     printf "removing shared libraries..."
+diff -urN openni-primesense-5.0.3.3-git342e334c/Source/XnFormats/XnStreamCompression.h openni-primesense-5.0.3.3-git342e334c.fedora/Source/XnFormats/XnStreamCompression.h
+--- openni-primesense-5.0.3.3-git342e334c/Source/XnFormats/XnStreamCompression.h	2011-07-14 12:38:10.000000000 +0200
++++ openni-primesense-5.0.3.3-git342e334c.fedora/Source/XnFormats/XnStreamCompression.h	2011-09-01 18:26:49.319100844 +0200
+@@ -33,7 +33,7 @@
+ //---------------------------------------------------------------------------
+ #include "XnFormats.h"
+ #include <XnOS.h>
+-#include <External/LibJPEG/jpeglib.h>
++#include <jpeglib.h>
+ #include <setjmp.h>
+ 
+ //---------------------------------------------------------------------------
diff --git a/openni-primesense-5.0.3.3-willowgarage.patch b/openni-primesense-5.0.3.3-willowgarage.patch
new file mode 100644
index 0000000..a96b680
--- /dev/null
+++ b/openni-primesense-5.0.3.3-willowgarage.patch
@@ -0,0 +1,356 @@
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/Registration.cpp ../build_patched/ps_engine/Source/XnDeviceSensorV2/Registration.cpp
+--- ps_engine/Source/XnDeviceSensorV2/Registration.cpp	2011-08-10 09:58:38.421589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/Registration.cpp	2011-08-10 10:02:53.321589000 -0700
+@@ -480,13 +480,28 @@ void XnRegistration::Apply1000(XnDepthPi
+ 			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;
+@@ -533,7 +548,7 @@ void XnRegistration::Apply1080(XnDepthPi
+ 				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 - 2 : (nNewY*nDepthXRes) + nNewX;
+ 					nArrPos -= nConstOffset;
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnDataProcessor.h ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnDataProcessor.h
+--- ps_engine/Source/XnDeviceSensorV2/XnDataProcessor.h	2011-08-10 09:58:38.471589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnDataProcessor.h	2011-08-10 10:04:07.821589002 -0700
+@@ -91,7 +91,9 @@ 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;
++	//XnUInt16 m_nLastPacketID;
++	// --avin mod--
++  XnUInt8  m_nLastPacketID;
+ 	/* The name of the stream. */
+ 	const XnChar* m_csName;
+ 
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp
+--- ps_engine/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp	2011-08-10 09:58:38.421589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnDeviceSensorIO.cpp	2011-08-10 10:11:53.491589002 -0700
+@@ -39,6 +39,8 @@
+ #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_MSK_VENDOR_ID   0x045E
++#define XN_SENSOR_MSK_PRODUCT_ID  0x02AE
+ 
+ //---------------------------------------------------------------------------
+ // Enums
+@@ -362,14 +364,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)
+@@ -393,17 +395,21 @@ XnStatus XnSensorIO::EnumerateSensors(Xn
+ 		return nRetVal;
+ 
+ 	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 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);
+ 
+ 	// try searching for an older device
+-	nRetVal = Enumerate(XN_SENSOR_2_0_PRODUCT_ID, devicesSet);
++	nRetVal = Enumerate(XN_SENSOR_VENDOR_ID, XN_SENSOR_2_0_PRODUCT_ID, devicesSet);
+ 	XN_IS_STATUS_OK(nRetVal);
+ 
+ 	// now copy back
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h
+--- ps_engine/Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h	2011-08-10 09:58:38.421589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnDeviceSensorProtocol.h	2011-08-10 10:12:58.801589002 -0700
+@@ -88,7 +88,10 @@ typedef struct XnSensorProtocolResponseH
+ {
+ 	XnUInt16 nMagic;
+ 	XnUInt16 nType;
+-	XnUInt16 nPacketID;
++	//XnUInt16 nPacketID;
++  // --avin mod--
++  XnUInt8  nPacketID;
++  XnUInt8  nUnknown;
+ 	XnUInt16 nBufSize;
+ 	XnUInt32 nTimeStamp;
+ } XnSensorProtocolResponseHeader;
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnFirmwareStreams.cpp ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnFirmwareStreams.cpp
+--- ps_engine/Source/XnDeviceSensorV2/XnFirmwareStreams.cpp	2011-08-10 09:58:38.411589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnFirmwareStreams.cpp	2011-08-10 10:14:06.221588999 -0700
+@@ -117,11 +117,12 @@ XnStatus XnFirmwareStreams::CheckClaimSt
+ 				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);
+ 			}
+ 
++      // highres enable from avin
+ 			// 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!");
+-			}
++			//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)
+@@ -150,10 +151,10 @@ XnStatus XnFirmwareStreams::CheckClaimSt
+ 			}
+ 
+ 			// 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!");
+-			}
++			//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 -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnHostProtocol.h ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnHostProtocol.h
+--- ps_engine/Source/XnDeviceSensorV2/XnHostProtocol.h	2011-08-10 09:58:38.471589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnHostProtocol.h	2011-08-10 10:14:56.381589000 -0700
+@@ -112,8 +112,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 -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnSensorDepthStream.cpp ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorDepthStream.cpp
+--- ps_engine/Source/XnDeviceSensorV2/XnSensorDepthStream.cpp	2011-08-10 09:58:38.421589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorDepthStream.cpp	2011-08-10 10:16:43.241589000 -0700
+@@ -317,6 +317,8 @@ XnStatus XnSensorDepthStream::ConfigureS
+ 	nRetVal = m_Helper.GetCmosInfo()->SetCmosConfig(XN_CMOS_TYPE_DEPTH, GetResolution(), GetFPS());
+ 	XN_IS_STATUS_OK(nRetVal);
+ 
++  // Thanks to avin again! :-)
++  XnHostProtocolSetParam(GetHelper()->GetPrivateData(), 0x105, 0);
+ 	return XN_STATUS_OK;
+ }
+ 
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnSensorDepthStream.h ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorDepthStream.h
+--- ps_engine/Source/XnDeviceSensorV2/XnSensorDepthStream.h	2011-08-10 09:58:38.451589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorDepthStream.h	2011-08-10 10:18:33.071589000 -0700
+@@ -41,11 +41,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
+@@ -167,4 +167,4 @@ private:
+ 	XnCallbackHandle m_hReferenceSizeChangedCallback;
+ };
+ 
+-#endif //__XN_SENSOR_DEPTH_STREAM_H__
+\ No newline at end of file
++#endif //__XN_SENSOR_DEPTH_STREAM_H__
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp
+--- ps_engine/Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp	2011-08-10 09:58:38.431589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp	2011-08-10 10:19:24.601589002 -0700
+@@ -520,10 +520,10 @@ XnStatus XnSensorFirmwareParams::SetImag
+ 		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!");
+-			}
++			//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 -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnSensorImageStream.cpp ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorImageStream.cpp
+--- ps_engine/Source/XnDeviceSensorV2/XnSensorImageStream.cpp	2011-08-10 09:58:38.441589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorImageStream.cpp	2011-08-10 10:27:50.791589000 -0700
+@@ -157,11 +157,19 @@ XnStatus XnSensorImageStream::Init()
+ 			{ XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_QVGA, 30 },
+ 			{ XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_QVGA, 60 },
+ 			{ XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_VGA, 30 },
++			// --avin mod--			
++      { XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER,  XN_RESOLUTION_SXGA, 15 },
++      // suat
++      { XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER,  XN_RESOLUTION_VGA, 30 },
++      { XN_IO_IMAGE_FORMAT_BAYER,  XN_RESOLUTION_VGA, 30 },
++      { XN_IO_IMAGE_FORMAT_BAYER,  XN_RESOLUTION_QVGA, 60 },
++      { XN_IO_IMAGE_FORMAT_BAYER,  XN_RESOLUTION_QVGA, 30 },
+ 		};
+ 		nRetVal = AddSupportedModes(aSupportedModes, sizeof(aSupportedModes)/sizeof(aSupportedModes[0]));
+ 		XN_IS_STATUS_OK(nRetVal);
+-
+-		if (m_Helper.GetFirmwareVersion() >= XN_SENSOR_FW_VER_5_2)
++		
++   //Suat: changed to 5_1 since out 5_1_6 works good with 25Hz
++   if (m_Helper.GetFirmwareVersion() >= XN_SENSOR_FW_VER_5_1)
+ 		{
+ 			XnCmosPreset aSupportedModes25[] = 
+ 			{
+@@ -169,6 +177,8 @@ XnStatus XnSensorImageStream::Init()
+ 				{ XN_IO_IMAGE_FORMAT_YUV422, XN_RESOLUTION_VGA, 25 },
+ 				{ XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_QVGA, 25 },
+ 				{ XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422, XN_RESOLUTION_VGA, 25 },
++				{ XN_IO_IMAGE_FORMAT_BAYER,  XN_RESOLUTION_VGA, 25 },
++        { XN_IO_IMAGE_FORMAT_BAYER,  XN_RESOLUTION_QVGA, 25 },
+ 			};
+ 			nRetVal = AddSupportedModes(aSupportedModes25, sizeof(aSupportedModes25)/sizeof(aSupportedModes25[0]));
+ 			XN_IS_STATUS_OK(nRetVal);
+@@ -180,7 +190,7 @@ XnStatus XnSensorImageStream::Init()
+ 			nRetVal = AddSupportedModes(&highRes, 1);
+ 			XN_IS_STATUS_OK(nRetVal);
+ 		}
+-		else if (m_Helper.GetFirmwareVersion() >= XN_SENSOR_FW_VER_5_2)
++		else if (m_Helper.GetFirmwareVersion() >= XN_SENSOR_FW_VER_5_1)
+ 		{
+ 			XnCmosPreset highRes = { XN_IO_IMAGE_FORMAT_BAYER, XN_RESOLUTION_UXGA, 30 };
+ 			nRetVal = AddSupportedModes(&highRes, 1);
+@@ -268,13 +278,13 @@ XnStatus XnSensorImageStream::ValidateMo
+ 	XnResolutions nResolution = GetResolution();
+ 
+ 	// check resolution
+-	if ((nResolution == XN_RESOLUTION_UXGA || nResolution == XN_RESOLUTION_SXGA) && nInputFormat != XN_IO_IMAGE_FORMAT_BAYER)
+-	{
+-		XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "UXGA resolution is only supported with BAYER input!");
+-	}
++	//if ((nResolution == XN_RESOLUTION_UXGA || nResolution == XN_RESOLUTION_SXGA) && nInputFormat != XN_IO_IMAGE_FORMAT_BAYER)
++	//{
++	//	XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "UXGA resolution is only supported with BAYER input!");
++	//}
+ 
+ 	// check output format
+-	if (nOutputFormat == XN_OUTPUT_FORMAT_GRAYSCALE8 && nInputFormat != XN_IO_IMAGE_FORMAT_BAYER)
++	if (nOutputFormat == XN_OUTPUT_FORMAT_GRAYSCALE8 && nInputFormat != XN_IO_IMAGE_FORMAT_BAYER && nInputFormat != XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER )
+ 	{
+ 		XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "Grayscale8 output requires BAYER input!");
+ 	}
+@@ -284,11 +294,11 @@ XnStatus XnSensorImageStream::ValidateMo
+ 	}
+ 
+ 	// check input format
+-	if (nInputFormat == XN_IO_IMAGE_FORMAT_BAYER && nResolution != XN_RESOLUTION_UXGA && nResolution != XN_RESOLUTION_SXGA)
++	/*if (nInputFormat == XN_IO_IMAGE_FORMAT_BAYER && nResolution != XN_RESOLUTION_UXGA && nResolution != XN_RESOLUTION_SXGA)
+ 	{
+ 		XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "BAYER input requires SXGA/UXGA resolution!");
+ 	}
+-	else if (nInputFormat == XN_IO_IMAGE_FORMAT_JPEG && nOutputFormat != XN_OUTPUT_FORMAT_RGB24 && nOutputFormat != XN_OUTPUT_FORMAT_JPEG)
++	else */if (nInputFormat == XN_IO_IMAGE_FORMAT_JPEG && nOutputFormat != XN_OUTPUT_FORMAT_RGB24 && nOutputFormat != XN_OUTPUT_FORMAT_JPEG)
+ 	{
+ 		XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_BAD_PARAM, XN_MASK_DEVICE_SENSOR, "Jpeg input is only supported for RGB24 or JPEG output!");
+ 	}
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnSensorImageStream.h ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorImageStream.h
+--- ps_engine/Source/XnDeviceSensorV2/XnSensorImageStream.h	2011-08-10 09:58:38.431589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorImageStream.h	2011-08-10 10:24:50.211589000 -0700
+@@ -38,8 +38,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
+@@ -174,4 +174,4 @@ private:
+ 	XnActualIntProperty m_ActualRead;
+ };
+ 
+-#endif //__XN_SENSOR_IMAGE_STREAM_H__
+\ No newline at end of file
++#endif //__XN_SENSOR_IMAGE_STREAM_H__
+diff -rupN -x Release -x Lib -x CreateRedist -x DoxyGen -x .git ps_engine/Source/XnDeviceSensorV2/XnSensorIRStream.cpp ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorIRStream.cpp
+--- ps_engine/Source/XnDeviceSensorV2/XnSensorIRStream.cpp	2011-08-10 09:58:38.471589002 -0700
++++ ../build_patched/ps_engine/Source/XnDeviceSensorV2/XnSensorIRStream.cpp	2011-08-10 10:25:48.651588999 -0700
+@@ -93,6 +93,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);
+@@ -102,6 +103,7 @@ XnStatus XnSensorIRStream::Init()
+ 		XnCmosPreset aSupportedModesSXGA[] = 
+ 		{
+ 			{ 0, XN_RESOLUTION_SXGA, 30 },
++			{ 0, XN_RESOLUTION_SXGA, 15 },
+ 		};
+ 		nRetVal = AddSupportedModes(aSupportedModes, sizeof(aSupportedModes)/sizeof(aSupportedModes[0]));
+ 		XN_IS_STATUS_OK(nRetVal);
+--- a/Data/GlobalDefaults.ini
++++ b/Data/GlobalDefaults.ini
+@@ -6,7 +6,7 @@
+ ; 0 - No (default), 1 - Yes
+ ;LogWriteToConsole=1
+ ; 0 - No (default), 1 - Yes
+-LogWriteToFile=1
++;LogWriteToFile=1
+ ; 0 - No (default), 1 - Yes
+ ;LogWriteLineInfo=0
+ ; leave empty for nothing (default). ALL - all masks
diff --git a/openni-primesense-55-primesense-usb.rules b/openni-primesense-55-primesense-usb.rules
index b6c4a71..cc969cf 100644
--- a/openni-primesense-55-primesense-usb.rules
+++ b/openni-primesense-55-primesense-usb.rules
@@ -1,9 +1,9 @@
 # make primesense device mount with writing permissions (default is read only for unknown devices)
-SYSFS{idProduct}=="0200",SYSFS{idVendor}=="1d27",MODE="666",GROUP="users"
-SYSFS{idProduct}=="0300",SYSFS{idVendor}=="1d27",MODE="666",GROUP="users"
-SYSFS{idProduct}=="0400",SYSFS{idVendor}=="1d27",MODE="666",GROUP="users"
-SYSFS{idProduct}=="0500",SYSFS{idVendor}=="1d27",MODE="666",GROUP="users"
-SYSFS{idProduct}=="0600",SYSFS{idVendor}=="1d27",MODE="666",GROUP="users"
-SYSFS{idProduct}=="02ae",SYSFS{idVendor}=="045e",MODE="666",GROUP="users"
-SYSFS{idProduct}=="02ad",SYSFS{idVendor}=="045e",MODE="666",GROUP="users"
-SYSFS{idProduct}=="02b0",SYSFS{idVendor}=="045e",MODE="666",GROUP="users"
+ATTRS{idProduct}=="0200",ATTRS{idVendor}=="1d27",MODE="666",GROUP="users"
+ATTRS{idProduct}=="0300",ATTRS{idVendor}=="1d27",MODE="666",GROUP="users"
+ATTRS{idProduct}=="0400",ATTRS{idVendor}=="1d27",MODE="666",GROUP="users"
+ATTRS{idProduct}=="0500",ATTRS{idVendor}=="1d27",MODE="666",GROUP="users"
+ATTRS{idProduct}=="0600",ATTRS{idVendor}=="1d27",MODE="666",GROUP="users"
+ATTRS{idProduct}=="02ae",ATTRS{idVendor}=="045e",MODE="666",GROUP="users"
+ATTRS{idProduct}=="02ad",ATTRS{idVendor}=="045e",MODE="666",GROUP="users"
+ATTRS{idProduct}=="02b0",ATTRS{idVendor}=="045e",MODE="666",GROUP="users"
diff --git a/openni-primesense.spec b/openni-primesense.spec
index cb16901..f610e89 100644
--- a/openni-primesense.spec
+++ b/openni-primesense.spec
@@ -1,27 +1,31 @@
-%define gitrev 894cea01
+#define gitrev 342e334c
 
 Name:           openni-primesense
-Version:        5.0.0.25
-Release:        0.5.git%{gitrev}%{?dist}
+Version:        5.0.3.3
+Release:        1%{?gitrev}%{?dist}
 Summary:        PrimeSensor/Kinect Modules for OpenNI
 Group:          System Environment/Libraries
 License:        LGPLv3+
 URL:            https://github.com/PrimeSense/Sensor
 # No official releases, yet. To reproduce tarball (adapt version and gitrev):
-# git clone git://github.com/ros-pkg-git/Sensor.git
+# git clone https://github.com/PrimeSense/Sensor.git
 # cd Sensor
-# git archive --format tar --prefix=openni-primesensor-5.0.0.25-git894cea01/ HEAD | gzip > openni-primesense-5.0.0.25-git894cea01.tar.gz
-Source0:        openni-primesense-%{version}-git%{gitrev}.tar.gz
+# git archive --format tar --prefix=openni-primesensor-5.0.3.3/ Stable-5.0.3.3 | tar -xC..
+# cd ..
+# rm -rf openni-primesensor-5.0.3.3/Platform/Win32
+# tar cvfz openni-primesensor-5.0.3.3.tar.gz openni-primesensor-5.0.3.3
+Source0:        openni-primesense-%{version}.tar.gz
 Source1:        openni-primesense-55-primesense-usb.rules
-Patch0:         openni-primesense-5.0.0.25-fedora-buildsys.patch
-Patch1:         openni-primesense-5.0.0.25-extlibs.patch
+Patch0:         openni-primesense-5.0.3.3-fedora.patch
+Patch1:         openni-primesense-5.0.3.3-willowgarage.patch
+Patch2:         openni-primesense-5.0.3.3-disable-sse.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 ExclusiveArch:  %{ix86} x86_64 
 
-BuildRequires:  openni-devel >= 1.0.0, python
+BuildRequires:  openni-devel >= 1.3.2.1, python
 BuildRequires:  dos2unix
 BuildRequires:  libjpeg-devel
-Requires:       openni >= 1.0.0
+Requires:       openni >= 1.3.2.1
 Requires:       udev
 
 %description
@@ -32,6 +36,7 @@ Kinect depth camera.
 Summary:        Development files for %{name}
 Group:          Development/Libraries
 Requires:       %{name} = %{version}-%{release}
+Requires:       openni-devel
 
 %description    devel
 The %{name}-devel package contains libraries and header files for
@@ -39,9 +44,10 @@ developing applications that use %{name}.
 
 
 %prep
-%setup -q -n %{name}-%{version}-git%{gitrev}
-%patch0 -p1 -b .fedora-buildsys
-%patch1 -p1 -b .extlibs
+%setup -q -n %{name}-%{version}
+%patch0 -p1 -b .fedora
+%patch1 -p1 -b .willow
+%patch2 -p1 -b .disable-sse
 
 dos2unix LGPL.txt
 rm -rf Source/External/LibJPEG
@@ -49,7 +55,8 @@ rm -rf Source/External/LibJPEG
 
 %build
 cd Platform/Linux-x86/CreateRedist
-sed -i "s|make -C ../Build|make -C ../Build CFLAGS_EXT=\\\"%{optflags}\\\" SSE_GENERATION=2 DEBUG=1|" RedistMaker
+# Add SSE_GENERATION=2 (or 3) to enable SSE
+sed -i 's|make PLATFORM=$PLATFORM -C ../Build|make PLATFORM=$PLATFORM -C ../Build CFLAGS_EXT="%{optflags} -Wno-unknown-pragmas" DEBUG=1|' RedistMaker
 ./RedistMaker
 
 
@@ -59,7 +66,7 @@ pushd Platform/Linux-x86/Redist
 INSTALL_LIB=$RPM_BUILD_ROOT%{_libdir} \
 INSTALL_BIN=$RPM_BUILD_ROOT%{_bindir} \
 INSTALL_ETC=$RPM_BUILD_ROOT%{_sysconfdir}/openni/primesense \
-INSTALL_VARLOG=$RPM_BUILD_ROOT%{_var}/log/primesense \
+SERVER_LOGS_DIR=$RPM_BUILD_ROOT%{_var}/log/primesense \
 INSTALL_RULES=$RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d \
 ./install.sh -n
 popd
@@ -102,6 +109,16 @@ fi
 %{_bindir}/XnSensorServer
 
 %changelog
+* Thu Dec 22 2011 Tim Niemueller <tim at niemueller.de> - 5.0.3.3-1
+- Drop git suffix, we package a stable version
+- Update udev file not to use deprecated SYSFS entries
+
+* Mon Dec 19 2011 Tim Niemueller <tim at niemueller.de> - 5.0.3.3-0.2.git342e334c
+- Disable SSE
+
+* Thu Sep 01 2011 Tim Niemueller <tim at niemueller.de> - 5.0.3.3-0.1.git342e334c
+- Update to 5.0.3.3, closer to upstream, including Willow Garage patch
+
 * Mon Jun 27 2011 Rex Dieter <rdieter at fedoraproject.org> 5.0.0.25-0.5.git894cea01
 - ExclusiveArch: %%ix86 x86_64 (#709720)
 
diff --git a/sources b/sources
index 77a4047..69a86f9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c7cb093a017b8a63da159130b26d3fbb  openni-primesense-5.0.0.25-git894cea01.tar.gz
+391fc6f3184e30504e407521f661a4e5  openni-primesense-5.0.3.3.tar.gz


More information about the scm-commits mailing list