Skip to content

Sync to v0.17.1 — drop HEVC RTP Aggregation Packets + dual-record mode gate#87

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

Sync to v0.17.1 — drop HEVC RTP Aggregation Packets + dual-record mode gate#87
snokvist merged 1 commit into
OpenIPC:masterfrom
snokvist:sync/v0.17.1

Conversation

@snokvist

Copy link
Copy Markdown
Collaborator

Syncs OpenIPC/waybeam_venc from v0.16.0 → v0.17.1. Two functional changes plus docs; no protocol/port/API surface changes beyond the RTP narrowing described below.

v0.17.0 — Drop HEVC RTP Aggregation Packets (single-NAL + FU-A only)

AP (NAL type 48) removed from both backends. The wire is now single-NAL + FU-A only, the universally-supported subset of RFC 7798.

In single-slice H.265 only VPS/SPS/PPS aggregated, and bundling the parameter set into one datagram made a single loss take out the whole GOP on a lossy RF link. AP also broke single-NAL+FU-A-only (majestic-tuned) depacketizers, which forwarded type-48 packets as corrupt video. Net negative for the FPV profile.

  • HevcApBuilder deleted; send_nal/prepend_param_sets no longer take a builder. VPS/SPS/PPS prepend as separate packets on IDR.
  • HevcRtpStats drops ap_packets/ap_nals; [pktzr] line becomes nals N | rtp N | fill N B | single N | fu N.
  • Dead h26x_util_hevc_get_layer_id/_get_tid_plus1 removed.
  • Tests assert no type-48 packet is ever emitted; TRAIL_N survives single-NAL + FU paths.
  • Device-verified on Star6E IMX335: [pktzr] … single N | fu N, 60 fps, 0 drops.

v0.17.1 — gate dual-VENC creation on record.mode, not record.enabled

Cherry-picked from PR #86 by @wkumik (9410bd7, authorship preserved via -x).

Dual-record mode never engaged under runtime control: with record.enabled=false + /api/v1/record/start, ps->dual stayed NULL and the record path fell back to mirror mode, capturing ch0 (stream bitrate) instead of ch1 (record.bitrate). Channel topology now follows record.mode alone; record.enabled still controls only boot auto-start. Star6E only.

  • Device-verified by @wkumik on ssc338q + imx415: post-fix recording captured ch1 at 41.3 Mbps / 1.0 s GOP (was ch0 ~5.2 Mbps / 0.25 s GOP).

This sync supersedes PR #86 — that PR will be closed with credit once this lands.

Docs

Single-PID reinit findings (STAR6E_SINGLE_PID_REINIT_FINDINGS.md), REFACTORING_PLAN / README / CRASH_LOG coherence.

Verification

  • SOC_BUILD=star6e make build + SOC_BUILD=maruko make build clean.
  • make test1653 passed, 0 failed.

🤖 Generated with Claude Code

…e gate

Brings upstream from v0.16.0 to v0.17.1. Two functional changes plus docs.

v0.17.0 — Drop HEVC RTP Aggregation Packets (fork #142)
  AP (NAL type 48) removed from both backends; the wire is now single-NAL +
  FU-A only, the universally-supported subset of RFC 7798. In single-slice
  H.265 only VPS/SPS/PPS aggregated, and bundling the parameter set into one
  datagram made a single loss take out the whole GOP on a lossy link; it also
  broke majestic-tuned (single-NAL+FU-A-only) depacketizers. HevcApBuilder
  deleted; VPS/SPS/PPS now prepend as separate packets on IDR. HevcRtpStats
  drops ap_packets/ap_nals; [pktzr] line is nals N | rtp N | fill N B |
  single N | fu N. Dead h26x_util_hevc_get_layer_id/_get_tid_plus1 removed.
  Device-verified on Star6E IMX335 (192.168.1.13).

v0.17.1 — gate dual-VENC creation on record.mode, not record.enabled
  Cherry-picked from PR #86 by @wkumik (commit 9410bd7, authorship preserved).
  Dual-record mode never engaged under runtime control: with
  record.enabled=false + /api/v1/record/start, ps->dual stayed NULL and the
  record path fell back to mirror mode, capturing ch0 (stream bitrate) instead
  of ch1 (record.bitrate). Channel topology now follows record.mode alone;
  record.enabled still controls only boot auto-start. Star6E only.
  Device-verified by @wkumik on ssc338q + imx415.

Docs: single-PID reinit findings (fork #141), REFACTORING_PLAN/README/CRASH_LOG.

Both backends build clean (star6e + maruko); 1653 host tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@snokvist snokvist merged commit fd4307c into OpenIPC:master Jun 13, 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