![]()
Extensions to the IFF format
PATH defines the search path for includes.
INCL is an include block.
EOVC is the end-of-variable-length-chunk marker.
GEND is the end-of-group marker.
Syntax:
PATH and INCL are data chunks and thus inherit alignment.
EOVC and GEND are use in fifo files since the chunk and group sizes can not be random accessed. Creating groups or chunks with unspecified size on a fifo will give something like:
FORM sz_Fifo TYPE ; start of form BLCK sz_Fifo data ; block 1 EOVC sz_Unknown ; end of block 1 .... ; BLCK sz_Fifo data ; block 2 EOVC sz_Unknown ; end of block 2 GEND 0 ; no more block in this FORMEOVC is a block/group end marker, while GEND is understood as a request to close the current group, going up one level.
Using unknown sizes when writing a seekable file will produce a very similar structure except that no EOVC is written. This is very useful when parsing a file under construction since the end of group can be detected w/o any random access to the group header. The size field of GEND is set to zero to allow other standard IFF parsers to skip it silently. The EOVC’s size field value will produce an error if read by a standard parser (w/o fifo extensions).
Warning
For compatibility with the previous version of the IFF parser GEND is still followed by sz_Unknown (and EOVC sz_Unknown if the file is a fifo).
Since there is no reliable way of skipping a block of unknown length it is STRONGLY RECOMMENDED that writer and reader of a fifo agree on the file’s content.
Note that the implemented parser is smart enough to locate EOVCs in a file, but the skipping process is slow due to intensive read and compares. And again, this can NOT be considered 100% reliable.