The GUI performs a range of preprocessing steps, prior to sending a show to fish. These steps are explained within this document.
The GUI carries out these operations in the following order:
Virtual filters are not transmitted to fish. Instead, each v-filter is tasked to add filters it would like to be placed inside a list. If a v-filter would like to use a different v-filter, it is responsible for adding the instantiation list of that child v-filter into its own list. Finally, the editor resolves the actual output ports of subsequent filters, based on all items in the output data type dictionary.
The GUI iterates over all left empty inputs of filters and creates constant filters for these ports. It does so by creating one constant per tuple of data type and value, then reuses them for each occurance.
The following optimizations are performed:
The GUI encodes only the parts of the show file that are actually relevant for fish. This excludes most of the meta data as well as virtual filter definitions.
TODO explain this in greater detail.