Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/actions/setup-skit/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ runs:
- name: Install system dependencies
if: inputs.runs-on-self-hosted != 'true'
shell: bash
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm
# libclang-dev is needed by bindgen (env-libvpx-sys "generate" feature);
# the free-disk-aggressive step removes the runner's preinstalled llvm.
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm libclang-dev

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
cache-on-failure: true

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm cmake ninja-build yasm meson ffmpeg
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm libclang-dev cmake ninja-build yasm meson ffmpeg
Comment thread
staging-devin-ai-integration[bot] marked this conversation as resolved.

- name: Build and install SVT-AV1 from source (v4.1.0)
run: |
Expand Down Expand Up @@ -182,9 +182,6 @@ jobs:

- name: Build skit (with GPU + HW codecs + SVT-AV1 + dav1d)
env:
VPX_LIB_DIR: /usr/lib/x86_64-linux-gnu
VPX_INCLUDE_DIR: /usr/include
VPX_VERSION: "1.13.0"
CUDA_INCLUDE_PATH: /usr/include
# bindgen (used by shiguredo_nvcodec) needs the clang builtin include
# path so it can find stddef.h and other compiler-provided headers.
Expand Down Expand Up @@ -291,7 +288,7 @@ jobs:
cache-on-failure: true

- name: Install system dependencies (libvpx for VP9, nasm for AV1 assembly, meson for dav1d)
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm cmake ninja-build yasm meson
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm libclang-dev cmake ninja-build yasm meson

- name: Build and install SVT-AV1 from source (v4.1.0)
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pipeline-validation-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
- uses: mozilla-actions/sccache-action@v0.0.9

- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm cmake ninja-build yasm meson ffmpeg
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm libclang-dev cmake ninja-build yasm meson ffmpeg

- name: Build and install SVT-AV1 from source (v4.1.0)
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
cache-on-failure: true

- name: Install system dependencies (libvpx for VP9, cmake + nasm for AV1 static build)
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm cmake
run: sudo apt-get update && sudo apt-get install -y libvpx-dev nasm libclang-dev cmake

- name: Build release binaries
# -fuse-ld=bfd: override rust-lld with the system linker (ld.bfd).
Expand Down
7 changes: 0 additions & 7 deletions .github/workflows/skit.yml

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.

📝 Info: libclang-dev additions consistent across build environments

This PR enables the generate feature on env-libvpx-sys (crates/nodes/Cargo.toml:79), which runs bindgen at build time and therefore requires libclang-dev. The corresponding apt-get install additions were applied to the setup-skit composite action and hosted-runner workflows (e2e.yml, pipeline-validation-nightly.yml, release.yml), and all Dockerfiles already include libclang-dev. The self-hosted GPU jobs (test-gpu in skit.yml, pipeline-validation-gpu in e2e.yml) do not add libclang-dev to their apt steps, but those jobs already rely on a preinstalled LLVM/clang (they set BINDGEN_EXTRA_CLANG_ARGS for shiguredo_nvcodec's bindgen). This is a runner-environment assumption that cannot be verified from the repo, but is consistent with pre-existing behavior. Worth a quick confirmation that the self-hosted runners actually have libclang available for the vp9 build path.

(Refers to lines 168-171)

Open in Devin Review (Staging)

Was this helpful? React with 👍 or 👎 to provide feedback.

Debug

Playground

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.

Confirmed: the self-hosted GPU jobs (Skit / Test (GPU), E2E / Pipeline Validation (GPU)) already passed on the first run of this PR with generate enabled, so libclang is available on those runners.

Original file line number Diff line number Diff line change
Expand Up @@ -172,13 +172,6 @@ jobs:

- name: Run GPU tests
env:
# The self-hosted runner runs Ubuntu 24.04 which ships libvpx 1.14.0,
# but env-libvpx-sys 5.1.3 only has pre-generated FFI bindings up to
# 1.13.0. Setting VPX_LIB_DIR bypasses pkg-config version detection
# and VPX_VERSION selects the 1.13.0 bindings (backward-compatible).
VPX_LIB_DIR: /usr/lib/x86_64-linux-gnu
VPX_INCLUDE_DIR: /usr/include
VPX_VERSION: "1.13.0"
# Ubuntu's nvidia-cuda-toolkit installs headers to /usr/include, not
# /usr/local/cuda/include. Tell shiguredo_nvcodec where to find them.
CUDA_INCLUDE_PATH: /usr/include
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ Run `just --list` to see all available commands.

```bash
sudo apt install libopus-dev cmake pkg-config libssl-dev
# Optional for VP9/video builds and VP9 sample pipelines:
sudo apt install libvpx-dev
# Required for the default build (VP9 bindings are generated at build time):
sudo apt install libvpx-dev libclang-dev
```

### Rust toolchain
Expand Down
48 changes: 48 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion crates/nodes/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ symphonia = { version = "0.6.0", optional = true, default-features = false, feat
] }
webm = { version = "2.2.0", optional = true }
shiguredo_mp4 = { version = "2026.3", optional = true }
env-libvpx-sys = { version = "5.1.3", optional = true }
# "generate" runs bindgen at build time: the crate's newest pregenerated
# bindings stop at libvpx 1.13, but Ubuntu 24.04 ships 1.14.
env-libvpx-sys = { version = "5.1.3", features = ["generate"], optional = true }
Comment thread
staging-devin-ai-integration[bot] marked this conversation as resolved.
image = { version = "0.25.10", optional = true, default-features = false, features = ["png", "jpeg"] }
tiny-skia = { version = "0.12.0", optional = true }
resvg = { version = "0.47", optional = true, default-features = false }
Expand Down
Loading