Skip to content

Commit

Permalink
Updated to version 1.5.2.23.
Browse files Browse the repository at this point in the history
  • Loading branch information
OpenNI committed Jan 4, 2012
1 parent d07a88a commit 1516074
Show file tree
Hide file tree
Showing 377 changed files with 59,743 additions and 5,079 deletions.
101 changes: 101 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
47 changes: 37 additions & 10 deletions Data/SamplesConfig.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<OpenNI>
<Licenses>
<!-- Add licenses here
<!-- Add application-specific licenses here
<License vendor="vendor" key="key"/>
-->
</Licenses>
Expand All @@ -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>
Binary file modified Documentation/OpenNI.chm
Binary file not shown.
8 changes: 6 additions & 2 deletions Include/ARC/XnPlatformARC.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_

31 changes: 19 additions & 12 deletions Include/Linux-x86/XnPlatformLinux-x86.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <limits.h>

//---------------------------------------------------------------------------
// Platform Basic Definition
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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()

Expand Down
41 changes: 27 additions & 14 deletions Include/Win32/XnPlatformWin32.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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*/) \
Expand Down
10 changes: 5 additions & 5 deletions Include/XnArray.h
Original file line number Diff line number Diff line change
Expand Up @@ -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. **/
Expand Down Expand Up @@ -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;
}

Expand Down
15 changes: 15 additions & 0 deletions Include/XnBitSet.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down
Loading

0 comments on commit 1516074

Please sign in to comment.