fromSegmentDB_(index, segmentDB, streamDB) {
    /** @type {!shaka.offline.OfflineUri} */
    const uri = shaka.offline.OfflineUri.segment(
        this.mechanism_, this.cell_, segmentDB.dataKey);

    const initSegmentReference = segmentDB.initSegmentKey != null ?
        this.fromInitSegmentDB_(segmentDB.initSegmentKey) : null;

    const ref = new shaka.media.SegmentReference(
        segmentDB.startTime,
        segmentDB.endTime,
        () => [uri.toString()],
        /* startByte= */ 0,
        /* endByte= */ null,
        initSegmentReference,
        segmentDB.timestampOffset,
        segmentDB.appendWindowStart,
        segmentDB.appendWindowEnd,
        /* partialReferences= */ [],
        segmentDB.tilesLayout || '');
    ref.mimeType = segmentDB.mimeType || streamDB.mimeType || '';
    ref.codecs = segmentDB.codecs || streamDB.codecs || '';
    if (segmentDB.thumbnailSprite) {
      ref.setThumbnailSprite(segmentDB.thumbnailSprite);
    }
    return ref;
  }
@param {number} index
@param {shaka.extern.SegmentDB} segmentDB
@param {shaka.extern.StreamDB} streamDB
@return {!shaka.media.SegmentReference}
@private