Skip to content

Bump FilmCraft to 4e2d0bc2 (part of #804) - #1603

Open
vangel76 wants to merge 2 commits into
storytold:mainfrom
vangel76:filmcraft-pin-bump
Open

vangel76 wants to merge 2 commits into
storytold:mainfrom
vangel76:filmcraft-pin-bump

Conversation

@vangel76

Copy link
Copy Markdown
Contributor

Part of #804.

Why

#819 (hardware video decoding) needs a newer FilmCraft than the pinned 2c5ba7a. The pin bump is the only part of that PR that touches existing code, so it is split out here to be reviewed on its own. #819 builds on this PR. This PR adds no filmcraft-platform dependency, no hardware setting and no register() call.

What changed

All filmcraft-* git deps move from 2c5ba7a (2026-10-03) to FilmCraft main 4e2d0bc2 (2026-10-10).

  • API: MediaInfo.audio became audio_streams (audio() / has_audio()), and VideoStreamInfo gained hdr. Mechanical fixes in interchange, media and two tests.
  • Behaviour 1, frame requests: FilmCraft now rounds a frame request to the track's nearest timestamp unit, halves up. The media pool asked for the middle of frame i; when the timescale equals the frame rate (our own 10 fps MP4 / MOV exports) that rounds onto frame i+1. The pool now asks a quarter of the way into the frame, which still tolerates timestamps rounded either way (one line in pool.rs). This fixed the export round-trips for H.264 / HEVC / AV1 / ProRes and the automation qa::kinetic test.
  • Behaviour 2, VP9 tests: filmcraft_vp9::Decoder::new() now uses frame threads, so a picture can come out of a later call. The VP9 encoder tests expect one picture per call, so they use Decoder::with_threads(1). Only test code uses the VP9 decoder.
  • Rotation and AAC downmix: adapted to the new FilmCraft behaviour (media/src/probe.rs, downmix.rs, pool.rs).
  • Lockfile: new FilmCraft crates pulled in by filmcraft-export (render, text, captions, audio-dsp). No filmcraft-platform.

What maintainers must decide

Only the pin: whether to move to FilmCraft 4e2d0bc2.

Gates

cargo fmt --check, cargo clippy --workspace --all-targets -- -D warnings, full cargo test of effectcraft-media, -export, -interchange, -render, -engine, -host and -vp9enc (all green), cargo xtask layers, cargo xtask wasm. Assets unchanged.

🤖 Generated with Claude Code

Problem: the hardware-decoding work (storytold#819) needs a newer FilmCraft than the
pinned 2c5ba7a, and the pin bump should be reviewable apart from it.

Fix: move all filmcraft-* deps to 4e2d0bc2. Adapt to MediaInfo.audio ->
audio_streams and VideoStreamInfo.hdr; ask the pool for a quarter into the
frame because FilmCraft now rounds requests half up; adapt rotation and the
AAC downmix; use Decoder::with_threads(1) in the VP9 tests. No
filmcraft-platform, no hardware setting.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@vangel76

Copy link
Copy Markdown
Contributor Author

Merged current main and resolved conflicts in Cargo.toml (kept the new filmcraft rev for interchange/project/geom, and kept main's symphonia aiff entry).

This branch has not been deployed

No deployments
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