constructor(getBufferedInfo) {
    super();

    /**
     * @private {!Map<string, !shaka.media.QualityObserver.ContentTypeState>}
     */
    this.contentTypeStates_ = new Map();

    /** @private function():!shaka.extern.BufferedInfo */
    this.getBufferedInfo_ = getBufferedInfo;
  }
Creates a new QualityObserver.

@param {!function():!shaka.extern.BufferedInfo} getBufferedInfo
  Buffered info is needed to purge QualityChanges that are no
  longer relevant.