/**
   * Initializes file provider. Creates streamable file factory and service, seeks to start position
   */
  private void init() throws IOException {
    IStreamableFileFactory factory =
        (IStreamableFileFactory)
            ScopeUtils.getScopeService(
                scope, IStreamableFileFactory.class, StreamableFileFactory.class);
    IStreamableFileService service;
    IStreamableFile streamFile;
    if (file == null && playlistXMLUrl != null) { // NIELS JOUBERT

      streamFile = new CompositeFile(playlistXMLUrl, urlResolver);

    } else {

      service = factory.getService(file);
      if (service == null) {
        log.error("No service found for " + file.getAbsolutePath());
        return;
      }
      streamFile = service.getStreamableFile(file);
    }
    reader = streamFile.getReader(scope);
    if (start > 0) {
      seek(start);
    }
  }