usbredir-0.8.0   03 Aug 2018
----------------------------
-Source code and bug tracker hosted in Freedesktop's instance of Gitlab
 -https://gitlab.freedesktop.org/spice/usbredir
-usbredirfilter
 -Fix busy wait due endless recursion when interface_count is zero
-usbredirhost:
 -Fix leak on error
-usbredirserver:
 -Use 'busnum-devnum' instead of 'usbbus-usbaddr'
 -Add support for bind specific address -4 for ipv4, -6 for ipv6
 -Reject empty vendorid from command line
 -Enable TCP keepalive

usbredir-0.7.1   29 Oct 2015
----------------------------
-usbredirfilter
 -force check to device which had all interfaces skipped. This fix a bug
  which allow a KVM device to be redirect when it should not
-usbredirparser:
 -allow missing capabilities from source host when loading a USB
  redirection stream during a qemu migration
-usbredirhost:
 -new callback to drop isoc packets when application's pending writes buffer
  size is too big; The threshold calculation aims at 10fps as worst case to
  give at least 150ms of continuous data to application.

usbredir-0.7   19 May 2014
--------------------------
-usbredirproto:
 -the usb_redir_ep_info_header has been extended with a max_streams field,
  this is only send / received if both sides have usb_redir_cap_bulk_streams
 -Change bulk_stream packet definitions to allow allocating / freeing
  streams on multiple endpoints in one go, technically this is a protocol
  change, but no-one has implemented usb_redir_cap_bulk_streams so far, so
  we can safely do this
 -add a USBREDIR_VERSION define so applications can test against which
  version they are building
-usbredirparser:
 -fix a bug causing parsing breakage when receiving a hello packet with 64 bit
  id capabiliy and another packet in succession so that they both got parsed
  in one usbredirparser_do_read call
-usbredirhost:
 -use libusb_set_auto_detach_kernel_driver when available
 -add support for bulk streams, this only gets enabled with libusbx >= 1.0.19
 -stop iso / bulk streams on reset
 -make cancellation handeling more robust
 -reset device on release
-usbredirserver:
 -listen to both ipv4 and ipv6 addresses on ipv6 capable systems

usbredir-0.6   13 December 2012
-------------------------------
-usbredirproto:
 -add support for bulk packets with 32 bits length
 -add support for buffered bulk input
-usbredirparser:
 -add support for bulk packets with 32 bits length
 -add support for buffered bulk input
-usbredirhost:
 -add support for bulk packets with 32 bits length
 -queue multiple transfers for interrupt receiving
 -add support for buffered bulk input
 -only apply mult to max-packet-size for isoc high speed endpoints
 -add a do-not-reset device blacklist, populate it with 1210:001c

usbredir-0.5.3  7 October 2012
------------------------------
-usbredirparser:
 -add support for bulk packets longer then 65535 bytes
-usbredirhost:
 -add support for bulk packets longer then 65535 bytes

usbredir-0.5.2 25 September 2012
--------------------------------
-usbredirparser:
 -rename libusbredirparser.pc to libusbredirparser-0.5.pc
  This should really have been done with the 0.5 release as API
  compatibility with previous releases was broken there!

usbredir-0.5.1 19 September 2012
--------------------------------
-usbredirparser:
 -usbredirparser_has_data_to_write now returns the write queue depth, instead
  of only 0 or 1
-usbredirhost:
 -usbredirhost_has_data_to_write now returns the write queue depth, instead
  of only 0 or 1
 -when the write queue gets too large, drop isochronous input packets

usbredir-0.5   7 September 2012
-------------------------------
-Windows support
-Add support for 64 bit packet ids
-usbredirparser:
 -Add state serialization support
 -API and ABI changed to use 64 bit ids, all users need to be adjusted and
  recompiled for this!!
-usbredirhost:
 -Remove bulk packets time out, this fixes various devices not working
 -Ack packet cancels immediately
 -Now supports 64 bits packet ids
 -Use libusb_error_name instead of logging raw error codes
-usbredirfilter_check return -ENOENT rather then -EPERM if no rules match a
 device, this way the caller can differentiate between a deny caused by a
 matching rule, and one caused by there being no matching rules.

usbredir-0.4.3 2 April 2012
---------------------------
-usbredirhost:
 -Don't crash on devices in unconfigured state
 -Restore original device configuration when releasing the device
 -Significantly speed up reset handling
-usbredirserver:
 -Add a manpage

usbredir-0.4.2 6 March 2012
---------------------------
-Add usb_redir_babble status code

-usbredirparser:
 -extend the usb_redir_ep_info packet header with a max_packet_size field
  This new field is only send / received if both sides have the (new)
  usb_redir_cap_ep_info_max_packet_size capability

-usbredirhost:
 -Ensure we always re-attach kernel drivers on cleanup
 -Make set_config handling more robust
 -A set_config or a reset can cause us to loose access to the device, if
  this happens this now gets reported by usbredirhost_read_guest_data
  returning usbredirhost_read_device_lost

usbredir-0.4.1 25 February 2012
-------------------------------
-Brown paper bag release, fix a return without value in a non void function
 which completely breaks usbredir in some cases

usbredir-0.4 22 February 2012
-----------------------------
-Add usb_redir_filter_reject and usb_redir_filter_filter packets and
 an usb_redir_cap_filter capability flag
-Add an usb_redir_device_disconnect_ack packet and
 an usb_redir_cap_device_disconnect_ack capability flag

-usbredirparser:
 -Add an usbredirparser_have_peer_caps function

-usbredirhost:
 -Allow re-using a host instance with multiple devices, see the documentation
  for the new usbredirhost_set_device() function in usbredirhost.h
 -Quite a few bugfixes


usbredir-0.3.3 12 January 2012
------------------------------
-usbredirparser:
 -add usbredirfilter code, to help apps exclude certain devices from
  redirection. See usbredirfilter.h for details.

-usbredirhost:
 -add a usbredirhost_check_device_filter helper function. See usbredirhost.h


usbredir-0.3.2 3 January 2012
-----------------------------
-Switched to automake/autoconf/libtool based make system (Christophe Fergeau)

-usbredirparser:
 -limited multi-thread safeness, see README.multi-thread
 -extend the device_connect packet header with a device_version field
  This new field is only send / received if both sides have the (new)
  usb_redir_cap_connect_device_version capability.
 -Add a hello_func callback which gets called after receiving the hello
  packet from the other side. This can be used to determine when the caps
  from the other side have been received and it thus is safe to call
  usbredirparser_send_device_connect.

-usbredirhost:
 -limited multi-thread safeness, see README.multi-thread
 -properly handle clear stalls send from the usbguest
 -try to keep our iso buffer size near the target size
 -implement usb_redir_cap_connect_device_version


usbredir-0.3.1 18 August 2011
-----------------------------
-usbredirparser:
 -add a usbredirparser_fl_write_cb_owns_buffer flag
  See the comment in usbredirparser.h above usbredirparser_write for details.
 -add a usbredirparser_free_packet_data function for symetry with
  usbredirparser_free_write_buffer

-usbredirhost:
 -Fix device resets
 -Add a flags parameter to usbredirhost_open, this accepts the following flags:
  usbredirhost_fl_write_cb_owns_buffer
 -The flags parameter causes an ABI breakage, new soname: libusbredirhost.so.1

-usbredirserver:
 -Fix -v flag


ubsredir-0.3 14 July 2011
-------------------------
-Initial release, start at version 0.3 to match the version of
 the protocol desciption doc usb-redirection-protocol.txt
