mirror of
https://github.com/storytold/filmcraft.git
synced 2026-10-26 11:06:58 -06:00
- mxf: read_pcm bounds a request by the sample frames the file actually stores (plus 16M samples of zero padding) instead of a fixed 16,777,216-sample cap, so whole-clip reads of long stereo MXF (transcription) work again; PCM/AES3 chunk buffers are clamped to the source length instead of a 256 MiB cap; decode_pcm's output is bounded by its input, so its fixed cap goes (the AES3 >8-channel refusal stays; a request is also bounded by the source length divided by the channel count). read_sample keeps only the source-length bound. - mxf: index_entries no longer fails open() past 1,048,576 entries (the sparse BTreeMap already bounds memory by real entries); long recordings open. - project/format: new Sequence/Track/CaptionTrack::check_bounds() hold only the hostile-value bounds (settings, marks, overflowing time ranges); project load and export ranges use it, so projects that break only structural rules (overlap, zero duration) still open and export. check() = check_bounds() + the structural rules, as before. - project: frame-size cap raised to 268,435,456 pixels, 32768 per side (16K, 16384x8192). - engine: checked_u32_p accepts integer-valued floats (1920.0); renderable_sequence returns an EngineError (new Session::try_render_program_at, used by automation render) instead of eprintln. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>