Detailed Change log:
--------------------

Version 5.1.6.5
---------------
  * Switched to Apache v2 license
  * Support for new file type (Vendor data)
  * Support for getting IR CMOS type
  * Support for new RD1.09 product ID
  * Support for toggling emitter while depth stream is running
  * Remove the USB speed check: firmware goes into safe mode anyway when not in high-speed.
  * Linux/OSX/Android: Change USB transfer length from 20KB to 16KB in bulk mode.
  * Adding support for the "Set LED state" command (starting with FW 5.8.0).
  * Added general debug streams support
  * Added "startread" command to command console (to read from endpoints)
  * Added option to turn off auto exposure and AWB (via the XN_PAUSE_AUTO_CONTROL value)
  * Fix support for old firmwares (5.2.x)
  * Fix the close range feature
  * Add support for NESA
  * Add support for firmware filesystem lock
  * The current image auto exposure controls where split into on/off (XN_STREAM_PROPERTY_AUTO_EXPOSURE) and manual control (XN_STREAM_PROPERTY_EXPOSURE).
  * Bug Fix: potential crash when receiving junk from USB (12-bit unpacker tries to translate invalid shift)
  * RGBViewer new keys:
    * 'x' - toggle depth close range on/off
    * 'a' - toggle image CMOS auto-exposure on/off
    * 'A' - toggle image CMOS auto-white-balance on/off
    * 'n' - increase image CMOS exposure by one
    * 'N' - decrease image CMOS exposure by one
    * 'g' - increase image CMOS gain by 10
    * 'G' - decrease image CMOS gain by 10
  * Bug Fix: 25 FPS mode did not work
  * Adding CroppingMode property. New mode was introduced: INCREASED_FPS. This allows cropping at the CMOS level, and might improve FPS (supported by 5.7.2)
  * Fixing memory leak during depth stream opening (introduced in 5.1.3)
  * Added support for the RD1.09 sensor.
  * Bug Fix: Turning on registration while streaming might cause a crash
  * Implement the 'GetPixelCoordinatesInViewPoint' method
  * Software Registration bug fix: take into account padding algorithm params
  * Added software close range support for pre FW5.6 sensors.
  * Updated the linux USB rules to use the new udev usb syntax which replaces the old sysfs one that stopped working on kernel 3+. The new rules should work on kernel 2.6.30 and above.

