static dispatchFetch(
      reference, stream, streamDataCallback, retryParameters, netEngine,
      isPreload = false) {
    const requestType = shaka.net.NetworkingEngine.RequestType.SEGMENT;
    const segment = reference instanceof shaka.media.SegmentReference ?
        reference : undefined;
    const type = segment ?
        shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT :
        shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;
    const request = shaka.util.Networking.createSegmentRequest(
        reference.getUris(),
        reference.startByte,
        reference.endByte,
        retryParameters,
        streamDataCallback);
    request.contentType = stream.type;

    shaka.log.v2('fetching: reference=', reference);

    return netEngine.request(
        requestType, request, {type, stream, segment, isPreload});
  }
Fetches the given segment.

@param {(!shaka.media.InitSegmentReference|
         !shaka.media.SegmentReference)} reference
@param {!shaka.extern.Stream} stream
@param {?function(BufferSource):!Promise} streamDataCallback
@param {shaka.extern.RetryParameters} retryParameters
@param {!shaka.net.NetworkingEngine} netEngine
@param {boolean=} isPreload

@return {!shaka.net.NetworkingEngine.PendingRequest}