|  | @@ -187,44 +187,41 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
 | 
	
		
			
				|  |  |          /// <param name="data">The data.</param>
 | 
	
		
			
				|  |  |          /// <param name="isoMount">The iso mount.</param>
 | 
	
		
			
				|  |  |          /// <returns>Task.</returns>
 | 
	
		
			
				|  |  | -        protected override Task Fetch(Video video, CancellationToken cancellationToken, FFProbeResult data, IIsoMount isoMount)
 | 
	
		
			
				|  |  | +        protected override void Fetch(Video video, CancellationToken cancellationToken, FFProbeResult data, IIsoMount isoMount)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            return Task.Run(() =>
 | 
	
		
			
				|  |  | +            if (data.format != null)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                if (data.format != null)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    // For dvd's this may not always be accurate, so don't set the runtime if the item already has one
 | 
	
		
			
				|  |  | -                    var needToSetRuntime = video.VideoType != VideoType.Dvd || video.RunTimeTicks == null || video.RunTimeTicks.Value == 0;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    if (needToSetRuntime && !string.IsNullOrEmpty(data.format.duration))
 | 
	
		
			
				|  |  | -                    {
 | 
	
		
			
				|  |  | -                        video.RunTimeTicks = TimeSpan.FromSeconds(double.Parse(data.format.duration, UsCulture)).Ticks;
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +                // For dvd's this may not always be accurate, so don't set the runtime if the item already has one
 | 
	
		
			
				|  |  | +                var needToSetRuntime = video.VideoType != VideoType.Dvd || video.RunTimeTicks == null || video.RunTimeTicks.Value == 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if (data.streams != null)
 | 
	
		
			
				|  |  | +                if (needToSetRuntime && !string.IsNullOrEmpty(data.format.duration))
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    video.MediaStreams = data.streams.Select(s => GetMediaStream(s, data.format)).ToList();
 | 
	
		
			
				|  |  | +                    video.RunTimeTicks = TimeSpan.FromSeconds(double.Parse(data.format.duration, UsCulture)).Ticks;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if (data.Chapters != null)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    video.Chapters = data.Chapters;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +            if (data.streams != null)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                video.MediaStreams = data.streams.Select(s => GetMediaStream(s, data.format)).ToList();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if (video.Chapters == null || video.Chapters.Count == 0)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    AddDummyChapters(video);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +            if (data.Chapters != null)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                video.Chapters = data.Chapters;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if (video.VideoType == VideoType.BluRay || (video.IsoType.HasValue && video.IsoType.Value == IsoType.BluRay))
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    var inputPath = isoMount != null ? isoMount.MountedPath : video.Path;
 | 
	
		
			
				|  |  | -                    FetchBdInfo(video, inputPath, BdInfoCache, cancellationToken);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +            if (video.Chapters == null || video.Chapters.Count == 0)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                AddDummyChapters(video);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (video.VideoType == VideoType.BluRay || (video.IsoType.HasValue && video.IsoType.Value == IsoType.BluRay))
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var inputPath = isoMount != null ? isoMount.MountedPath : video.Path;
 | 
	
		
			
				|  |  | +                FetchBdInfo(video, inputPath, BdInfoCache, cancellationToken);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                AddExternalSubtitles(video);
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | +            AddExternalSubtitles(video);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /// <summary>
 |