Repository navigation
Testing
Lu-Fi edited this page Oct 6, 2026
·
1 revision
After flashing a full image, a short check per camera:
-
Boot and modules:
lsmodshowstx_isp_<soc>and the sensor module;dmesghas no oops, noCall Trace, noispmem/rmem shortfall lines. -
Boot guard:
S10isp-guard statusshows nopendingafter 5 minutes of uptime and notripped. - Streams: pull the main stream and the sub stream for a few seconds each (RTSP or the streamer's HTTP endpoints); decode the result with an external decoder and check for errors.
- Snapshots: 30 consecutive JPEG snapshots, all non-empty and decodable. The campaign criterion is 30/30.
- MJPEG / MP4: pull a few seconds and decode.
-
Memory: record the OpenIMP rmem peak line and
MemFree. -
Log: the effective rate-control line per channel is present; no
Helix run failedor VPU error lines (or count them). - Day/night: switch day/night and back several times, then repeat steps 1 and 4.
Pass criteria used in the campaign: 30/30 snapshots, 0 oops, 0 VPU errors, boot guard not tripped.
With the streamer stopped, rmmod/insmod the ISP module 10 times (with and without kill -9 of the streamer before), expect refcount 0 and 0 oops after every cycle.
Run the streams for hours (the longest campaign runs were 2 h 34 min to 2 h 53 min at 25 fps with 0 decode errors) and log a short status line (uptime, MemFree, error counters) every few minutes.
To judge the open stack fairly:
- Build two full OTA images that differ only in the ISP choice (
THINGINO_ISP_OPENversusTHINGINO_ISP_PROPRIETARY), same streamer revision, same configuration. - Same camera, same scene, same lighting (night scenes are repeatable); one warm-up period before measuring.
- Measure: streamer CPU (all threads), system CPU, resident memory and thread count, time from start to first image, snapshot latency (average of 10), bitrate main/sub at the same target,
MemFree. - Rate-control A/B: same target bitrate (for example 1200 kbit/s) for 60 s per mode (CBR, VBR, SMART).
- Image checks: compare mean luma and white-balance gains on neutral regions; use the same exposure limits.
Example result (T20, night scene): streamer CPU 10.5 % versus 25.2 %, system CPU 15.3 % versus 33.5 %, first image 2.5 s versus 3.0 s, snapshot latency 0.20 s versus 0.45 s, free memory 46.9 MB versus 52.3 MB.
-
OPENIMP_PROFILE=1prints a periodic profile report (see Environment Variables). -
t23tune(T23): show and set max gain, IT max, DRC, defog, sinter, flip, max dgain from the shell. - The T20 module exposes AE/AWB telemetry as read-only parameters (
t20_ae_last_*,t20_awb_last_*).
- No audio playback tests (speaker, echo cancellation) on shared test cameras without explicit agreement.
- Flash only complete OTA images.