v1.5.0
Added
- Optional image rotation (
USE_ROTATE/USE_SW_ROTATE,videoN.rotation:0|90|180|270). 180° on every SoC; hardware 90/270 on T31/T40/T41; software 90/270 on T23. Restart-required. Known limitation: on T31, 90/270 can't carry a hardware OSD/privacy overlay (libimp IPU-OSD stride bug) — seedocs/rotation.md. - Optional ONVIF audio backchannel (
USE_BACKCHANNEL/USE_BC_AAC,audio.backchannel/backchannel_codec/backchannel_rate,caps.backchannel.available). ONVIF Profile T two-way audio via/bin/iac(thingino'singenic-audiodaemon) — seedocs/backchannel.md.
Changed
- Default
http.portmoved 8080 → 8880 (was clashing with the ONVIF daemon). - Sub-stream OSD default
font_size24 → 12 px.
Fixed / Security
- Command-injection hardening:
daynight.switch_cmdandmotion.on_motionnow run viafork()+execlp()instead ofsystem()(no shell). - Value clamping:
audio.gaintightened to the IMP-documented 0..31 mic PGA range;volume/alc_gain/spk_volume/spk_gainand OSDlogo_w/logo_h/outlineclamped against their real limits. hal_get()return value NULL-checked before first use.- Plus the accumulated
/controltoken+CORS auth, motion grid detection, local recording, privacy masks and TLS/SRT support documented in CHANGELOG.md (undocumented since 1.2.0).
Full changelog: https://github.com/Lu-Fi/timps/blob/main/CHANGELOG.md