You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Encoder ROI on T40/T41 with OpenIMP: experimental, runtime-detected through OpenIMP_Cap_EncRoi. Regions are sent as QP deltas. With a T41 libimp
older than OpenIMP 958f7f3 the encoder ignores them under FixQP; such a
stream reports caps.roi.streams[N] = "fixqp" and the WebUI shows the
ROI editor inactive with the reason. From 958f7f3 FixQP streams take
regions too.
Crop (image.fcrop_*) on T40/T41 with OpenIMP through the ISP AutoZoom:
experimental, runtime-detected through OpenIMP_Cap_AutoZoom. Live on
every stream up to the driver's envelope at once (1920x1080 with
open-tx-isp 9fc513c8, read from t41_msca_live_max_w/h; 768x432 with
older drivers), a larger one restarts its framesource with the encoder
stopped (about 45 ms gap, new keyframe). No upscaling. T40 with OpenIMP
takes the same path (live up to 4K, no restart).
T40/T41 rotation follows the vendor I2D semantics: the framesource stays
unrotated, only the encoder gets the swapped size; 180 is a real I2D
rotate. With OpenIMP it needs OpenIMP_Cap_I2dRotate, otherwise rotation
is refused (caps.rotation = [0]). Width/height must be multiples of 8.
T41 with OpenIMP: image.drc_strength, image.dpc_strength and image.defog_strength (ISP module ratios 2/3/4, 0..255, 128 = vendor
picture), live.
/controlencoder.<N>.telemetry on T40/T41 with OpenIMP
(OpenIMP_Encoder_GetTelemetry): frames, bytes, IDR count, delivered fps
and kbit/s, average and maximum encode time.
T40: RTSP and fMP4 clients wait up to 5 s (was 2 s) for the first
parameter sets; the open T40 driver needs about 3.3 s from start to the
first frame.
Test pattern (OpenIMP OpenIMP_Cap_TestPattern): {"testpattern":{"mode":0..3}}
in /control, buttons on the WebUI preview page. Day/night is held in day
mode while it runs; mode 3 scores the motion detection (hits, misses,
false alarms, detection delay).
Mode 4 shows the sensor's own test pattern through the whole ISP, with
AE/AWB hold switches (caps.testpattern.sensor).
caps.fcrop.restart: per stream, 1 = it takes the current window only at
the next timps start. caps.fcrop.api: frontcrop or autozoom.
Day/night: a second look trigger at night. When the colour of the
illuminator-lit picture (global R/G or B/G of the ISP's AWB statistics)
moves daynight.color_pct (new, default 3, 0 = off, live) from its value
after the last look for 20 s, the camera looks at once. A weak lamp that
hardly brightens the IR-lit picture (Eufy S350 with a 30 % bulb: exposure
unchanged, B/G -4 %) now ends the night within about 40 s instead of at
the next 45-min look. It only starts a look (8 s dark, no click); colour
looks are at least 5 min apart and the gap doubles up to 45 min until a
timer look. No colour look while the lit scene is darker than the
reference; after a colour look that found night, the colour returning to
its value before the look is no new light. The statistics are read every
5 s at night (43-123 µs per read). Per-zone AWB statistics are read on T40/T41/T23/T31/C100
vendor, T10/T20 OpenIMP, and on T23/T31 and T40/T41 OpenIMP where the
libimp exports OpenIMP_Cap_AwbZone / OpenIMP_Cap_AwbStatistics;
elsewhere GET /control reports daynight.color_trigger: "unavailable". New status fields daynight.color_trigger and daynight.color_dev_pct.
FrontCrop: image.fcrop_upscale_pct (default -1 = leave the driver's
value, live) sets the open-tx-isp fcrop_upscale_pct on T23/T31 OpenIMP,
so a crop window smaller than the stream is upscaled; ceiling in the new caps.fcrop.upscale_max (100 = 2.0x on both, device-tested; T31 at 150
hard-hangs). Lowering it re-applies the window or returns to the full
sensor. Elsewhere a POST answers "unsupported" (104).
GET /control: video.<N>.rotate_path (off/sw/hw/band, USE_ROTATE
builds) says how a running stream is rotated, so the WebUI can tell the T23
software path (text OSD only, no logo or privacy) and the vendor-libimp top
band from a full-frame rotation.
GET /control?stats=1: a system object with load average, total and
available memory, the machine's CPU % and timpsd's own CPU % and RSS, for the
WebUI stats card. CPU values are tick deltas since the previous sample
(held at least 2 s), -1 at first.
Changed
T40 with OpenIMP: general.fs_keepalive auto is on, like T23/T41. Without
frames the open T40 driver runs no AE, so day/night read a frozen exposure
while nobody watched.
Day/night: the boot check no longer waits up to 2 min for a steady
exposure. When the first four readings are all above 4x day_gain it
checks at once; otherwise it waits at most 30 s. An open-stack T31 in a
dark garage showed a black day picture for 2 min after every start.
Day/night: with a working colour trigger the timer look runs every 6 h instead of 45 min (about 6 instead of 16 dark 8 s looks per night); jump and colour looks still react at once. Without colour statistics it stays at 45 min.
Day/night: a look taken while the lit level is still moving (a lamp coming
on, another camera's look) no longer sets the reference
(night_baseline); the next settled level after it does, within 60 s. A
jump held for 20 s still counts.
Day/night: a look started by a jump no longer asks below a fixed
2 × day_gain. Every look→check pair teaches k (check reading / dark
look reading, median of the last 5, 0.7..2), and the dark readings of the
last 4 failed checks are kept across jumps. A jump look now asks below
0.9 × the lowest failed dark reading (at most 2 × day_gain, at least day_gain / k). Evening lamps and a TV in a living room (the
check read 1.4-1.9 × the look) cost a click pair at every jump, about 8 per
evening; neighbouring cameras' infrared did the same all night on a T10
in a basement. Now about 2 per evening or night, and a brighter light
(the morning ceiling light, a 100 % lamp) still asks. k is logged in the look (...) debug line.
Day/night: light that creeps in (dawn with daylight infrared, a fire)
asks again only once the k of the failed check predicts day; a sudden
light still asks at once. A bedroom dawn on replay: 7 -> 3 failed checks.
Day/night: every stream gets a keyframe 0.8 s after an IR or IR-cut
switch, once the AE has settled; before, starved P-frames showed the old
picture until the next GOP keyframe.
Fixed
Day/night: the check lockout after failed checks stops doubling at 16 min
(1, 2, 4, 8, 16, 16 ... min). A T10 among other IR cameras had grown it past
an hour and stayed in night while its neighbours switched to day. A look
that predicts day during a lockout now logs -> locked (N s) instead of -> check.
daynight.trace_path rotates to <path>.1 past 256 KB instead of 1 MB:
at about 32 KB/h the trace on /tmp now holds at most 512 KB of RAM
(before 2 MB) on 36-42 MB cameras.
Day/night on vendor T21 no longer reads daynight.isp_path: the vendor
tx-isp-t21 driver corrupts the kernel heap on that proc read, and an oops
killed the day/night thread. Exposure comes from IMP only there.
A day/night thread that stops ticking (no tick for 10 x interval_ms, at
least 60 s) is logged as an error once.
Day/night: a check takes "day" only once the reading has stayed below day_gain for 10 s after the settle time; "night" is still final at once.
The open T40 driver reported the night-side exposure for about 14 s after
the switch, so a check in the dark read "day" and the camera sat in day
mode with its illuminator off, which also set off every IR camera next to
it.
T40/T41: 4K JPEG snapshots larger than 1 MiB were dropped; the JPEG
buffer cap is 4 MiB there (a 4K frame at q75 is 1.6-3.3 MB).