The pipes are only used to communicate higher-level IPC primitives. The real data exchange and processing is bidirectional. This is why it is possible for the last client in the chain to provide the inputs that control the game that was being run by the first client in the chain. There is also audio.
The part that I found cool is that the possible data sources aren't just videos, it's emulators, virtual machines, terminals, and so on.
"the example here only works with a single pipe-and-filter chain, but there is nothing preventing arbitrary, even dynamic, graphs to be created."
(and AWK is a DSL for streaming text processing - it's from the late 70ies.. it's dumb as a rock - there's no high level analysis features)
The part that I found cool is that the possible data sources aren't just videos, it's emulators, virtual machines, terminals, and so on.
"the example here only works with a single pipe-and-filter chain, but there is nothing preventing arbitrary, even dynamic, graphs to be created."
(and AWK is a DSL for streaming text processing - it's from the late 70ies.. it's dumb as a rock - there's no high level analysis features)