async getInfoFromSegment_(segment, segmentIndex) {
    if (!segment) {
      return {mimeType: null, data: null};
    }
    const requestType = shaka.net.NetworkingEngine.RequestType.SEGMENT;
    const segmentRequest = shaka.util.Networking.createSegmentRequest(
        segment.getUris(), segment.getStartByte(), segment.getEndByte(),
        this.config_.retryParameters);
    const type = segment instanceof shaka.media.SegmentReference ?
      shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT :
      shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;
    const response = await this.makeNetworkRequest_(
        segmentRequest, requestType, {type}).promise;
    let data = response.data;
    if (segment.aesKey) {
      data = await shaka.media.SegmentUtils.aesDecrypt(
          data, segment.aesKey, segmentIndex);
    }
    if (segment instanceof shaka.media.SegmentReference) {
      segment.setSegmentData(data, /* singleUse= */ true);
    } else {
      segment.setSegmentData(data);
    }

    let mimeType = response.headers['content-type'];
    if (mimeType) {
      // Split the MIME type in case the server sent additional parameters.
      mimeType = mimeType.split(';')[0].toLowerCase();
    }
    return {mimeType, data};
  }
@param {?shaka.media.AnySegmentReference} segment
@param {number} segmentIndex
@return {!Promise<{mimeType: ?string, data: ?BufferSource}>}
@private