async getAllThumbnails(trackId) {
    const imageStream = await this.getBestImageStream_(trackId);
    if (!imageStream) {
      return null;
    }
    const thumbnails = [];
    imageStream.segmentIndex.forEachTopLevelReference((reference) => {
      const dimensions = this.parseTilesLayout_(
          reference.getTilesLayout() || imageStream.tilesLayout);
      if (dimensions) {
        const numThumbnails = dimensions.rows * dimensions.columns;
        const duration = reference.trueEndTime - reference.startTime;
        for (let i = 0; i < numThumbnails; i++) {
          const sampleTime = reference.startTime + duration * i / numThumbnails;
          const thumbnail = this.getThumbnailByReference_(reference,
              /** @type {shaka.extern.Stream} */ (imageStream), sampleTime,
              dimensions);
          thumbnails.push(thumbnail);
        }
      }
    });
    if (imageStream.closeSegmentIndex) {
      imageStream.closeSegmentIndex();
    }
    return thumbnails;
  }
Returns Thumbnail objects for each thumbnail.

If the player has not loaded content, this will return a null.

@param {?number=} trackId
@return {!Promise<?Array<!shaka.extern.Thumbnail>>}
@export