mirror of
https://github.com/storytold/filmcraft.git
synced 2026-11-08 02:29:58 +00:00
* security(media): bound generator frames, imported audio dimensions, and render images * fix(media): unwrap render result in demo_frames example * fix(render, codecs): guard zero-sized images, check post-scale sequence pixels, and bound combined MXF channels * fix(codecs): annotate channels as u32 in MXF sound track combination * fix(render): preserve exact output_size scaling calculation for renderable_sequence validation * fix(media,render): reject unsupported audio dimensions and invalid render scale Sample rates above MAX_AUDIO_SAMPLE_RATE were clamped without resampling, so a 768 kHz stream was reported as 384 kHz and played at half speed. Reject them instead, and drop the stream at the four codec call sites rather than advertising dimensions the samples do not match. output_size now treats a non-finite or non-positive scale as 1.0 instead of casting it to zero and collapsing the frame to 1x1. * fix(media): keep Matroska audio tracks and their metadata together; guard empty images A track whose advertised sample rate or channel count is refused is dropped before the track list is built, so atracks[k] and audio_streams[k] stay the same track. over_black_with_alpha_rgba8 and Image::transformed return early for an empty image instead of chunking by zero.