Skip to content

Support FFmpeg 8.0 and 8.1 with one patch series - #34

Merged
jpietek merged 11 commits into
developfrom
ffmpeg81-support
Sep 18, 2026
Merged

jpietek merged 11 commits into
developfrom
ffmpeg81-support

Conversation

@jpietek

@jpietek jpietek commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

Moves the demo builds to FFmpeg 8.1 by default, with FFmpeg 8.0 also supported by the same ordered patch series. Removes the duplicated 7.1.5 and 8.1 directories in favor of deps/ffmpeg/8/.

  • Pins both upstream bases and their patched trees in bases.env. Shared apply/verify scripts handle the version-specific NPP configure probe.
  • Carries the seven CUDA composition, scaling, NVDEC, RTP, V4L2 and optional NDI integration patches, plus FFmpeg 8 filter-initialization and live-EOF compatibility fixes.
  • Updates all three CUDA demo Dockerfiles, overlay Compose defaults, patch-identity reporting, tests and build guidance to the shared series.
  • Retains the avcpp custom-IO/CMake backports. The 10-bit mixer and source color conversions remain in the follow-up 10-bit HDR mixer: SDR/HLG/PQ conversion, native 4:2:2, HDR10 outputs, shutdown fixes #33.

Validation: the seven-patch series applies to both n8.0 and n8.1 and reproduces both pinned trees. Overlay Python tests pass (10 tests and 3 subtests). Prior FFmpeg 8.1 GPU validation covered mixer video/browser inputs, transitions, NVENC output, the overlay pixel-reference matrix and recorder reconnect behavior. FFmpeg 8.0 is verified for patch application; no new 8.0 GPU runtime claim is made.

@jpietek jpietek changed the title Support FFmpeg 8.1 alongside 7.1.5: rebased CUDA patch series and live recorder fixes ffmpeg8.1 Sep 16, 2026
Coalesce pending requests across cuts, RTCP feedback, and periodic forcing without delaying video frames. Add the mixer CLI option, native node tests, and a 16-input NVENC rapid-cut/fade regression.

Validated 133 mixer/timing tests and 18 native limiter tests, plus isolated 60 fps NVENC A/B runs.
jpietek and others added 2 commits September 16, 2026 20:02
Replace the per-version directories with a single deps/ffmpeg/8/ series
that applies to both upstream n8.0 and n8.1. The composition-suite
sources are new files (no base context), and the remaining patches are
regenerated with minimal context; the only real 8.0/8.1 difference is
the libnpp configure check 8.1 added that fails on CUDA 13, which the
shared apply.sh rewrites to the stream-context probe (a no-op on 8.0).
verify.sh checks either base against a pinned tree in 8/bases.env.

Remove the 7.1.5 series and the triplicated per-version verify/README/
base.env; the three demo Dockerfiles call apply.sh and default to n8.1.
Net: -5.1k lines of duplicated patch text, one README instead of three.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@jpietek jpietek changed the title ffmpeg8.1 Support FFmpeg 8.0 and 8.1 with one patch series Sep 16, 2026
@jpietek
jpietek merged commit 3f0f840 into develop Sep 18, 2026
0 of 3 checks passed
jpietek added a commit that referenced this pull request Sep 18, 2026
… shutdown fixes

Every source is normalised to the canvas contract (sdr, hlg, pq) on the GPU by
the new tonemap_cuda filter; P010/P210 canvases with 8-bit sources promoted in
the compositor; v210 sources stay 4:2:2; HEVC Main10 with HLG/PQ signalling and
HDR10 static metadata on outputs; filter EOF-tail, Python shutdown and seek
latch fixes; per-node GIL release. Compositor and orchestrator split into
modules under src/mixer (primitives/, orchestrator/), libav/avcpp reused
where the code re-implemented them; the mixer library ships as
pyplumber.mixer. Show files gain working_format, color, latency_ms, v210
sources, tone-mapped renditions and HDR10 metadata; docs and examples follow.

Squash of PR #33 (78 commits) onto develop after #34.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@jpietek
jpietek deleted the ffmpeg81-support branch September 18, 2026 14:21
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