31 lines
2.1 KiB
Markdown
31 lines
2.1 KiB
Markdown
## Context
|
|
|
|
The current harness sends one fixed 1,179-byte payload per logical sample. It reaches the production path but does not represent encoded frames at 60/120 FPS or exercise realistic fragmentation, reassembly, queue bytes, and keyframe pressure.
|
|
|
|
The complete-frame fixture also must preserve the pinned Apollo source schedule. For each frame it derives packets per millisecond from the raw UDP block size at 80% of 1 Gbps, limits source batches to both 64 KiB and 64 packets, and carries the next-send time into the following frame. Waiting is context-cancellable. This is qualification-fixture behavior only; production transport and queue behavior remain unchanged.
|
|
|
|
Because the bounded fixture uses loopback rather than a physical 1 Gbps link, each batch begins at its cumulative wire-rate offset. This preserves Apollo's raw-block rate and batch ceilings without collapsing multiple batches into an instantaneous loopback burst.
|
|
|
|
## Goals / Non-Goals
|
|
|
|
**Goals:**
|
|
|
|
- Deterministically generate complete variable-size frame units at exact profile frame rates and target bitrates.
|
|
- Include bounded periodic keyframes while preserving exact aggregate bytes.
|
|
- Measure the existing production path and independent reassembly with frame-level accounting.
|
|
|
|
**Non-Goals:**
|
|
|
|
- A real encoder, codec parsing, a second simulator, or a normative run before immutable Protocol publication.
|
|
|
|
## Decisions
|
|
|
|
- Derive bytes per fixed interval from bitrate and FPS, distribute integer remainder deterministically, and shift bounded bytes into periodic keyframes while keeping the interval total exact.
|
|
- Carry a deterministic frame index/pattern only in the generated payload bytes; no codec semantics are claimed.
|
|
- Keep the existing path/impairment/resource driver and change its unit from datagram payload to complete frame.
|
|
|
|
## Risks / Trade-offs
|
|
|
|
- [Keyframes can exceed queue budget] → use the reviewed 1 MiB frame ceiling and production byte-bound queue.
|
|
- [Short smoke windows have rounding effects] → assert exact generated totals and report measured duration separately from normative ten-minute gates.
|