constructor(templateInfo, representationId, bandwidth, getBaseUris,
      urlParams, periodStart, periodEnd, initSegmentReference,
      aesKey, segmentSequenceCadence, timeline) {
    super([]);

    /** @private {?shaka.dash.SegmentTemplate.SegmentTemplateInfo} */
    this.templateInfo_ = templateInfo;

    /** @private {?string} */
    this.representationId_ = representationId;

    /** @private {number} */
    this.bandwidth_ = bandwidth;

    /** @private {function(): Array<string>} */
    this.getBaseUris_ = getBaseUris;

    /** @private {function():string} */
    this.urlParams_ = urlParams;

    /** @private {number} */
    this.periodStart_ = periodStart;

    /** @private {number} */
    this.periodEnd_ = periodEnd;

    /** @private {shaka.media.InitSegmentReference} */
    this.initSegmentReference_ = initSegmentReference;

    /** @private {shaka.extern.aesKey|undefined} */
    this.aesKey_ = aesKey;

    /** @private {number} */
    this.segmentSequenceCadence_ = segmentSequenceCadence;
    /** @private {number} */
    this.timeline_ = timeline;

    this.fitTimeline();
  }
@param {!shaka.dash.SegmentTemplate.SegmentTemplateInfo} templateInfo
@param {?string} representationId
@param {number} bandwidth
@param {function(): Array<string>} getBaseUris
@param {function():string} urlParams
@param {number} periodStart
@param {number} periodEnd
@param {shaka.media.InitSegmentReference} initSegmentReference
@param {shaka.extern.aesKey|undefined} aesKey
@param {number} segmentSequenceCadence
@param {number} timeline