v1.4.4
timps v1.4.4
Fixed
-
Crash (use-after-free in libimp) on a live audio-module toggle.
Changingaudio.agc,audio.nsoraudio.high_passvia/controlwhile a
stream was running could segfaulttimpsd— SIGSEGV with the fault inside
libimp.so(epc=0, return address in libimp). The/controlrequest
thread calledIMP_AI_Enable/DisableAgc/Ns/Hpfon the live AI channel while
the audio thread was insideIMP_AI_GetFrame— where libimp processes those
modules — freeing state the frame path was still using.The toggle is now deferred:
/controlonly flags the change; the audio
thread re-applies it from config at a frame-free point (loop top, no frame
held), serialized by a dedicated lock. Volume/gain/alc_gain stay direct
(plain parameter writes, not module create/destroy). Rapid toggles coalesce
and converge to the final configured value; no deadlock, no lost updates.
Tooling (tools/timps-qa.sh)
- Added
--only <sections>to run just selected QA sections (names or
numbers, comma-separated), e.g.--only onvifor--only 3,10. Preflight
always runs. - Fixed a false positive in the on-device config-integrity check: it counted
=inside comments (e.g.# 0=err 1=warn,# 1 = 50Hz) as "glued" config
lines. Comments are now stripped before the check; a reala=b c=dline is
still detected.
Full changelog: v1.4.3...v1.4.4