🤖 AI-Generated Changelog
Added
- Bidirectional cross-stream motion propagation for dual-lens cameras, allowing motion detected on one lens to trigger recording on the paired lens
- Dedicated ONVIF detection thread per stream with motion-storm protection and sticky-flag hysteresis to prevent false triggers and rapid on/off cycling
Changed
- ONVIF motion hold duration constant moved to file scope for better organization alongside related constants
- go2rtc log output path now derived from
config_dirinstead of a hardcoded path - Pre-buffer replay logging rate-limited to keyframes only to reduce log noise
- ONVIF username removed from startup log (replaced with auth enabled/disabled indicator) to avoid leaking credentials in logs
Removed
- Removed
motion_recordingfunctionality
Fixed
- Fixed build errors when compiling with
ENABLE_GO2RTC=OFFby adding missing go2rtc API stubs - Fixed ONVIF detection thread crash when UDT
pthread_createfails — thread is now stopped before context is freed - Fixed double
pthread_joinrace condition in ONVIF thread teardown using atomic compare-exchange - Fixed pre-buffer PTS-based replay detection by only setting
first_video_ptswhen PTS is valid - Fixed audio buffering during go2rtc replay by gating audio on
stream_is_live - Fixed go2rtc false stuck-detection alerts on startup with a warmup guard
- Fixed pre-buffer being incorrectly reset on stream reconnect
- Fixed metrics reporting for stream UDT (unified detection thread)
- Fixed
process_motion_eventsignature to includeis_propagatedparameter, resolving a dead-code guard issue - Removed YAML
log.outputsetting from go2rtc config — stdout/stderr redirection is sufficient and avoids conflicts
🔗 Full Changelog: 0.33.1...0.33.2