diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-12-22 12:34:39 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-12-22 12:34:39 -0500 |
| commit | f6491c69fd75aae8f558af985d18d23e20950c2b (patch) | |
| tree | c2de778bc07d3551de1287f72b75090f398f0f4e | |
| parent | d5a4a9424ffbefeb405399aa5d81486029cdfbd2 (diff) | |
update BdInfo probing
| -rw-r--r-- | MediaBrowser.Controller/Entities/Video.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs | 75 |
2 files changed, 38 insertions, 39 deletions
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index 8beee79bf..10068eed7 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -304,8 +304,6 @@ namespace MediaBrowser.Controller.Entities return base.IsValidFromResolver(newItem); } - public string MainFeaturePlaylistName { get; set; } - /// <summary> /// Gets the playable stream files. /// </summary> diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs index 5a87e7628..efa6ff0cf 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs @@ -170,8 +170,7 @@ namespace MediaBrowser.Providers.MediaInfo VideoType = item.VideoType, MediaType = DlnaProfileType.Video, InputPath = item.Path, - Protocol = protocol, - ExtractKeyFrameInterval = true + Protocol = protocol }, cancellationToken).ConfigureAwait(false); @@ -298,52 +297,54 @@ namespace MediaBrowser.Providers.MediaInfo { var video = (Video)item; - int? currentHeight = null; - int? currentWidth = null; - int? currentBitRate = null; - - var videoStream = mediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video); + video.PlayableStreamFileNames = blurayInfo.Files.ToList(); - // Grab the values that ffprobe recorded - if (videoStream != null) + // Use BD Info if it has multiple m2ts. Otherwise, treat it like a video file and rely more on ffprobe output + if (blurayInfo.Files.Count > 1) { - currentBitRate = videoStream.BitRate; - currentWidth = videoStream.Width; - currentHeight = videoStream.Height; - } + int? currentHeight = null; + int? currentWidth = null; + int? currentBitRate = null; - // Fill video properties from the BDInfo result - mediaStreams.Clear(); - mediaStreams.AddRange(blurayInfo.MediaStreams); + var videoStream = mediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video); - video.MainFeaturePlaylistName = blurayInfo.PlaylistName; - - if (blurayInfo.RunTimeTicks.HasValue && blurayInfo.RunTimeTicks.Value > 0) - { - video.RunTimeTicks = blurayInfo.RunTimeTicks; - } + // Grab the values that ffprobe recorded + if (videoStream != null) + { + currentBitRate = videoStream.BitRate; + currentWidth = videoStream.Width; + currentHeight = videoStream.Height; + } - video.PlayableStreamFileNames = blurayInfo.Files.ToList(); + // Fill video properties from the BDInfo result + mediaStreams.Clear(); + mediaStreams.AddRange(blurayInfo.MediaStreams); - if (blurayInfo.Chapters != null) - { - chapters.Clear(); + if (blurayInfo.RunTimeTicks.HasValue && blurayInfo.RunTimeTicks.Value > 0) + { + video.RunTimeTicks = blurayInfo.RunTimeTicks; + } - chapters.AddRange(blurayInfo.Chapters.Select(c => new ChapterInfo + if (blurayInfo.Chapters != null) { - StartPositionTicks = TimeSpan.FromSeconds(c).Ticks + chapters.Clear(); - })); - } + chapters.AddRange(blurayInfo.Chapters.Select(c => new ChapterInfo + { + StartPositionTicks = TimeSpan.FromSeconds(c).Ticks - videoStream = mediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video); + })); + } - // Use the ffprobe values if these are empty - if (videoStream != null) - { - videoStream.BitRate = IsEmpty(videoStream.BitRate) ? currentBitRate : videoStream.BitRate; - videoStream.Width = IsEmpty(videoStream.Width) ? currentWidth : videoStream.Width; - videoStream.Height = IsEmpty(videoStream.Height) ? currentHeight : videoStream.Height; + videoStream = mediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video); + + // Use the ffprobe values if these are empty + if (videoStream != null) + { + videoStream.BitRate = IsEmpty(videoStream.BitRate) ? currentBitRate : videoStream.BitRate; + videoStream.Width = IsEmpty(videoStream.Width) ? currentWidth : videoStream.Width; + videoStream.Height = IsEmpty(videoStream.Height) ? currentHeight : videoStream.Height; + } } } |
