This class defines a pool of objects that inherit from the `IDecoderOutputPoolable_ interface. The pool has no bound on the number of objects created, it merely tracks which objects have been handed out and awaits their return when the pool is destroyed.