Releases: QuantumEntangledAndy/neolink
Neolink 0.5.13
Neolink Release 0.5.13
- Add MQTT home-assistant discovery: This is optional and will automatically add home-assistant entities once connected to the same MQTT server as neolink
- Add MQTT Presets into the cli and the MQTT interface
- Fixes for the MQTT caused by timeouts
- Rework video buffers to be more forgiving. You will no longer get a warning if your bit-rate is too high.
- Add support for floodlights ONLY (no camera) devices
- Add floodlight controls to the MQTT
- Pause streams of different quality separately
Neolink 0.5.12
Neolink Release 0.5.12
- Cellular support
- Add
discovery = "cellular"
to your[[cameras]]
section
- Add
Neolink 0.5.11
Neolink Release 0.5.11
- Pause buffers so avoid exhaustion when client is paused
- Bug fixes to buffers
- Removed issue where buffer was double filled on resume
- Removed issue where resuming would shift the time stamps in the wrong direction
- Simplified seek to just jumping to live
- Buffers now group identical time stamps together and send them as a set
- Buffer size is now configurable
Larger buffers can help with networks where data is lost often but will result in higher latency
[[cameras]] buffer_size = 100
- Buffer time stretching is now configurable
This can help to keep video smooth but can result in slow motion during periods of poor connectivity
[[cameras]] use_smoothing = true
Neolink 0.5.10
Neolink Release 0.5.10
-
Fixes to PTZ over MQTT
Previously PTZ would not stop after the specified amount and instead would keep going, now we send the stop command after an appropriate time
Neolink 0.5.9
Improve connections with clients like VLC and frigate
- Improve the way video is buffered
- Add time stretching to keep the buffer filled
- Add timeout to p2p address resolution
- Clear "Stream not ready" clients when stream is ready
- Remove locks in subscription
- Use multithreaded async model
- Add tokio-console support (for debugging)
- Use a dedicated thread for the bc and socket layer
Neolink 0.5.8
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
andneed-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.
Neolink 0.5.7
Neolink Release 0.5.7
Fixes to the pause feature.
Improved stream robustness (should work in VLC better)
Now requires the gstreamer1.0-plugins-base
and the gstreamer1.0-x
package. Make sure you install that on your debian OSs.
Neolink 0.5.6
Neolink Release 0.5.6
Added get command to PIR status
This can be achieved via
neolink pir --config=config.toml
while omitting the on/off
The following mqtt commands were also added:
/query/pir
/control/pir on
/control/pir off
We now always check the users capabilities such as if the user is allowed to edit the PIR or the clock or access the stream before even attempting to send the messages to the camera.
Neolink 0.5.5
Neolink Release 0.5.5
Add battery status messages
Control printing with:
[[cameras]]
# Usual cam config like pass etc
print_format = "Human"
Possible values
- None: no printing of camera battery messages (Default)
- Human: printing in a format suitable for reading
- Xml: print in xml format
Neolink 0.5.4
Neolink Release 0.5.4
More discovery methods. Configure with the discovery keyword in the toml
[[cameras]]
# Usual cam config like pass etc
discovery = "Relay"
Possible values
- Relay: connect through reolink
- Map: connect to cameras public ip (look up ip from reolink)
- Remote: connect to camera private ip (look up ip from reolink)
- Local: connect only via local UDP broadcast discovery
Improve handling of errors in the BcMedia stream