Repository navigation
Environment Variables
OpenIMP reads about 85 OPENIMP_* variables (84 distinct names in src/ at aperto). They are read by libimp.so inside the streamer process, so set them in the streamer's init script or environment, not in your login shell.
Class: user-facing means safe to set in production. debug-only means diagnostics or A/B rollback; do not set in production.
| Variable | Purpose | Default | Class |
|---|---|---|---|
OPENIMP_REF_SHARE |
0 disables the T21/T23 reference ring |
on | user-facing |
OPENIMP_T31_HW_JPEG |
0 selects the software JPEG encoder on T31 |
on | user-facing |
OPENIMP_T31_OSD |
0 disables the IPU OSD backend on T31 |
on | user-facing |
OPENIMP_T20_RC |
0 disables the T20 OEM rate controller (CBR/VBR; needs the kernel patch for the NVPU statistics registers) and falls back to the GOP controller |
on | user-facing |
OPENIMP_T10_RC |
0 disables the T10 OEM-style rate controller (CBR/VBR) |
on | user-facing |
OPENIMP_T10_RC_SUPERFRM |
0 restores vendor-exact T10 VBR (only inside the OEM controller) |
on | user-facing |
OPENIMP_T20_RC_IAWARE |
0 vendor P budget, 1 also for VBR/SMART (inside the OEM controller) |
on for CBR | user-facing |
OPENIMP_T31_RC_CORE |
legacy restores the pre-Allegro rate-control core |
allegro | user-facing |
OPENIMP_T21_EPRC |
T21: 0 restores the old GOP controller (vendor-identical eprc is the default) |
on | user-facing |
OPENIMP_T23_EPRC |
T23: 1 runs eprc for CBR/VBR too, 0 never; unset = eprc for SMART only |
SMART only | user-facing |
OPENIMP_T20_MBRC |
1 enables the macroblock-level rate control inside the T20 OEM controller |
off | user-facing (opt-in) |
OPENIMP_EPRC_MBRC |
1 enables the macroblock-level RC on T21/T23 |
off | user-facing (opt-in) |
OPENIMP_EPRC_QP_DOWN1 |
1/2 limits how fast QP may fall (T21/T23) |
off | user-facing (opt-in) |
OPENIMP_MOTION_V2 |
motion v2 (bounding boxes, strength, false-alarm suppression): unset, 1/on/all = all features; 0/off/vendor = vendor algorithm; shadow = all but override; a number = feature mask. Fine tuning: OPENIMP_MOTION_V2_BG/_SUPPRESS/_BLOBS/_OVERRIDE (0/1) and parameters _LEARN, _K, _MIN_DELTA, _SUPPRESS_MS, _JUMP_PCT, _MIN_CELLS, _MIN_FRAMES, _MIN_MOVE. See Beyond the Vendor
|
on (since 2026-10-04) | user-facing |
OPENIMP_LOG_SYSLOG |
1 also logs to syslog |
off | user-facing |
Note on OPENIMP_T10_RC / OPENIMP_T20_RC: the OEM-style controller is the default on T10/T20 in aperto (device-tested on cam-C and cam-E); it only runs for CBR and VBR, other modes use the GOP controller. Older notes that call it opt-in are outdated. Read the "effective rate control" log line at channel creation to see what actually runs.
| Variable | Purpose | Class |
|---|---|---|
OPENIMP_RMEM_BASE, OPENIMP_RMEM_SIZE
|
Override the rmem window (both required, page aligned); rejected with a log line if invalid | debug-only |
OPENIMP_DISABLE_RMEM |
1 skips /dev/rmem (T31 workaround) |
debug-only |
OPENIMP_RMEM_NO_REUSE |
1 restores the old behaviour without reuse |
debug-only |
OPENIMP_RMEM_MAP |
also logs every live allocation | debug-only |
OPENIMP_RMEM_TRACE |
rmem allocation tracing | debug-only |
OPENIMP_REF_SHARE_GAP, OPENIMP_REF_SHARE_DEBUG
|
reference sharing tuning/debug | debug-only |
| Variable | Purpose | Class |
|---|---|---|
OPENIMP_PROFILE, OPENIMP_PROFILE_INTERVAL
|
periodic profile report; interval in completed frames | debug-only |
OPENIMP_DEBUG_TRACE, OPENIMP_STARTUP_TRACE
|
very verbose tracing | debug-only |
OPENIMP_MOTION_V2_LOG |
1 = one stderr line per change of the vendor or v2 motion decision |
debug-only |
OPENIMP_T31_VBR_LOOP |
0 forces open-loop VBR on T31 |
debug-only |
OPENIMP_T31_AVC_LEGACY |
1 restores the pre-fix T31 H.264 recovery path |
debug-only |
OPENIMP_T31_COMPANION_STAGE |
0 skips the AVPU JPEG companion core per H.264 frame |
debug-only |
OPENIMP_T31_HW_JPEG_SRC_COHERENT |
1 puts the JPEG source in coherent memory |
debug-only |
OPENIMP_T41_STREAM_COPY_MODE, OPENIMP_T41_RATE_CONTROL_COUPLING, OPENIMP_T41_UNCACHED_COMMAND_RING, OPENIMP_T41_UNCACHED_EP3_RING
|
=0 rolls back T41 behaviour |
debug-only |
OPENIMP_T31_IVS_STATS, OPENIMP_AEC_STATS, OPENIMP_SOURCE_STATS, OPENIMP_T31_FULL_FRAME_STATS, OPENIMP_T23_RC_STATS, OPENIMP_T20_RC_STATS
|
periodic statistics output | debug-only |
OPENIMP_HELIX_SOC |
t10/t20 overrides the SoC probe of the combined T10/T20 build |
debug-only |
OPENIMP_T30_HELIX_TIMEOUT_MS, OPENIMP_T23_HELIX_TIMEOUT_MS
|
shorter Helix wait than the OEM 20 s (100..20000), for testing the failure limit | debug-only |
OPENIMP_T23_*, OPENIMP_HELIX_*, OPENIMP_P1_*, OPENIMP_P2_*
|
internal bring-up/trace switches, not documented | internal |
Further variables exist in the source; treat everything not listed here as internal. Variables are read once, usually at channel or interface creation, so a restart of the streamer is needed.