Skip to content

v3.0.0

Latest
Compare
Choose a tag to compare
@ChristianReese ChristianReese released this 15 Jan 16:24
· 20 commits to main since this release

Fixed

  • Fixed defects that were causing state corruption when removing a merge receiver, during a network reset, and during initialization.
  • Fixed defects that were causing state corruption or crashes when a sACN API call failed.
  • Fixed variations in DMX merger output based on the order levels and priorities were entered.
  • Fixed a defect that was causing sources to be excluded from sampling during lwIP initialization.
  • Fixed incorrect sequence numbers being sent by the source.
  • Fixed incorrect write to reserved field in universe discovery packets.
  • Fixed unsorted universe lists being sent in universe discovery packets.
  • Fixed a defect that was causing redundant multicast sends.
  • Fixed wrapping issues with remote source and merger source handles.
  • Fixed flickering after the sampling period.
  • Removed the const qualifier on the unicast destinations array in the source universe settings.
  • Fixed a couple memory leaks.
  • Audited usage of memory and network resources and fixed a number of issues.

Added

  • Updated the merge receiver callback interface with additional information and new callbacks.
  • Added priority data to the sacn::MergeReceiver::Source structure.
  • Implemented socket-per-NIC mode on Windows to avoid edge-case performance issues caused by the IP_PKTINFO sockopt.
  • Added sacn_config.h options to opt out of SO_REUSEPORT and/or SO_RCVBUF, set the send buffer size, and disable internal DMX merger buffers.
  • Changed name of sacn_config.h option to SACN_MERGE_RECEIVER_ENABLE_IN_STATIC_MEMORY_MODE.
  • Implemented a new example application demonstrating use of the sACN Source C++ API.
  • Added ability to specify that no network interfaces should be used, or to specify the same interface multiple times.
  • Added new assertion handling (with logging in release mode) throughout the entire codebase.
  • Added logging for send statistics and new error cases, adjusted verbosity of existing logs.

Changed

  • Revised network reset handling so that new sampling periods will only occur on new interfaces.
  • Improved zero-initialization of internal state memory in static mode.
  • Made refactors to bring in a new version of EtcPal.
  • Adjusted the source implementation to send universes from lowest to highest.
  • Made PAP keep-alive interval separately configurable.
  • Made various performance improvements to the DMX merger.
  • Improved performance when sending many universes by spacing out the sending of start codes 0x00 and 0xDD.
  • Added handling for more setsockopt error cases.