Skip to content

build(container): cherry-pick media-codec cleanup + build gate + NVDEC video decode (OPS-7665) (#11836) - #12703

Merged
pvijayakrish merged 5 commits into
release/1.4.0from
dtokarev/ops-7665-codec-compliance-1.4.0
Aug 6, 2026
Merged

build(container): cherry-pick media-codec cleanup + build gate + NVDEC video decode (OPS-7665) (#11836)#12703
pvijayakrish merged 5 commits into
release/1.4.0from
dtokarev/ops-7665-codec-compliance-1.4.0

Conversation

@dmitry-tokarev-nv

@dmitry-tokarev-nv dmitry-tokarev-nv commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Cherry-pick of #11836 (b310cda917, merged to main 2026-08-05) onto release/1.4.0: media-codec cleanup across the three runtime images, a build-failing codec allowlist gate in the compliance stage, and H.264/H.265 video input via NVDEC hardware decode (PyNvVideoCodec) in all three backends.

Linear OPS-7665

Details

Identical to the merged commit except three adaptations to this branch:

  1. container/templates/wheel_builder.Dockerfile — dropped request-trace-s3 from the two maturin --features lists. That cargo feature comes from feat(request-trace): native S3 sink for request-trace records #11806, which is not on release/1.4.0; keeping it would fail the bindings build with an unknown-feature error. The framework split itself (SGLang builds without media-ffmpeg) is preserved.
  2. Docs layout — this branch predates the docs restructure, so the six docs changes are re-homed from docs/fern/pages/... to this branch's docs/fern/features/... tree (git rename detection mapped five; the new page video-decode-gpu-requirements.md was placed at features/multimodal/).
  3. docs/fern/index.yml — the new page's nav entry uses the features/multimodal/ path; this branch's existing nav paths are left untouched.

Conflicts resolved: video_loader.py (import block, incoming superset taken; HttpStatusError/UrlValidationError both exist on this branch), wheel_builder.Dockerfile and index.yml as above.

Where should the reviewer start?

The three adaptation points above; everything else is byte-identical content already reviewed and merged in #11836.

Validation

  • All 11 Dockerfile flavours render from templates on this branch (vLLM/SGLang/TRT-LLM/dynamo × cuda/xpu × amd64/arm64 × runtime/dev via container/render.py); rendered maturin feature lists verified — no request-trace-s3, SGLang unconditional non-media build, vLLM keeps the ENABLE_MEDIA_FFMPEG conditional.
  • 22/22 compliance-gate unit tests (container/compliance/tests/test_scan_codecs.py) pass on this branch; codec policy loads (25 deny globs, 3 exceptions).
  • py_compile clean on all 37 changed Python files; nav YAML parses.
  • File-set audit vs the original squash: 70 files both sides; only difference is the 5 docs path translations (1:1).
  • The full content was validated on GPU (RTX 6000 Ada) and by full CI on the source PR before its merge to main.

Related Issues

Relates to #11836

🤖 Generated with Claude Code


Open in Devin Review

…de (OPS-7665) (#11836)

Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
Co-authored-by: Harrison King Saturley-Hall <hsaturleyhal@nvidia.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit b310cda)
Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
@dmitry-tokarev-nv
dmitry-tokarev-nv requested review from a team as code owners August 5, 2026 17:02
@github-actions github-actions Bot added build documentation Improvements or additions to documentation backend::vllm Relates to the vllm backend backend::sglang Relates to the sglang backend backend::trtllm Relates to the trtllm backend frontend `python -m dynamo.frontend` and `dynamo-run in=http|text|grpc` multimodal container xpu labels Aug 5, 2026

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 6 potential issues.

Open in Devin Review

Comment thread docs/fern/features/multimodal/multimodal-vllm.md Outdated
Comment thread container/deps/requirements.sglang.txt
Comment thread components/src/dynamo/common/utils/video_utils.py
Comment thread components/src/dynamo/common/multimodal/video_loader.py
Comment thread components/src/dynamo/common/multimodal/nvdec_decoder.py
@datadog-official

This comment has been minimized.

# Conflicts:
#	container/templates/vllm_runtime.Dockerfile
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

dmitry-tokarev-nv and others added 3 commits August 5, 2026 19:47
The cherry-pick resolved the import-block conflict by taking main's
superset, but the except-chain that uses HttpStatusError and
UrlValidationError reached main through a commit that is not part of
this cherry-pick, so on release/1.4.0 the file's body never references
them. The full-tree ruff hook correctly flags the unused imports; remove
them rather than widen the cherry-pick's scope with the unrelated
typed-error-preservation change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
After dropping the two unused names, the remaining two-name import fits
on one line and ruff format collapses the parenthesized form. Verified
locally with the full pre-commit suite (pre-commit run --all-files):
all hooks pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
The picked backend pages carried main-layout relative links
(../../../../../use-cases/...) that resolve from main's five-level-deep
backend pages but climb out of the repository from this branch's
features/multimodal/ layout. The target page landed in the same
directory here, so link it directly. The nav entry in
docs/fern/index.yml already exists; no change needed there.

Verified: every relative link in all seven docs files this PR touches
now resolves, and the full pre-commit suite passes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Dmitry Tokarev <dtokarev@nvidia.com>
@pvijayakrish
pvijayakrish merged commit 31d9eed into release/1.4.0 Aug 6, 2026
114 of 115 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend::sglang Relates to the sglang backend backend::trtllm Relates to the trtllm backend backend::vllm Relates to the vllm backend build container documentation Improvements or additions to documentation frontend `python -m dynamo.frontend` and `dynamo-run in=http|text|grpc` multimodal size/XXL xpu

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants