|  | @@ -53,7 +53,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        public async Task<Stream> ConvertSubtitles(Stream stream,
 | 
	
		
			
				|  |  | +        private async Task<Stream> ConvertSubtitles(Stream stream,
 | 
	
		
			
				|  |  |              string inputFormat,
 | 
	
		
			
				|  |  |              string outputFormat,
 | 
	
		
			
				|  |  |              long startTimeTicks,
 | 
	
	
		
			
				|  | @@ -64,7 +64,9 @@ namespace MediaBrowser.MediaEncoding.Subtitles
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              try
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                var trackInfo = await GetTrackInfo(stream, inputFormat, cancellationToken).ConfigureAwait(false);
 | 
	
		
			
				|  |  | +                var reader = GetReader(inputFormat, true);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                var trackInfo = reader.Parse(stream, cancellationToken);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  FilterEvents(trackInfo, startTimeTicks, endTimeTicks, false);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -190,7 +192,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  throw new ArgumentNullException("charset");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  |              try
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  return Encoding.GetEncoding(charset);
 | 
	
	
		
			
				|  | @@ -257,15 +259,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
 | 
	
		
			
				|  |  |              return new Tuple<string, MediaProtocol, string, bool>(subtitleStream.Path, protocol, currentFormat, true);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private async Task<SubtitleTrackInfo> GetTrackInfo(Stream stream,
 | 
	
		
			
				|  |  | -            string inputFormat,
 | 
	
		
			
				|  |  | -            CancellationToken cancellationToken)
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            var reader = GetReader(inputFormat, true);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            return reader.Parse(stream, cancellationToken);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          private ISubtitleParser GetReader(string format, bool throwIfMissing)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              if (string.IsNullOrEmpty(format))
 |