Version 5.1.2.1 (Unstable version - May 15th 2012)
--------------------------------------------------
  * Redist: fix identification of ARM.
  * Adding support for new command: get usb core type. Also add different USB handling for different cores.
  * Remove annoying (and misleading) warning messages from the log. 
  * Starting with firmware 5.7.0 - add the platform string to the firmware version (to support different platforms running the same FW version).
  * Improved the hardware version information.
  * Bug Fix: changing resolution might cause a crash when working without a server.
  * Adding "Lean Init" mode which only gets version (no other FW queries).
  * Adding -safe option to command console. If applied, lean init is used and chances of failing to open sensor are dramatically reduced.
  * Bug Fix: If upload file fails, file remains open by process.
  * Fix printing values during upload.
  * Starting with 5.6.9 - check if image is supported using fixed params (instead of VSync ugly patch). Also moved fixed params to be part of SensorFirmware class.
  * BIST: host now always performs soft reset before running BIST.
  * Allowing AHB operations.
  * Bug Fix: device is always opened on interface 0 (should be ISO on x86 and BULK on ARM).
  * Added support to convert the uncompressed bayer image format into RGB24.
  * Added the 720p & 1280x960 image resolutions in the Xiron.ini and GlobalDefaults.ini files.
  * Added support for real uncompressed bayer image format.
  * ARM depth defaults are now QQ and 12-bit.
  * Allowing an application to provide buffers for map streams (instead of using the shared memory).
  * Add some logs to the server session.
  * Audio buffer (shared memory) and indexes are now owned by stream (and not the device).
  * Workaround a FW bug which returns a preset with FPS 0 (causes DirectShow filter to crash).
  * Using new data containers (XnListT, XnHashT, XnEventT).
  * Added new server property: "ServerLogFile" (string) for getting log file name.
  * Fix some static analysis warnings.
  * Fix some minor, rare, never-gonna-happen, memory leaks.
  * Moving "service discovery" into one location - takes place during init (instead of as part of the get version command).
  * Adding support for FW 5.3.29 (like previous, with the get presets opcode).
  * Adding a warning log when trying to set a non-supported mode.
  * Bug Fix: enumerating for image caused soft-reset of the device when server is off. This is problematic if working from different contexts and this device is streaming in another context.
  * Bug Fix: image resolution possible values were hard-coded, even when taking presets from FW.
  * Fixed some bugs in the software registration:
    1) The start/end padding code was removed. It was not really necessary and caused the result to be incorrect.
    2) In the depth-to-shift table calculation, the distance between the cameras was truncated from bad float/int conversions.
    3) Removed the code which stops building the registration table if the max Y was reached. The correct solution is not to stop the loop, but to mark the values as invalid.
    4) Enabled software registration to also work in QVGA 30 mode.
  * Using USB connection event instead of old single callback.
  * Bug Fix: corrupt memory if resolution is changed *after* a frame was received but not read by application yet (#1950)
  * Shifts map is stored as part of the frame.
  * Added 12-bit depth processor.
  * Optimizations for Arm Cortex A8 (neon).
  * Adding interface for general i2c operations.
  * Update device frequency whenever a stream is opened (frequency might change on setting to specific mode).
  * Added a property "HostTimestamps" for making the code create timestamps according to host clock and disregard firmware timestamps.
  * Added support for the Depth@QVGA and IR@VGA mode in FW 5.6 and above.
  * Added support for QQVGA Depth.
  * Now, when opening sensor without reset (for enumeration purposes), also not setting interface.
  * Adding the 'CloseRange' property to the depth stream (supported by FW 5.6)

Version 5.1.0.41 (Stable version - Dec 28th 2011)
-------------------------------------------------
  * No code changes, build is based on latest OpenNI.	

Version 5.1.0.25 (Unstable version - Dec 18th 2011)
---------------------------------------------------
  * Bug Fix: server-client didn't always work due to an uninitialized member.
  * Installer bug fix: versions were compared by string instead of by number.
  * Added Support for FW 5.5:
    1) Support product ID 0601.
	2) ISO and BULK interfaces are now switched.
	3) AudioGenerator is no longer supported.
  * Enumeration Bug Fix: From now on, a generator will not return on enumeration if one already exists from the same device.
  * Android: makefiles now match ndk v7.
  * Bug Fix: client-server did not pass timestamp correct in the NewDataAvailbale event, causing FrameSync to malfunction.
  * Bug Fix: Enumeration for ImageGenerator could cause a crash.
  * Default UsbInterface is now BULK on Arm (for performance reasons) and ISO on all other platforms.
  * Default Image format is now uncompressed in ISO, and compressed in BULK.
  * Server (Multiprocess) is not on by default on Arm.
  * BC Bug fix: XnVInitStreamPropertiesInternal::IsProperty did not function correctly. 
  * BC Bug Fix: XnVDepthRepresentation would not set correct Y resolution.
  * Added support for FW 5.6 (no audio)
  * Added Android support to open source.
  * Temporary patch for MacOSX: Cache the device path's since running enum on the MAC takes several seconds!  

Version 5.0.5.1 (Unstable version - Nov 17th 2011)
--------------------------------------------------
  * Removed support for very old 2.0 devices.
  * Linux: XnSensorServer dependency was missing.
  * Bug Fix: AllowMultiUsers property was not handled correctly.

Version 5.0.4.4 (Unstable version - Nov 7th 2011)
-------------------------------------------------
  * Added YUV input in high res for FW 5.3.28 and above.
  * Added grayscale 8 input format.
  * Added automatic setting of input format, and automatic checking of modes.
  * Updated to newer common makefiles
  * Sensor client-server on windows: Allow starting server and client in different sessions (requires a special setting in GlobalDefaults.ini, as this causes things not to work properly if running on a machine with UAC on).
  * Changed Engine changed to Sensor in the final installation files.
  * Renamed Linux-x86 to "Linux" (supports x86, x64, Arm and MacOSX).
  * Allow better cross compiling.
  * Bug Fix: old XNS files would not set their IsGenerating property (and so it is left FALSE, even if node has frames).
  * Updated the value of the UsbInterface property once endpoints are opened.

Version 5.0.4.3 (Stable version - Sep 18th 2011)
------------------------------------------------
  * Some minor windows installer UI fix (title position).
  * Fixed buffer overflow bugs in the software registration.
  * Support for firmware 5.4.x: New TEC and extended serial number commands.
  * On newer FWs (5.4+) high-res image output does not always have to be bayer so this rule will only be enforced on older versions.
  * Preliminary Android Support.
  * Preliminary ARM Support.
  * Win32: Added the /MP (MultiProcess Compiling) flag to all projects to save build time.
  * Bug Fix: Image Generator always said it supports JPEG (without checking the sensor itself).
  * Fix a memory leak (about 180 bytes per generator).

