The decoderManager is currently creating decoders for inputs on demand. When an input is finished, it must close the decoder channels. The manager then holds on to the closed decoders for possible reuse. Closing the decoder is an unfortunate requirement to place on input developers, and the locking involved in tracking the running and closed decoders is less than ideal. A round-robin pool of decoder sets that are always running is a better choice.