Merge pull request #1351 from MediaBrowser/master
update BdInfo probing
This commit is contained in:
commit
fabe9b1caa
|
@ -298,8 +298,6 @@ namespace MediaBrowser.Controller.Entities
|
|||
return base.IsValidFromResolver(newItem);
|
||||
}
|
||||
|
||||
public string MainFeaturePlaylistName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the playable stream files.
|
||||
/// </summary>
|
||||
|
|
|
@ -297,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);
|
||||
|
||||
// Grab the values that ffprobe recorded
|
||||
if (videoStream != null)
|
||||
{
|
||||
currentBitRate = videoStream.BitRate;
|
||||
currentWidth = videoStream.Width;
|
||||
currentHeight = videoStream.Height;
|
||||
}
|
||||
|
||||
// Fill video properties from the BDInfo result
|
||||
mediaStreams.Clear();
|
||||
mediaStreams.AddRange(blurayInfo.MediaStreams);
|
||||
|
||||
video.MainFeaturePlaylistName = blurayInfo.PlaylistName;
|
||||
|
||||
if (blurayInfo.RunTimeTicks.HasValue && blurayInfo.RunTimeTicks.Value > 0)
|
||||
{
|
||||
video.RunTimeTicks = blurayInfo.RunTimeTicks;
|
||||
}
|
||||
|
||||
video.PlayableStreamFileNames = blurayInfo.Files.ToList();
|
||||
|
||||
if (blurayInfo.Chapters != 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)
|
||||
{
|
||||
chapters.Clear();
|
||||
int? currentHeight = null;
|
||||
int? currentWidth = null;
|
||||
int? currentBitRate = null;
|
||||
|
||||
chapters.AddRange(blurayInfo.Chapters.Select(c => new ChapterInfo
|
||||
var videoStream = mediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video);
|
||||
|
||||
// Grab the values that ffprobe recorded
|
||||
if (videoStream != null)
|
||||
{
|
||||
StartPositionTicks = TimeSpan.FromSeconds(c).Ticks
|
||||
currentBitRate = videoStream.BitRate;
|
||||
currentWidth = videoStream.Width;
|
||||
currentHeight = videoStream.Height;
|
||||
}
|
||||
|
||||
}));
|
||||
}
|
||||
// Fill video properties from the BDInfo result
|
||||
mediaStreams.Clear();
|
||||
mediaStreams.AddRange(blurayInfo.MediaStreams);
|
||||
|
||||
videoStream = mediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video);
|
||||
if (blurayInfo.RunTimeTicks.HasValue && blurayInfo.RunTimeTicks.Value > 0)
|
||||
{
|
||||
video.RunTimeTicks = blurayInfo.RunTimeTicks;
|
||||
}
|
||||
|
||||
// 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;
|
||||
if (blurayInfo.Chapters != null)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user