forked from OpenNI/OpenNI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
292 lines (283 loc) · 20.9 KB
/
CHANGES
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
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
Detailed Change log:
--------------------
Version 1.3.3.6 (Stable version - Sep 18th 2011)
------------------------------------------------
* Fixed memory leak in Queue and ThreadSafeQueue.
* Java: added AlternativeViewpoint API.
* Java Bug Fix: audio was missing getMetaData().
* Bug Fix: potential crash in DirectX filter.
* Java: added getGeneralProperty and setGeneralProperty overloads which work with byte[].
* Java bug fix: imageGenerator.getMetaData().getData() returns map where bytesPerPixel is set to 0.
* Bug Fix: Playback now advances even if using xnWaitNoneUpdateAll.
* Bug Fix: UnregisterFromCalibrationComplete didn't work properly.
* Bug Fix: trying to remove a (non-existing) task from an empty scheduler would cause a crash.
* Linux USB device: in kernel 2.6.37, need to wait for control reply before continuing to poll ep0.
* Linux USB device: write to data endpoint in asynch IO, and return error if timeout occurred.
* Preliminary Android Support. With 2 samples: SimpleViewer and UserTracker.
* Preliminary ARM Support.
* Removed some duplicate definitions in OS and Platform of Win32 (ref #1472).
* NiUserTracker can now work without depth (it simulates its view perspective).
* Java bug fix: improper cleanup in 'Context' object java wrapper.
* NiSimpleRead: Also accept SamplesConfig from local dir.
* Windows USB driver: Updated the digital signature.
* Fix a small leak - 32 bytes for each created node (the BitSet ctor and dtor weren't called)
* .NET wrapper: added a "Current" version to the XnVersion structure.
* .NET wrapper: marking all C imports as cdecl.
* Java bug fix: memory corruption in some methods and callbacks.
* Java bug fix: TellPlayerFrame and GetPlayerNumOfFrames would always throw exception (bad cast).
* Java bug fix: callbacks would sometime cause an exception when detaching thread.
* API Bug Fix: UnregisterFromCalibrationStart returns XnStatus, but nothing was returned. This function should be a void function, but was left with original signature due to backwards compatibility issues.
* XnOS: adding special timeout to sockets Connect method: XN_SOCKET_DEFAULT_TIMEOUT, which give default OS behavior.
* .Net wrapper Bug Fix: nodes created using CreateAnyProductionTree will never be destroyed.
* .Net wrapper: GetXXXCap now always returns the same object (instead of creating and garbage collecting many objects).
* OpenNI filter: Added some validity checks.
* XnDump.h: allowing compilation under C.
* Linux USB Device: fix enumeration process.
* Linux USB Device: control and data endpoints now work.
* Win32 Bug Fix: trying to create an unnamed mutex causes Access Violation.
* Linux USB: Fix error code when failed to receive from control.
Version 1.3.2.3 (Stable version - July 19th 2011)
-------------------------------------------------
* Windows/Linux: Allow creating mutex even if name contains slashes/backslashes.
* Linux installer fix: dir /var/log/ni wasn't created, so installation might fail.
* Linux installer fix: do not try to install non-existing .Net wrappers.
* Java Bug Fix: ImageMap::createByteBuffer() causes infinite recursion (#1290).
* Bug Fix: on rare cases, creating nodes might succeed but return a NULL hNode.
* Java wrappers are now installed to /usr/share/java.
Version 1.3.2.1 (Stable version - July 4th 2011)
------------------------------------------------
* Moved HandTouchingFOVEdge to be a Capability, available through the HandGenerator.
* Skeleton Capability:
- CalibrationCallbacks (bundle of CalibrationStart and CalibrationEnd) marked as deprecated
- New callback: CalibrationStart (with RegisterTo/UnregisterFrom) - replacing deprecated CalibrationCallbacks
- Removed forceFixedLength, IsForcedFixedLength, SetPostProcessing - not general API. Instead, int property of XnVFeatures
* Pose Detection Capability
- PoseCallbacks (bundle of PoseStart and PoseEnd) marked as deprecated
- New callback: PoseDetected (with RegisterTo/UnregisterFrom) - replacing deprecated PoseCallbacks
- New callback: OutOfPose (with RegisterTo/UnregisterFrom) - replacing deprecated PoseCallbacks
* PoseDetectionStatus enum changed, to contain only relevant options
* All relevant samples use new APIs.
* Memory leak fix - creating temporary C++ wrapper node objects cause memory leaks.
* Linux: allowing OpenNI to be installed in a different directory.
* Linux Bug Fix: logs are not created if log dir does not exist.
* Removed MessageBoxes from uninstallation process.
* New Java wrappers and samples!
* Bug Fix: Exporter singleton functions might be called *after* its destruction (when global objects are destroyed, destruction order is undetermined).
* Raise the shutdown event *after* all nodes have been destroyed (some nodes might call the context or other nodes when destroying)
* BugFix: running xml script would startGenerateAll instead of just the ones that were created. NOTE: this also changes behavior so that nodes are now started in the order in which they were written in the script.
* Changed recorder buffer size to support UXGA with worst case compression.
* NiViewer bug fix: if no depth when NiViewer starts, scale is never drawn, even if depth is created later on.
* Initial support for Android.
* NiConvertXToONI: now when specifying node type in command line, only nodes of that type are converted.
* Bug Fix: NiSimpleViewer crashes when image node does not exist (#1211).
* Bug Fix: Unnecessary full file paths in samples csproj files (#964).
* Bug Fix: NiAudioSample memory leak (#971).
* Bug Fix: wrong error codes returned form semaphore functions.
* Added GetDestination() function to Recorder.
* Exposed xnNodeInfoAllocate() and xnNodeInfoFree().
* Bug Fix: after closing the log, opening it again might not work.
* Bug Fix: Create production tree didn't return hNode if already exists.
* Added option to query for non-existing nodes only
* Added options to xml script for querying existing nodes and non-existing nodes
* Added documentation for creating recorder from xml script
* Added documentation for querying for existing nodes and non-existing nodes through xml
* UpdateVersion.py now updates version number in doxygen project name
* Added APIs to register to new callbacks
- GestureInProgress
- GestureReadyForNextStage
- HandTouchingFOV
- CalibrationInProgress (with status)
- CalibrationComplete (with status)
- PoseDetectionInProgress (with status)
- UserExit
- UserReEnter
* Added APIs for forcing fixed length skeleton.
* Added API for skeleton post processing.
Version 1.2.0.7 (Stable version - May 9th 2011)
-----------------------------------------------
* Wrappers Bug Fix in C++ and C#: Calling Shutdown() might cause a crash in other objects destructors.
* Changed GLES to work properly on CE4100.
* Added virtual to LogWriterBase dtor.
* Fixed bug in queries - xnIsNodeMatch returned TRUE when there was no match.
* Added input pointer validation in xnGetModuleNodeHandle().
* C++ Wrapper Bug Fix: CreateProductionTree would not return created node, so node always had a ref count of at least 1.
* Log Bug Fix: changing output folder causes file to be created (even if not requested).
* Bug Fix: xnAddNeededNode() did not add an already added node, but also didn't notify caller. Changed to add it again.
* Bug Fix: playing ONI files does not work in application using deprecated API.
* Bug Fix: enumerating with a query might cause a crash.
* Bug Fix: playing ONI files might cause extra ref count to context.
* Bug Fix: When an enumeration error occurs in running XML file, trying to access this error causes crash.
* Ref count dump improvement.
* API change: running XML scripts is now done via ScriptNode object, and this object is responsible for the lifetime of created objects.
* API change: from now on, context object works with reference count:
1. InitFromXml() was marked deprecated. Now has another overload with takes the script node as output.
2. RunXmlScript() was marked deprecated. Now has another overload with takes the script node as output.
3. RunXmlScriptFromFile() was marked deprecated. Now has another overload with takes the script node as output.
4. Shutdown() was marked deprecated. Release() should be used instead (or let dtor do its stuff)
* Log: adding LogWriter framework. It is now possible to add other log writers (others than console/file).
Version 1.1.0.41 (Unstable version - Apr 18th 2011)
---------------------------------------------------
* .Net wrapper: adding publisher policy to the installation, to redirect previous versions to current one.
* Fixed the 32-bit VCRedist problem (the MSI installer didn't call it by mistake)
* Bug Fix: Log multithreaded sync issue - when writing to log from multiple threads, messages sometime got garbled
* Log optimization: don't waste time formatting message if not writing to screen and not writing to file
* NiViewer bug fix: when image is off, only write "Image stream is off" if drawing mode includes image.
* Adding Additional Data field to XnNodeInfo.
* .NET wrapper - adding a ctor to Query object.
* CE4100: stop using /var/lib - filesystem is replaced by tempfs.
* CE4100: proper support in makefile, redist and install.
Version 1.1.0.39 (Unstable version - Apr 11th 2011)
---------------------------------------------------
* Typo fix: ANTI_FILCKER was misspelled (should be ANTI_FLICKER)
* Bug Fix #788: NiViewer bug fix: a crash when playback speed is extremely high.
* Win32 Redist Bug Fix: csproj files were a bit corrupted, resulting in bad view in visual studio.
* Bug Fix: when adding a node to recording, check if it's already added (otherwise a corrupt file is created).
* Audio mock node:
1. Use data from file instead of hard-coded one.
2. Aggregate data up till next UpdateData().
* Audio recording: property names were wrong for supported modes, as well as buffer size.
* NiViewer: improve error message when trying to seek in a live source.
* .NET wrapper - better reference safety for delegates.
Version 1.1.0.38 (Stable version - Apr 11th 2011)
-------------------------------------------------
* Fixed .NET requirements in the Win32 installer.
* Linux Bug Fix: xnOS timeouts did not work well, causing ISO mode to get stuck sometimes when closing the device.
* Linux Bug Fix: closing the device in BULK mode causes server to get stuck.
* Allow different install paths - one for 32-bit applications and one for 64-bit applications.
* Bug Fix: seeking in a file which has a generator node with no frames causes a crash.
* Project dependencies were missing for Win32 VS2010 RedistMaker.
* Removed the win32 vcredist from the tools directory. it's no longer needed since the redist is supplied by the new MSI installer.
* Memory Profiling: fixed it to work. Also - added an optional dump that tracks every alloc and free.
* .NET wrapper: fixed reference handling of objects: Have a map of wrapped contexts, each holding a map of wrapped nodes. That way, there is no chance of garbage collection of a needed object.
* OpenNI.NET: Fix memory errors caused by bad marshaling of strings.
* Adding some info about every created node in the log file.
* Fix Supported Pixels struct.
* Adding new capabilities to .NET wrappers.
* DirectShow filter: adding a new property page to handle additional OpenNI capabilities.
* xnWaitForCondition - no need to get timeout from outside. Always use XN_NODE_WAIT_FOR_DATA_TIMEOUT.
* Added 64bit support for the installers
* Added support for MJPEG image format.
* Adding a flow dump to the DirectShow filter.
* Adding CMOS capabilities interfaces.
* Fix for UAC installer problems.
* Fix enumeration so that same vendor and name with a higher version will appear before an older version.
* .NET wrappers now supports 64-bit.
* playback speed: added a sanity check so that sleep will never be more than 2 seconds...
* Changing installation to Windows Installer XML Toolset.
* Device Identification Capability: adding API for getting device name, vendor specific data, and serial number.
* Renamed XnArray::Add() to XnArray::Set()
* Added APIs of SaveCalibrationDataToFile and LoadCalibrationDataFromFile to UserGenerator's SkeletonCapability
* Added Save/Load calibration from files to UserTracker sample. Use 'S' and 'L' (capital)
* Fixed method validation in some functions
* .NET wrappers Bug Fix: CodecID ctor would generate the wrong ID.
* .NET wrappers - changes in API to make it more .NET standard.
* NiViewer: fix user message while recording.
* NiViewer: Skip first frame when starting recording after the open file dialog was opened.
* xnOSLoadLibrary now looks for dependencies in the same folder.
* xnOSCreateProcess now starts the process in the EXE directory.
* Context init is now thread-safe (there were problems because of use of current directory)
* Bug Fix: no error is returned if trying to SetDestination() on an already recording node.
* XnBitSet: Added function SetSize(), IsSet() now checks index boundary
* XnGeneralBuffer: XnGeneralBufferFree() now sets data pointer to NULL after freeing it
* Fixed some level 4 warnings
* NiConvertXToONI sample: Added command line arguments that enables taking a specific node from recording and specific range of frames.
* Bug Fix: C++ wrappers was missing GetBytesPerPixel() method.
* Adding some resolutions.
* Adding a DirectShow Video Capture Source filter, so that ImageGenerators can be used in messaging applications (Skype, Messenger, etc.)
* Added semaphores to XnOS: see xnOSCreateSemaphore().
* Added XnOS semaphores implementation - only for windows at this point.
* Fixed NULL checks in xnOSStrCmp and xnOSStrCaseCmp: they used the XN_VALIDATE_INPUT_PTR macro but the function return value is not XnStatus. Also added ASSERTs.
* In .net wrappers, Joint information as structs, and usable orientation
* In NiUserTracker, don't use WaitAndUpdateAll, use One instead
* Renamed XnBitSet::Get() to XnBitSet::IsSet()
* Adding GetBytesPerPixel to MapGenerator.
* Adding default implementation in Module C++ interfaces for GetData and GetBytesPerPixel for various node types.
* Adding ExtensionModule class to support registering extensions.
* Change all type switches to checking type hierarchy.
* Adding NiSampleExtensionModule - a sample module which creates an extension.
* Adding NiUseExtension - a sample that uses above extension.
* Added Uncompressed format for recording depth in NiViewer
* Adding CreateDevice method.
* Unifying node type and hierarchy type.
* Adding XnTypeManager: manages all OpenNI types: both built-in ones and extensions.
* Changing GetData() function to return a const pointer.
* Adding support in ModuleLoader for older modules which did not have the GetData() method.
* Adding Version class to C++ wrappers.
* Fixing IsJointActive() signature in C++ wrappers.
* Changed in XN_EXPORT_NODE macros to accept node type (in addition to different macros for different types).
* Adding xnRegisterExtensionNode (instead of xnRegisterNewNode which needed a context).
* Adding an option in the XML to set repeat for playback.
* XnUSBWin32: Added a EP reset before each read/write/queue command.
* Fix a playback speed bug where the first frame in the file would always sleep till its timestamp.
* XnUSBWin32: Fixed a problem where the endpoint set property command did not work on overlapped I/O endpoints.
* Adding XnBitSet - Holds a set of bits that can be individually get/set
* Added XnArray - self-growing array
* Added General GetData() function to Generator
* Added ability to expose a general generator with XN_EXPORT_GENERATOR
* XnProductionNodeType is now defined to be Int32 rather than enum - to support extensions.
* Fixing seek and playbackSpeed problems.
* Making types packed even if no shared libs (types might be used in recordings...)
* OpenNI: Adding support for platforms which does not have shared libraries.
* Playback speed: Worked around for bad recordings where timestamps sometimes go backwards.
* AutoCSLocker - adding copy ctor and operator=. Also adding some asserts to make sure operation succeeded.
* C++ wrappers: adding GetXCapability() const versions.
* Bug Fix: played nodes (from recordings) weren't really locked. They remained unlock for creating thread (the thread that called context.Init()).
* Bug Fix: Seek() did not work properly (it would sometimes go to wrong frame).
* The linux redist script will now do a full rebuild and also use the gacutil to clean old installs of OpenNI.net
* Added a new argument to the win32 redist script that allows a full rebuild to be made.
* The win32 redist script will now use the gacutil to clean old installs of the OpenNI.net wrapper.
* Bug Fix: trying to play an empty ONI file (no data) results in stack overflow.
* NiViewer: change default audio capturing format to uncompressed.
* Better management of timestamps in recordings:
1. When writing frames, nodes are sorted according to timestamp.
2. Recorder now holds timestamp of the first data it received. All other timestamps are computer accordingly.
* NiViewer: adding the option to choose which device to open by using the "-devices" switch.
* C++ wrappers: making some methods const.
* NiViewer Bug Fix: start recording with delay recorder while counting back... (this was because once nodes were added, the WaitOneUpdateAll() also called Record()).
* API fix: Mock nodes SetData() method should take a const MetaData object.
* Changing default XML file:
1. Mark image node as stopOnError=false.
2. Remove resolution. Let vendor decide its defaults.
* Adding an option to the XML to mark nodes as "stopOnError", which means if they can't be created, the XML script will continue to run.
* Win32 USB Driver changes:
1. All refs of PrimeSensor were changed to PrimeSense Sensor
2. Upgraded the driver from vista (WLH) to windows 7 (Win7) env.
3. Upgraded the WinDDK from 7600.16385.0 (7.0) to 7600.16385.1 (7.1)
4. Upgraded dpinst to the latest version.
5. Added support for isochronous writes.
6. Changed version from 3.1.0.4 to 3.1.1.0.
* Fixing C sample to free resources.
* Bug Fix: DataIndex record would always cause an assertion when the file loops.
Version 1.0.0.25 (Unstable version - Jan 10th 2011)
---------------------------------------------------
* Fixed a bug in XnUSB-Win32 where it return any USB devices that were associated with the driver and not only the requested VID/PID.
* Added OpenNI.net samples to Linux redist
* Renamed OpenNI.dll to OpenNI.net.dll on Linux so it will be the same name as Windows
* OpenNI.net is now installed to the GAC.
* Added proper support for OpenNI.net on Linux/Mac.
* .Net samples: handle errors correctly.
* Adding icons to C# samples.
* Added MacOSX platform support.
* Bug Fix: Xml query for max version checked the min version.
* Added the unstable README file.
* Bug Fix: when using WaitXUpdateAll, the MetaData of a non-updated node would not change its IsDataNew flag.
* Linux Bug Fix: xnOSCreateProcess() would cause zombie processes.
* Adding log functions to C# wrapper.
* Bug Fix: a bug in libusb caused bad calculation of max packet size of an endpoint, resulting in many lost frames in BULK mode.
* NiViewer Bug Fix: in background removal mode (6), there was no support for cropping, causing a crash.
* NiViewer Bug Fix on Linux: multiline messages are not displayed properly (they are cut)
* API change: renamed Ref() and Unref() to AddRef() and Release(). Old functions were left (so that API is not broken), but are marked as deprecated.
* NiBackRecorder: use MockDepthGenerator.SetData() instead of setting properties
* MockSetData now doesn't wait, but updates data immediately (this is useful when the synthetic data is with invalid size - no need to wait 2 seconds to get the error).
* Added validity checks to XnModuleCppRegistratration.h (calling a function without checking if capability is supported might cause a crash).
* Adding PlaybackSpeed functionality to Player.
* Adding .net wrappers.
* C++ wrappers: Make sure NULL callbacks aren't called
* UserTracker sample: print why enumeration failed.
* Seek optimization: adding data index to each node in ONI files. The data index is read when file is opened, and seeking can be done a lot faster.
* XnUSB: added an API for enumerating and opening a sensor by device path.
* Shared memory bug fix: failed to create shared memory if name contained backslash.
* C++ wrappers Bug Fix: RegisterToGestureChange would register to pixel format change.
Version 1.0.0.23 (Stable version - Dec 8th 2010)
------------------------------------------------
* Initial release...