mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-06 18:41:26 +00:00
- The channel cache decodes a file once however many callers ask for it at the same time (the others wait for that decode), and is bounded by the bytes of its planes (1 GiB, least recently used out first, a file counting as used when its decode finishes, the newest file always kept) instead of four files of any size. - Once an effect has read a footage item's channels, its pictures are made of the cached planes, also for files with an unnamed RGB layer (bit for bit what the image crate shows, which still decodes the files the planes can't stand in for); footage alone decodes only its picture's channels (a multi-layer file's were all decoded and cached for every frame). - Channels are decoded straight into their display-window planes, and the picture is converted from the planes without two interleaved copies. Measured on a 30-frame 2560x1440 sequence of 32 channels (DWAA), one frame at a time: footage alone 0.185 -> 0.073 s per frame and 4.4 -> 1.8 GB peak; with an unnamed RGB layer plus Cryptomatte 0.244 -> 0.159 s; multi-part plus EXtractoR 0.194 -> 0.127 s. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>