Skip to content

Sync to v0.15.0 — stabilization (FramingModule + stab-fill + Kalman/WebUI) + RTP RT-priority fix#83

Merged
snokvist merged 1 commit into
OpenIPC:masterfrom
snokvist:sync/v0.15.0
Jun 6, 2026
Merged

Sync to v0.15.0 — stabilization (FramingModule + stab-fill + Kalman/WebUI) + RTP RT-priority fix#83
snokvist merged 1 commit into
OpenIPC:masterfrom
snokvist:sync/v0.15.0

Conversation

@snokvist

@snokvist snokvist commented Jun 6, 2026

Copy link
Copy Markdown
Collaborator

Squash-sync of snokvist/waybeam_venc master onto upstream. Supersedes #81 (feat(star6e): DIS on VPE) — this carries the full evolution of the stabilization feature plus the rest of the fork delta since the v0.11.0 sync (#78). VERSION 0.11.0 → 0.15.0.

Single snapshot commit: its tree equals fork master and its parent is the current upstream master, so it fast-forwards cleanly.

Stabilization (replaces #81 — functional superset)

  • FramingModule registry with STAB compile flag (star6e_framing.h)
  • HW-crop stab + floating-image stab-fill presets sharing the IVE detector / geometry / unified Kalman trajectory smoother
  • pauseStab (software ramp, no rebind) on both presets
  • data-driven field schema (FieldDesc.ui/api/v1/capabilities → generic dashboard renderer); stabKalmanQ / stabKalmanR exposed
  • zoom-3x / zoom-4x presets; stab tuning knobs; runtime libmi_ive.so / libmi_rgn.so

RTP delivery jitter — encoder/blit thread RT priority

The Star6E GetStream→packetize→sendto path (and the stab-fill blit thread) ran at SCHED_FIFO priority 1 (the RT floor), so it was preempted mid-frame → periodic ~one-frame RTP delivery stall. Raised to SCHED_FIFO 50 (above userspace RT peers, below the SDK's SCHED_RR/98). Tunable via VENC_RT_PRIO (1..80; =1 = old behaviour). Device-validated: 14 → 0 idle-gap spikes / 95 s at framing=off. Documented in README → Adaptive Encoder Control → Encoder thread priority.

Preserved from upstream

The #79 RGN-settle fix (VENC_OSD_DESTROY_SETTLE_US), #80 fd-cleanup, and the venc→waybeam rebrand are all present in this snapshot (no regressions).

Verification

make verify (Star6E STAB=1/STAB=0 + Maruko) + 1637 host tests pass. Stabilization + RT fix device-validated on imx335 (Star6E).

…ebUI) + RTP RT-priority fix

Squash-sync of snokvist/waybeam_venc master onto upstream. Supersedes
PR #81 (feat(star6e): DIS on VPE): carries the full evolution of the
stabilization feature plus the rest of the fork delta since the v0.11.0
sync (#78).

Stabilization (replaces #81, functional superset):
- FramingModule registry with STAB compile flag (star6e_framing.h)
- HW-crop "stab" + floating-image "stab-fill" presets sharing the IVE
  detector / geometry / unified Kalman trajectory smoother
- pauseStab (software ramp, no rebind) on both presets
- data-driven field schema (FieldDesc.ui -> /api/v1/capabilities -> generic
  dashboard renderer); stabKalmanQ / stabKalmanR exposed
- zoom-3x / zoom-4x presets; stab tuning knobs; runtime libmi_ive/rgn libs

RTP delivery jitter:
- encoder GetStream->packetize->send thread and (under stab-fill) the blit
  thread raised to SCHED_FIFO 50 (VENC_RT_PRIO, clamped 1..80) so they are
  not preempted mid-frame; eliminates periodic one-frame delivery stalls.
  Device-validated: 14->0 idle-gap spikes/95s at framing=off. Documented in
  README (Adaptive Encoder Control -> Encoder thread priority).

make verify (star6e STAB=1/0 + maruko) + 1637 host tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@snokvist snokvist merged commit 6440d28 into OpenIPC:master Jun 6, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant