constructor(uris, startByte, endByte, mediaQuality = null, timescale = null,
      segmentData = null, aesKey = null, encrypted = false) {
    /** @type {function(): !Array<string>} */
    this.getUris = uris;

    /** @const {number} */
    this.startByte = startByte;

    /** @const {?number} */
    this.endByte = endByte;

    /** @type {shaka.extern.MediaQualityInfo|null} */
    this.mediaQuality = mediaQuality;

    /** @type {number|null} */
    this.timescale = timescale;

    /** @type {BufferSource|null} */
    this.segmentData = segmentData;

    /** @type {?shaka.extern.aesKey} */
    this.aesKey = aesKey;

    /** @type {?string} */
    this.codecs = null;

    /** @type {?string} */
    this.mimeType = null;

    /** @type {?number} */
    this.boundaryEnd = null;

    /** @const {boolean} */
    this.encrypted = encrypted;
  }
@param {function(): !Array<string>} uris A function that creates the URIs
  of the resource containing the segment.
@param {number} startByte The offset from the start of the resource to the
  start of the segment.
@param {?number} endByte The offset from the start of the resource
  to the end of the segment, inclusive.  A value of null indicates that the
  segment extends to the end of the resource.
@param {null|shaka.extern.MediaQualityInfo=} mediaQuality Information about
  the quality of the media associated with this init segment.
@param {(null|number)=} timescale
@param {(null|BufferSource)=} segmentData
@param {?shaka.extern.aesKey=} aesKey
 The segment's AES-128-CBC full segment encryption key and iv.
@param {boolean=} encrypted