mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-15 22:52:35 +00:00
* codecs: list each Cryptomatte layer once and index streams by name layers() cloned the cached stream list for every cryptomatte/<key>/name attribute that named a layer, so many keys naming one layer (in any case or _/- spelling) retained keys x channels strings. Streams are now indexed by normalized layer name in one pass over the channels, each layer's list is moved into the first key that names it, and later keys naming the same layer are skipped (decode resolves a name to its first layer anyway). decode() searched the layer's stream list for every decoded channel; it now builds a stream-name -> slot map once. * address review: compare cryptomatte layer names normalized in decode * address review: prefer exact Cryptomatte layer name * address review: sort cryptomatte keys so layer names are stable * address review: prefer the key with a usable manifest when keys name one cryptomatte layer