The pre-roll drained only the video pipe (fc_pipe) while the audio FIFO kept buffering, so ffmpeg read ~PRE_ROLL_SECONDS of surplus pre-roll audio — making audio longer than video, which when synced compresses audio ~0.5% (pitch-up, measured: 2591573 audio samples vs 2579395 expected for the video duration). In standby the framecache slot is already warm (no unstable startup frames), so the drain is unnecessary; skipping it lets ffmpeg open video and audio together from the same instant. Cold on-demand spawns keep the brief drain. |
||
|---|---|---|
| .. | ||
| decklink-bridge | ||
| deltacast-bridge | ||
| sdk | ||
| src | ||
| .dockerignore | ||
| decklink-sdk16.patch | ||
| Dockerfile | ||
| package.json | ||
| patch_decklink.py | ||