Version 5.0.3.4 (Stable version - Jul 5th 2011)
-----------------------------------------------
  * Windows Redist: Support for 64-bit systems.
  * Control mutex is now per sensor and not global to all sensors.

Version 5.0.3.3 (Stable version - Jul 5th 2011)
-----------------------------------------------
  * Linux: Allow installation to a different directory (for cross-compilation mainly).
  * Workaround firmware bug: if no depth, IR timestamps are corrupt. Use host clock for timestamps instead.
  * Bug Fix: unregistering USB event callback when destroying sensor to prevent crash when unplugging device.
  * XnExportedSensorDevice now only enumerates devices that weren't created in the context yet.

Version 5.0.2.3 (Stable version - May 3rd 2011)
-----------------------------------------------
  * Fixed use of deprecated CreateProductionTree().
  * Bug Fix: playing XNS files in applications using deprecated API might cause memory leaks.
  * Bug Fix: serial number was in hex format instead of decimal one.
  * Make sure SensorV2 nodes will only use SensorV2 device (up to now they only checked it's a PrimeSense device).

Version 5.0.1.33 (Unstable version - Apr 18th 2011)
---------------------------------------------------
  * CE4100: adding support in makefiles, redist and install.
  * CE4100: default is now BULK with compressed formats.
  
Version 5.0.1.32 (Unstable version - Apr 11th 2011)
---------------------------------------------------
  * Fixing log prints of resolutions (-1 appeared as MAX_UINT64...) to the resolution name.
  * Linux Bug Fix: Server creates two log files, one in the client folder and one in /var/log/primesense/XnSensorServer
  * Fixed a memory leak when rewinding old XNS files.
  * Win32: WIX installer (replacing NSIS)
  * Fixed wrong version in XnDeviceFile

Version 5.0.1.31 (Stable version - Apr 11th 2011)
-------------------------------------------------
  * Fix BULK timeout - it was too small...
  * Bug Fix: IR only works in QVGA...
  * Added 64bit support for the installers.
  * Fix wrong uses of the XN_IS_STATUS_OK macro (value is evaluated twice).
  * Adding support for MJPEG pass-through.
  * Adding initial support for new CMOS interfaces
  * Adding initial JPEG support
  * Fix for UAC installer problems.
  * Fixed uninstall without OpenNI.
  * Set minimum OpenNI version check in the installer.
  * Fix seeking to first frame in old XNS files.
  * Bug Fix: Client would fail to connect if trying to connect while server is shutting down.
  * Improving the timestamps algorithm.
  * performance improvement when enumerating for image nodes - a sensor should only be checked once.
  * improving error message for setting grayscale8 in low resolutions.
  * Improve thread-safety when starting server
  * Bug Fix: a crash when trying to open a non-existing XNS file.
  * Bug Fix: a potential crash if Init of depth generator fails.
  * Sensor now supports the Device Identification capability.
  * Server: fixing a deadlock problem between closing a stream and getting new data from it. This was done by splitting the sensor lock into two locks: one for changes on the sensor and one for changing the stream collection.
  * MultiProcess Bug Fix: the lock on a sensor didn't exist, so nothing was synchronized.
  * ImageGenerator now also changes InputFormat when changing resolution if needed (when switching from hi-res to normal & vice versa).
  * Adding frame IDs to Audio (just counting)
  * restoring defaults to QVGA.
  * Add support for sensors with no image CMOS.
  * Updated low-bandwidth USB devices buffer information.
  * Added the Asus WAVI auto-detection for Win32.
  * Low bandwidth devices now use bigger USB delays.
  * New defaults are now VGA, uncompressed.
  * Initial support for low-band devices:
    1. Image, IR and audio does not enumerate.
    2. Defaults changed to QVGA, compressed.

Version 5.0.0.25 (Unstable version - Jan 6th 2011)
--------------------------------------------------
  * Bug fix: infinite loop in server when a client tries to disconnect and streams can't be closed (usb timeout for example).
  * Added MacOSX platform support.
  * Added the unstable README file.
  * Removed useless win32 prerequisites...
  * Fixing audio to work properly in the client-server model.
  * Server Bug Fix: a potential dead lock was solved.
  * Sensor Server now supports multiple sensors. 
  * Refactored server to a better design, which should decrease deadlocks and make code more readable.
  * Adding support for enumerating and opening different sensors.
  * Bug Fix: GetStringProperty would always return XN_STATUS_ERROR.

Version 5.0.0.24 (Stable version - Dec 8th 2010)
------------------------------------------------
  * Initial release... 