Brandon Thomas and Claude Opus 5.5
c6cfa8ddb3
M9.10: Matroska/WebM import (H.264/HEVC/ProRes/MJPEG video; AAC/FLAC/MP3/Vorbis/PCM audio); GOP random access shared by MP4 and MKV sources (codecs::gop)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:30:12 -04:00
Brandon Thomas and Claude Opus 5.5
e9fb033591
ROADMAP: correct line count
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:19:46 -04:00
Brandon Thomas and Claude Opus 5.5
477bf3dcc0
ROADMAP: HEVC, Matroska, audio DSP merged; new running agents
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:19:37 -04:00
Brandon Thomas and Claude Opus 5.5
ac63aad991
AGENTS.md asset rules (no Adobe iconography/images; open licences only; per-asset .attribution sidecars + ATTRIBUTION.md), cargo xtask assets gate in ci; hevc test fixture temp names unique per thread
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:18:48 -04:00
Brandon Thomas
498ac6da23
Merge branch 'worktree-agent-a4193d1e7345108d5'
2026-09-30 11:12:22 -04:00
Brandon Thomas and Claude Opus 5.5
d3ed28ed61
Cargo.lock: hevc in codecs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:12:22 -04:00
Brandon Thomas and Claude Opus 5.5
345b4162cf
M9.3: HEVC (Main/Main 10) wired into codecs — MP4/MOV hvc1/hev1 import and playback
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:11:25 -04:00
Brandon Thomas and Claude Opus 5.5
23b76f3d8e
M7.3: audio effects
...
Parametric (8-band) and simple 3-band EQ, compressor, expander/gate,
true-peak look-ahead limiter, delay (ms/tempo), FDN reverb, amplify,
channel volume, balance/pan, invert, swap, fill L/R, DeHum, STFT
DeNoise, phase-vocoder pitch shifter; AudioEffect trait + registry with
parameter specs. Tests cover responses, dynamics curves, ceiling,
stability, denormals, block-size independence and reset.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:08:36 -04:00
Brandon Thomas
2e6adb1a20
Merge branch 'worktree-agent-a14267622437e4bbe'
2026-09-30 11:08:28 -04:00
Brandon Thomas
51acfddf66
Merge M9.1/M9.2: filmcraft-hevc decoder (Main/Main 10, bit-exact on 41 fixtures)
2026-09-30 11:08:07 -04:00
Brandon Thomas and Claude Opus 5.5
214d076bdb
README: hero screenshot of the demo project, highlights, quick start, Craft family table; status messages expire after 8 s
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:08:00 -04:00
Brandon Thomas and Claude Opus 5.5
3ccd91820e
M9.9: Matroska/WebM demuxer
...
Clean-room filmcraft-matroska (L0, std only, wasm-clean) from RFC 8794/9559:
EBML reader (VINT ids/sizes, unknown sizes, CRC-32, Void, resync on damage),
Segment metadata (Info, Tracks incl. Colour/HDR mastering, ContentEncoding
header stripping, SeekHead, Cues, Chapters, Tags, Attachments), cluster scan
into isobmff-style sample tables, streaming Demuxer (Read+Seek / slice),
Xiph/EBML/fixed lacing, keyframe seek via index/Cues/on-demand scan, CodecID
mapping. Minimal MkvWriter (SimpleBlocks, lacing, Cues, SeekHead).
ffprobe-oracle tests over 12 ffmpeg fixtures plus laced remuxes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:07:40 -04:00
Brandon Thomas and Claude Opus 5.5
9127df3830
M9.2: filmcraft-hevc synthetic streams (tiles, PCM, slices, dependent segments, LTR, list modification), README, example
...
A small CABAC encoder in src/synth_tests.rs writes streams with coding tools
libx265 never emits; outputs are checked exactly (unfiltered PCM) and against
ffmpeg. README documents status, fixture matrix, performance and gaps.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 11:01:09 -04:00
Brandon Thomas and Claude Opus 5.5
627c230871
M7.1: BS.1770 loudness meter
...
New crate filmcraft-audio-dsp (L1, dependency-free): K-weighting for any
sample rate via bilinear transform, momentary/short-term/integrated
(gated) loudness, LRA (Tech 3342), sample and true peak (polyphase 4x),
normalisation helper, RBJ biquads, radix-2 FFT, parameter smoothing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:58:11 -04:00
Brandon Thomas and Claude Opus 5.5
fe25ea2926
Add ROADMAP.md: parity estimate, milestone status, remaining agent-hours
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:58:09 -04:00
Brandon Thomas and Claude Opus 5.5
a3969d9d8e
M5.1: keyframe value/velocity graphs (drag values, Bezier influence handles), effects.setKeyframe; synthetic pointer input one event per frame so ui.drag produces real drags
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:57:29 -04:00
Brandon Thomas and Claude Opus 5.5
77a096884b
M9.9: Matroska/WebM demuxer (WIP: EBML reader, metadata, cluster scan, packets, seek)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:57:02 -04:00
Brandon Thomas and Claude Opus 5.5
d0304c41b8
M9.1: filmcraft-hevc — clean-room H.265 decoder (Main / Main 10)
...
Parameter sets (VPS/SPS/PPS incl. VUI, scaling lists, short/long-term RPS,
tiles, WPP entry points), slice segment headers, POC / RPS / DPB management
with bumping, CABAC for all Main/Main10 syntax elements, coding / transform
quadtrees, AMP, PCM, transform skip, lossless bypass, intra prediction (35
modes, substitution, filtering, strong smoothing), merge / AMVP / TMVP,
8-tap / 4-tap interpolation, weighted prediction, DCT 4..32 / DST, scaling,
deblocking and SAO run row-pipelined, frame-threaded decoding.
Syntax tables extracted from the ITU-T H.265 text by tools/extract_tables.py.
41 libx265 / VideoToolbox fixtures bit-exact vs ffmpeg (single and
multi-threaded).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:11:22 -04:00
Brandon Thomas and Claude Opus 5.5
581e31b432
M0.12: xtask layers/wasm/ci gates (layer table, same-layer allow-list, UI crates barred below L5); cargo alias
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:02:36 -04:00
Brandon Thomas and Claude Opus 5.5
3f3265bb35
M6: H.264 MP4 export (own encoder, High profile, VBR, B-frames with edit list) + AAC
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 09:38:45 -04:00
Brandon Thomas
bd816ead68
Merge M6.1: filmcraft-h264enc encoder
2026-09-30 09:35:35 -04:00
Brandon Thomas and Claude Opus 5.5
3dff6e78e2
M8: Lumetri curves, hue curves, colour wheels, looks, HSL secondary (render + panel UI); Color workspace layout
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 09:35:22 -04:00
Brandon Thomas and Claude Opus 5.5
97ffb5acfb
M6.1: filmcraft-h264enc stage 2 — B 16x8/8x16 partitions with per-partition L0/L1/Bi
...
Motion vector predictors are re-derived in decoding order from the chosen per-partition directions.
Stage 2 set: B-frames (1-3, spatial direct, B_Skip, concurrent B encoding), variance AQ, RD-lite (Quality).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 09:33:43 -04:00
Brandon Thomas and Claude Opus 5.5
7103b58df9
M6.1: filmcraft-h264enc — clean-room H.264 encoder (High/Main/Baseline, CABAC/CAVLC, intra/inter mode decision, deblocking, RC)
...
- SPS/PPS/AUD/SEI with VUI (SAR, colour description, timing, reorder), avcC, Annex-B or length-prefixed packets
- Intra 16x16/4x4/8x8 + chroma, hexagon ME with half/quarter-sample refinement, 16x16/16x8/8x16/8x8, P_Skip
- B-frames (1-3, spatial direct/B_Skip, L0/L1/Bi), variance AQ, scene-cut IDR
- 4x4/8x8 transforms, deadzone quant, decimation; normative deblocking in the loop
- CABAC (init tables checked against the spec text) and CAVLC
- Rate control: QP, CRF-like, 1-pass ABR + VBV, closed-loop 2-pass VBR
- Slice-parallel encoding with rayon, concurrent B-frames, parallel lookahead/hpel
- ffmpeg-oracle tests: zero decode errors, exact frame counts, decoder output bit-identical to reconstruction
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 09:32:20 -04:00
Brandon Thomas and Claude Opus 5.5
c13f9170fb
M5.1: keyframe editing — add/delete/move/interpolation commands, Effect Controls navigator, draggable keyframes with interpolation context menu, lane scrubbing
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 09:26:11 -04:00
Brandon Thomas and Claude Opus 5.5
a7151d0323
M6.2: own AAC-LC decoder replaces the symphonia bootstrap for AAC; AAC encoder for MP4 export
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:39:00 -04:00
Brandon Thomas and Claude Opus 5.5
efc617cb97
M6.2: own AAC-LC decoder replaces the symphonia bootstrap for AAC; AAC encoder for MP4 export
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:38:47 -04:00
Brandon Thomas
b80de3ea96
Merge M6.2: filmcraft-aac encoder + decoder
2026-09-30 07:37:46 -04:00
Brandon Thomas and Claude Opus 5.5
627931fc72
UI fidelity pass from the Premiere 26 black-box reference: measured palette and label colours, square panels with 4 pt gutters, tab strips with underline + menu glyph, header layout, native macOS menu bar (muda), status/hint bar, Properties panel, timeline restyle (clip bodies, name band, fx badge, head thumbnails, rectified waveforms, hatched transitions, track header layout with patch/target buttons, markers row, 30 pt toolbar, zoom bar knobs), monitor controls, meters, tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:37:38 -04:00
Brandon Thomas and Claude Opus 5.5
c2872fbd8d
M6.2: filmcraft-aac — clean-room AAC-LC encoder and decoder
...
Encoder: transient-driven window switching (long/start/short/stop, grouping),
sine/KBD MDCT, MDCT-domain psychoacoustic model (Bark spreading, SFM tonality,
ATH, PE), TNS, per-band M/S, lambda rate-distortion loop with measured-error
scalefactor search and DP sectioning over all codebooks, bit reservoir with
fill elements (exact CBR), VBR quality scale, 1-8 channels (configs 1-7 + PCE
for 7ch), ASC + optional ADTS, 1024-sample priming reported.
Decoder: full AAC-LC syntax incl. PNS (correlated M/S noise), intensity stereo,
TNS, M/S, pulse data, both window shapes, PCE/DSE/FIL, ADTS helpers; never
panics on malformed input.
Tests use ffmpeg only as an oracle: our streams decode cleanly in ffmpeg
(CBR within 0.1%), our decoder matches ffmpeg to ~1e-7 on ffmpeg-encoded
streams (8-96 kHz, mono..7.1, IS/MS/TNS), plus fuzzing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:30:13 -04:00
Brandon Thomas
3696e4ee80
cli: bench-decode
2026-09-30 07:22:16 -04:00
Brandon Thomas and Claude Opus 5.5
b7b7042b87
M5.8: wgpu compositor — frame plans (render crate), YUV/RGB layer sampling with footprint supersampling in WGSL, linear-light premultiplied compositing, upload cache; Program monitor composites on the GPU (FILMCRAFT_CPU_COMPOSITE=1 to disable)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:16:32 -04:00
Brandon Thomas
8210007d19
export: assert frame geometry
2026-09-30 07:06:40 -04:00
Brandon Thomas
90d615b675
codecs: drop unused field
2026-09-30 07:06:09 -04:00
Brandon Thomas and Claude Opus 5.5
f4d3efe32a
M9.5: ProRes decode in the codec hub and ProRes 422 HQ export; decoder colour metadata takes precedence unless the container has an explicit colr
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:05:42 -04:00
Brandon Thomas
4faf2c295a
Merge M9.5: filmcraft-prores decoder + encoder
2026-09-30 07:04:08 -04:00
Brandon Thomas and Claude Opus 5.5
a57c1e5b01
Timeline: readable waveforms (clip-gain based, normalised); playback stats in ui.inspect
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:03:59 -04:00
Brandon Thomas and Claude Opus 5.5
eae1c8ad92
M9.5: filmcraft-prores decoder + encoder
...
Clean-room ProRes (SMPTE RDD 36) codec: 422 Proxy/LT/Standard/HQ and
4444/4444 XQ decode incl. alpha and interlaced fields, slice-parallel;
progressive encoder with frame-level quantiser rate control targeting
Apple nominal rates. Oracle tests vs ffmpeg (within 1 LSB on all 29
fixtures), round-trip, fuzz and ignored perf tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:02:58 -04:00
Brandon Thomas and Claude Opus 5.5
0c1b413595
M1/M2: wire filmcraft-h264 into the codec hub (MP4/MOV H.264 with B-frames, GOP-aware seeking)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 07:01:36 -04:00
Brandon Thomas
11709186ea
Merge M2: filmcraft-h264 pure-Rust H.264 decoder (bit-exact, frame-threaded)
2026-09-30 06:58:44 -04:00
Brandon Thomas and Claude Opus 5.5
01b1ba1a0b
M6.5/M6.6: export pipeline (parallel render → MJPEG/PCM MOV, PNG sequence, GIF, WAV) as background engine jobs; Export mode wired; control channel defers requests until elements render
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:58:34 -04:00
Brandon Thomas and Claude Opus 5.5
a47b90e7bf
M2 perf: skip internal deblocking edges of uniform-motion macroblocks
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:57:35 -04:00
Brandon Thomas and Claude Opus 5.5
3903d2909a
M2 tests: Apple VideoToolbox encoded fixtures (bit-exact)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:55:44 -04:00
Brandon Thomas and Claude Opus 5.5
8da290c1bd
M2 tests: POC type 1 reordering synthetic stream
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:54:54 -04:00
Brandon Thomas and Claude Opus 5.5
aa8ee4fcf6
M2 perf/docs: faster CABAC engine and residual parsing, README
...
- CABAC engine keeps codIOffset scaled in a 64-bit register with 32-bit
refills instead of re-reading the bitstream on every renormalisation
- significance map collected as a position list; context increments from
per-category tables
- fixed-size row copies for motion-compensation windows and block copies
- explicit weighted prediction (P_Skip and B_Skip bi-prediction) synthetic
test, cross-checked with ffmpeg
- crates/h264/README.md: features, API, threading model, fixture matrix,
performance, known gaps and the plan for High 10 / 4:2:2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:53:55 -04:00
Brandon Thomas and Claude Opus 5.5
3eac0a2ee7
M14: MCP server (headless + bridge to live app), filmcraft-cli (probe/commands/render/run/mcp), .mcp.json, control protocol docs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:50:31 -04:00
Brandon Thomas and Claude Opus 5.5
5881842a2e
M4: LUT-based linear conversion and linear-light box decimation for reduced-resolution playback
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:45:35 -04:00
Brandon Thomas and Claude Opus 5.5
20f0d08311
M2 tests: synthetic I_PCM/long-term/MMCO/gap streams, avcC, robustness, stats
...
- hand-built CAVLC and CABAC bitstreams (test-only CABAC encoder) with I_PCM
and P_Skip macroblocks exercising long-term references, MMCO 1-6,
frame_num gaps and reference list modification (idc 0 and 2); expected
output is known exactly and cross-checked with ffmpeg when available
- avcC configuration + length-prefixed samples with pts round trip
- corrupted / truncated / garbage input never panics or deadlocks
(single- and multi-threaded)
- Decoder::stats() coverage counters and an ignored coverage report test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:44:39 -04:00
Brandon Thomas and Claude Opus 5.5
8194dac6a8
M1.4–M1.8: filmcraft-codecs hub — MP4/MOV sources with GOP-aware seeking and frame cache, MJPEG, PCM, AAC/MP3/FLAC/ALAC/Vorbis (symphonia bootstrap), standalone audio files; engine registers openers
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:42:53 -04:00
Brandon Thomas and Claude Opus 5.5
374569e65e
M2 perf: frame-threaded H.264 decoding and hot-path optimisation
...
- frame-level parallelism: the calling thread handles headers, POC, DPB and
reference lists; each picture decodes as a job on a rayon pool (feature
'threads') and publishes deblocked macroblock rows into a shared Frame;
motion compensation and co-located lookups block per row on references
still being decoded (safe Rust, OnceLock per MB row); outputs are handed
out once their job has finished
- row-pipelined deblocking inside a picture (row r filtered after row r+1 is
reconstructed), picture buffer recycling, panic/error isolation per job
- faster luma/chroma interpolation (row-wise filters, window fetch), direct
interpolation into the picture for unweighted single-list blocks, merged
motion compensation for uniform direct macroblocks, 8x8 direct derivation
with direct_8x8_inference, vectorisable weighted prediction, deblocking
with per-edge parameters and cached reference identities
- conformance tests now decode every fixture single- and multi-threaded and
check pts/POC output order; ignored perf test (1080p High CRF20, 120 frames)
1080p: ~100 fps single-threaded, ~600 fps with 14 threads (M4 Pro, heavily
loaded machine).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 06:38:40 -04:00