It uses bit-packing for easy encoding and decoding on top of providing a fixed header size.
Animations use a slightly longer header to also store the loop mode and the background color. ANMF separators also use bit-packing.
All remaining data is stored sequentially in regular chunks, whether it is a preview, a tile, XMP etc. A chunk is preceded by its size encoded as a variable-length integer, limiting it to ~500 megabytes.
mkdir ../container_build && \ cd ../container_build && \ cmake -DCMAKE_BUILD_TYPE=Debug ../container && \ make && \ ctest .