Permalink
Browse files

Updated to version 1.5.2.23.

  • Loading branch information...
1 parent d07a88a commit 15160748a400c6089e7732d805f74992331193fa @OpenNI committed Jan 4, 2012
Showing 377 changed files with 59,743 additions and 5,079 deletions.
View
101 CHANGES
@@ -1,6 +1,107 @@
Detailed Change log:
--------------------
+Version 1.5.2.23 (Stable version - Dec 28th 2011)
+-------------------------------------------------
+ * C++: IRMetaData didn't have operator() and operator[], which is inconsistent with depth and scene.
+ * Fixed some memory deallocation mismatches.
+ * Remove redundant USB warning message on Linux (this is normal behavior).
+ * Java wrappers: adding getDataPtr(), createDataByteBuffer() and copyDataToBuffer() to Generator class.
+ * NiViewer: did not check if StartGenerating was successful.
+
+Version 1.5.2.7 (Unstable version - Dec 18th 2011)
+--------------------------------------------------
+ * Java UserTracker sample will now draw the limbs only when both joints have a non-zero confidence.
+ * .NET samples will now show their source files in the visual studio project.
+ * NiUserSelection - Enhanced the documentation.
+ * PoseDetectionCapability::StopPoseDetection will now return proper errors.
+ * .Net Wrappers: Disposing a device node now also destroys the node.
+ * xnNodeInfoGetTreeStringRepresentation was added to all wrappers.
+ * Linux: keep ref count for the libusb events thread, so it will be shutdown automatically when all read threads have stopped.
+ * Added option to show low confidence limbs as dotted lines in the user selection sample.
+ * Recordings playbacks: make sure seek is also performed in a lock, so it wouldn't collide with the reader thread.
+ * Bug Fix: The samples cannot be copied to another folder and be compiled.
+ * Data Dump: Adding frame sync information checks.
+ * NiUseExtension sample: added a clear message about the need to register the extension module.
+ * .Net Wrappers: Added the DataPtr property to Generator class.
+ * .Net wrappers: Fixed a bug where MapGenerator.BytesPerPixel was missing.
+ * .Net Wrappers: FindExistingNode now returns null instead of throwing an exception if no node exists.
+ * Java Wrappers: StartPoseDetection and StopPoseDetection are declared deprecated, and were replaced by startPoseDetection and stopPoseDetection.
+ * Linux: Cross compilation is now based on environment variables.
+ * .Net Wrappers: Projective/RealWorld conversion - added a version which accepts a preallocated array.
+ * USB Driver version was updated to 3.1.3.1.
+ * NiBackRecorder: removed unneeded calls to Release().
+ * NiConvertXToONI: removed unused seekNode.
+ * Android: makefiles are now compatible to ndk v7.
+ * .Net Wrapper: Added the missing DeviceIdentificationCapability class.
+ * New API: xnStopSinglePoseDetection.
+ * Bug Fix: Seeking before the first WaitXUpdateAll() caused undetermined behavior.
+ * Android: Added the NiSimpleSkeleton sample.
+ * Java Wrappers: Added missing enum values.
+ * .NET Wrappers: Added missing enum values.
+ * Android UserTracker sample: Adjusted to work without a calibration pose.
+ * USB Driver: adding support for PrimeSense's 0601 product ID.
+ * Log: initializing from INI file would reset the output directory.
+ * Bug fix: Seeking to the current frame did no re-read it, while seeking to another frame did read it. This caused a bug where seeking to the same frame twice would cause it to return twice.
+
+Version 1.4.0.2 (Unstable version - Nov 17th 2011)
+--------------------------------------------------
+ * Linux bug fix: The USB read thread was using memcpy with overlapping source and dest addresses which caused newer libc libraries to fail. The solution is to use memmove.
+ * Log: fix BC methods behavior to be backwards-compatible to old one.
+ * Added GetNumberOfAvailableGestures() method to GestureGenerator.
+ * .NET BugFix: GetPoseStatus() did not work.
+ * JNI: fix a typo that prevents creating joint orientations.
+ * NiUserSelection: Update to support N closest users and N waves.
+ * Fixed python scripts to also support python 3.
+ * Java Wrapper: Added a new method copyToBuffer for copying data to a preallocated buffer to improve performance (community request).
+ * Mac: Fixed a bug in the linux set thread priority where the struct wasn't zero'd before usage (caused warning on mac osx).
+ * Linux redist bug: .net wrappers were skipped on 64-bit machines by mistake.
+ * Windows Bug Fix: shared memory was always created under the Global namespace (Failed to work with UAC turned on).
+ * Added APIs xnIsPoseSupported, xnGetPoseStatus, through PoseDetectionCapability.
+ * Java Wrappers: added createByteBuffer() to AudioMetaData to access data.
+ * NiRecordRaw: Removed duplicate call to GetProductionNodeByName.
+ * Added NiHandTracker C++ sample.
+ * Added NO_TRACKING to the list of pose detection statuses.
+ * Added NiSimpleSkeleton sample which shows the head movement of skeleton with no graphics.
+ * Added NiUserSelection sample which shows the exit pose (cross hands) and user selection.
+ * Added a new dump, "OpenNIDataFlow", to track data frames.
+ * WaitNoneUpdateAll now doesn't actually read from file (might cause some sleeping), but only triggers another thread to read in the background.
+
+Version 1.3.4.6 (Unstable version - Nov 7th 2011)
+-------------------------------------------------
+ * In MockGenerator::SetData, change the node to Generating state so it would be recorded properly.
+ * Added new calibration error messages to the XnCalibrationStatus enum.
+ * XnArray: Allow passing base size in the ctor (to save double allocation).
+ * NiViewer: Removed an unnecessary line from file dialog init
+ * Bug fix: When recording from mock node, the first frame is no longer lost.
+ * XnOS: Added the option to create named objects in a way that will be accessible to other sessions.
+ * Renamed Linux-x86* files to Linux*
+ * Linux Bug Fix: xnOSSeekFile64 did not return OK. This caused problems in playback and recording of ONI files.
+ * Added some error log prints to the codecs and players.
+ * C# wrappers: fixed the marshaling of license struct.
+ * Added the function SetDataBytes to XnBitSet so it now accepts a byte buffer of any size. Note: byte order is different when reading from byte array or dword array in little endian platforms.
+ * C# wrappers: fixed a bug related to ProductionNodeDescription. Might break API, but this API would usually crash, so its OK.
+ * Linux: Switched to newer makefiles. SSE is enabled in debug, always declare sysroot (even for /) so that -I=/usr/include/ni could work properly.
+ * Linux: fix cross compilation and add separate scripts to cross compile on specific machine. Also, binary folders are now named according to platform and configuration.
+ * Documentation: Added a section about creating modules.
+ * Backwards Compatibility Workaround: some old recordings marked nodes as not generating though they contained frames. This resulted in "node is locked" error if trying to start generating them.
+
+Version 1.3.4.3 (Unstable version - Oct 10th 2011)
+--------------------------------------------------
+ * Update to newer version of CommonCppMakefile (without the -malign-double flag).
+ * Changed dump API to use void pointer instead of char pointer
+ * Added xnOSDeleteEmptyDirectory and xnOSDeleteDirectoryTree methods.
+ * Adding ScriptNode.Create() to C++ wrappers.
+ * Dumps: New, cleaner interface.
+ * Dumps: Adding dump writers mechanisms, so one can implement a new writer, other than files.
+ * Recordings: Support files bigger than 2 GB.
+ * Samples: default SamplesConfig is now better documented. Global mirror is turned on, instead of every generator.
+ * Java Wrappers: some methods were private by mistake.
+ * Samples Bug Fix: trying to create the rotating device extension would cause a crash if extension sample is not registered with OpenNI.
+ * Bug Fix: StartGenerating would fail on locked nodes even if node is already generating (this caused a bug where declaring a node in the XML which already existed in the recording would fail).
+ * Logs: New, better performance API.
+ * XnPlatform min/max values were wrong.
+
Version 1.3.3.6 (Stable version - Sep 18th 2011)
------------------------------------------------
* Fixed memory leak in Queue and ThreadSafeQueue.
View
@@ -1,6 +1,6 @@
<OpenNI>
<Licenses>
- <!-- Add licenses here
+ <!-- Add application-specific licenses here
<License vendor="vendor" key="key"/>
-->
</Licenses>
@@ -14,18 +14,45 @@
</Dumps>
</Log>
<ProductionNodes>
- <Node type="Depth" name="Depth1">
- <Configuration>
- <Mirror on="true"/>
- </Configuration>
- </Node>
- <Node type="Image" name="Image1" stopOnError="false">
+ <!-- Uncomment following line, in order to run from a recording
+ <Recording file="sampleRec.oni" />
+ -->
+
+ <!-- Set global mirror -->
+ <GlobalMirror on="true"/>
+
+ <!-- Create a depth node and give it a name alias (useful if referenced ahead in this script) -->
+ <Node type="Depth" name="MyDepth">
+ <Query>
+ <!-- Uncomment to filter by vendor name, product name, etc.
+ <Vendor>MyVendor inc.</Vendor>
+ <Name>MyProduct</Name>
+ <MinVersion>1.2.3.4</MinVersion>
+ <Capabilities>
+ <Capability>Cropping</Capability>
+ </Capabilities>
+ -->
+ </Query>
<Configuration>
- <Mirror on="true"/>
+ <!-- Uncomment to set requested mode
+ <MapOutputMode xRes="640" yRes="480" FPS="30"/>
+ -->
+
+ <!-- Uncomment to override global mirror
+ <Mirror on="false" />
+ -->
</Configuration>
</Node>
- <!--
- <Node type="Audio" name="Audio1"/>
+
+ <!-- Create an image node. If it fails, continue anyway. -->
+ <Node type="Image" stopOnError="false" />
+
+ <!-- Uncomment nodes from here if you need them.
+ <Node type="Audio" />
+ <Node type="User" />
+ <Node type="Hands" />
+ <Node type="Gesture" />
+ <Node type="Scene" />
-->
</ProductionNodes>
</OpenNI>
View
Binary file not shown.
@@ -177,10 +177,14 @@ typedef size_t XnSizeT;
/** Indicates a deprecated function */
#define XN_API_DEPRECATED(msg)
+#define XN_DEPRECATED_WARNING_IDS
+#define XN_HIDES_PARENT_METHOD_WARNING_ID
+#define XN_CONDITION_IS_CONST_WARNING_ID
+#define XN_PRAGMA_START_DISABLED_WARNING_SECTION(warnings)
+#define XN_PRAGMA_STOP_DISABLED_WARNING_SECTION
+
/** Declares a global shared library export function. */
#define XN_API_EXPORT_INIT()
-#define XN_DEPRECATED_WARNING_IDS 1
-
#endif //_XN_PLATFORM_ARC_H_
@@ -34,6 +34,7 @@
#include <stdio.h>
#include <string.h>
#include <assert.h>
+#include <limits.h>
//---------------------------------------------------------------------------
// Platform Basic Definition
@@ -99,31 +100,31 @@ typedef void (*XnFarProc)(void *);
typedef size_t XnSizeT;
/** Max unsigned 8-bit value */
-#define XN_MAX_UINT8 255
+#define XN_MAX_UINT8 UCHAR_MAX
/** Max unsigned 16-bit value */
-#define XN_MAX_UINT16 65535
+#define XN_MAX_UINT16 USHRT_MAX
/** Max unsigned 32-bit value */
-#define XN_MAX_UINT32 4294967295UL
+#define XN_MAX_UINT32 UINT_MAX
/** Max unsigned 64-bit value */
-#define XN_MAX_UINT64 18446744073709551615ULL
+#define XN_MAX_UINT64 ULLONG_MAX
/** Min signed 8-bit value */
-#define XN_MIN_INT8 -128
+#define XN_MIN_INT8 SCHAR_MIN
/** Min signed 16-bit value */
-#define XN_MIN_INT16 -32768
+#define XN_MIN_INT16 SHRT_MIN
/** Min signed 32-bit value */
-#define XN_MIN_INT32 -2147483648
+#define XN_MIN_INT32 INT_MIN
/** Min signed 64-bit value */
-#define XN_MIN_INT64 -9223372036854775808LL
+#define XN_MIN_INT64 LLONG_MIN
/** Max signed 8-bit value */
-#define XN_MAX_INT8 127
+#define XN_MAX_INT8 SCHAR_MAX
/** Max signed 16-bit value */
-#define XN_MAX_INT16 32767
+#define XN_MAX_INT16 SHRT_MAX
/** Max signed 32-bit value */
-#define XN_MAX_INT32 2147483647
+#define XN_MAX_INT32 INT_MAX
/** Max signed 64-bit value */
-#define XN_MAX_INT64 9223372036854775807LL
+#define XN_MAX_INT64 LLONG_MAX
//---------------------------------------------------------------------------
// Memory
@@ -177,6 +178,12 @@ typedef size_t XnSizeT;
/** Indicates a deprecated function */
#define XN_API_DEPRECATED(msg) __attribute__((warning("This function is deprecated: " msg)))
+#define XN_DEPRECATED_WARNING_IDS
+#define XN_HIDES_PARENT_METHOD_WARNING_ID
+#define XN_CONDITION_IS_CONST_WARNING_ID
+#define XN_PRAGMA_START_DISABLED_WARNING_SECTION(warnings)
+#define XN_PRAGMA_STOP_DISABLED_WARNING_SECTION
+
/** Declares a global shared library export function. */
#define XN_API_EXPORT_INIT()
@@ -127,31 +127,31 @@ typedef FARPROC XnFarProc;
typedef size_t XnSizeT;
/** Max unsigned 8-bit value */
-#define XN_MAX_UINT8 255
+#define XN_MAX_UINT8 _UI8_MAX
/** Max unsigned 16-bit value */
-#define XN_MAX_UINT16 65535
+#define XN_MAX_UINT16 _UI16_MAX
/** Max unsigned 32-bit value */
-#define XN_MAX_UINT32 4294967295
+#define XN_MAX_UINT32 _UI32_MAX
/** Max unsigned 64-bit value */
-#define XN_MAX_UINT64 18446744073709551615
+#define XN_MAX_UINT64 _UI64_MAX
/** Min signed 8-bit value */
-#define XN_MIN_INT8 -127
+#define XN_MIN_INT8 _I8_MIN
/** Min signed 16-bit value */
-#define XN_MIN_INT16 -32767
+#define XN_MIN_INT16 _I16_MIN
/** Min signed 32-bit value */
-#define XN_MIN_INT32 -2147483647
+#define XN_MIN_INT32 _I32_MIN
/** Min signed 64-bit value */
-#define XN_MIN_INT64 -9223372036854775807
+#define XN_MIN_INT64 _I64_MIN
/** Max signed 8-bit value */
-#define XN_MAX_INT8 127
+#define XN_MAX_INT8 _I8_MAX
/** Max signed 16-bit value */
-#define XN_MAX_INT16 32767
+#define XN_MAX_INT16 _I16_MAX
/** Max signed 32-bit value */
-#define XN_MAX_INT32 2147483647
+#define XN_MAX_INT32 _I32_MAX
/** Max signed 64-bit value */
-#define XN_MAX_INT64 9223372036854775807
+#define XN_MAX_INT64 _I64_MAX
/** Min double value */
#define XN_MIN_DOUBLE DBL_MIN
@@ -215,11 +215,24 @@ typedef size_t XnSizeT;
#endif
#ifdef __INTEL_COMPILER
- #define XN_DEPRECATED_WARNING_IDS 1786
+ #define XN_DEPRECATED_WARNING_IDS 1786
+ #define XN_HIDES_PARENT_METHOD_WARNING_ID 1125
+ #define XN_CONDITION_IS_CONST_WARNING_ID
#else
- #define XN_DEPRECATED_WARNING_IDS 4995 4996
+ #define XN_DEPRECATED_WARNING_IDS 4995 4996
+ #define XN_HIDES_PARENT_METHOD_WARNING_ID
+ #define XN_CONDITION_IS_CONST_WARNING_ID 4127
#endif
+#define XN_PRAGMA_START_DISABLED_WARNING_SECTION(warnings) \
+ __pragma(warning(push)) \
+ __pragma(warning(disable:XN_HIDES_PARENT_METHOD_WARNING_ID))
+
+#define XN_PRAGMA_STOP_DISABLED_WARNING_SECTION \
+ __pragma(warning(pop))
+
+
+
/** Declares a global shared library export function. */
#define XN_API_EXPORT_INIT() \
BOOL APIENTRY DllMain (HMODULE /*hModule*/, DWORD nReasonForCall, LPVOID /*lpReserved*/) \
View
@@ -43,9 +43,9 @@ class XnArray
typedef const T* ConstIterator;
/** Default constructor. Initializes the array to BASE_SIZE. **/
- XnArray()
+ XnArray(XnUInt32 nBaseSize = BASE_SIZE)
{
- Init();
+ Init(nBaseSize);
}
/** Copy constructor. Initializes this array from another array of the same type. **/
@@ -298,10 +298,10 @@ class XnArray
}
private:
- void Init()
+ void Init(XnUInt32 nBaseSize = BASE_SIZE)
{
- m_pData = XN_NEW_ARR(T, BASE_SIZE);
- m_nAllocatedSize = BASE_SIZE;
+ m_pData = XN_NEW_ARR(T, nBaseSize);
+ m_nAllocatedSize = nBaseSize;
m_nSize = 0;
}
View
@@ -75,6 +75,21 @@ class XnBitSet
return XN_STATUS_OK;
}
+ /** Copies raw data from a buffer of bytes to this bitset. **/
+ XnStatus SetDataBytes(const XnUInt8* pData, XnUInt32 nSizeInBytes)
+ {
+ //XnStatus nRetVal = m_array.SetData(reinterpret_cast<const XnUInt32*>(pData), XN_MAX(1, nSizeInBytes >> 2));
+ XnUInt32 nSizeInDwords = XN_MAX(1, nSizeInBytes >> 2);
+ XnStatus nRetVal = m_array.SetSize(nSizeInDwords);
+ XN_IS_STATUS_OK(nRetVal);
+ for (XnUInt32 nDwordIdx = 0, nByteIdx = 0; nDwordIdx < nSizeInDwords; nDwordIdx++, nByteIdx += 4)
+ {
+ m_array[nDwordIdx] = ((pData[nByteIdx] << 24) | (pData[nByteIdx + 1] << 16) | (pData[nByteIdx + 2] << 8) | pData[nByteIdx + 3] );
+ }
+ m_nSize = (nSizeInBytes << 3);
+ return XN_STATUS_OK;
+ }
+
/** @returns The raw data of this bitset as a buffer of dwords. **/
const XnUInt32* GetData() const
{
Oops, something went wrong.

0 comments on commit 1516074

Please sign in to comment.