Skip to content

Neolink 0.5.8

Compare
Choose a tag to compare
@github-actions github-actions released this 18 Apr 04:18
· 593 commits to master since this release
42ff221

Neolink Release 0.5.8

This build has various speed and consistency related improvements. It should run on less memory/cpu for longer without stopping.

  • Fix bytes remaining on stream bug

    The decoder for the BCMedia was not allowing media packets to be split across packet boundaries which is an error since BCMedia packets can often split across EOF

  • Blocking was removed from the send parts of the connection.

    It was possible for a thread to lock, blocking code from running at all. This has been addressed

  • Changed the recovery method for an unrecognised BCMedia

    In the event that a BCMedia packet could not be decoded we used to advance the stream byte-wise until a valid BCMedia header was found. This could be too slow for large packets of erroneous data causing the thread to block. We now advance packet-wise.

  • Gstreamer buffers now have fixed sizes reducing memory usage

    Long streaming when the client does not pull the frames fast enough could result in a buffer backlog in the stream. This has been addressed in two ways. A queue buffer has been added with a maximum size. Once this size is exhausted then older packets are dropped. Additionally the enough-data and need-data signals from gstreamer are properly used now and we pause pushing new buffers until ready.

  • Added graceful restart to the media factory

    In the event of an error in the media factory then the stream would not restart correctly with all streams failing even after a camera reconnect. This has been addressed by restarting the send thread on error.