The library can pre-calculate the encoded length of a stream separated to a fixed length part and a flexible length part with:
- Looping disabled
- Using the generated loop points
- Using the loop points found in streams.
This is required to make a decision in advance about the encoding process to be used for each stream when encoding a data block. E.g. when data would fill up the requested space, looping is not required at all, a simpler encoding is required; when there is data that must be present before looped data it can be ensured that the mandatory fixed length data takes precedence over the flexible length part and so on.