@ -328,54 +328,56 @@ namespace MediaBrowser.Providers.MediaInfo
{
var video = ( Video ) item ;
// Use BD Info if it has multiple m2ts. Otherwise, treat it like a video file and rely more on ffprobe output
if ( blurayInfo . Files . Length > 1 )
if ( blurayInfo . Files . Length < = 1 )
{
int? currentHeight = null ;
int? currentWidth = null ;
int? currentBitRate = null ;
return ;
}
var videoStream = mediaStreams . FirstOrDefault ( s = > s . Type = = MediaStreamType . Video ) ;
// Use BD Info if it has multiple m2ts. Otherwise, treat it like a video file and rely more on ffprobe output
int? currentHeight = null ;
int? currentWidth = null ;
int? currentBitRate = null ;
// Grab the values that ffprobe recorded
if ( videoStream is not null )
{
currentBitRate = videoStream . BitRate ;
currentWidth = videoStream . Width ;
currentHeight = videoStream . Height ;
}
var videoStream = mediaStreams . FirstOrDefault ( s = > s . Type = = MediaStreamType . Video ) ;
// Fill video properties from the BDInfo result
mediaStreams . Clear ( ) ;
mediaStreams . AddRange ( blurayInfo . MediaStreams ) ;
// Grab the values that ffprobe recorded
if ( videoStream is not null )
{
currentBitRate = videoStream . BitRate ;
currentWidth = videoStream . Width ;
currentHeight = videoStream . Height ;
}
if ( blurayInfo . RunTimeTicks . HasValue & & blurayInfo . RunTimeTicks . Value > 0 )
{
video . RunTimeTicks = blurayInfo . RunTimeTicks ;
}
// Fill video properties from the BDInfo result
mediaStreams . Clear ( ) ;
mediaStreams . AddRange ( blurayInfo . MediaStreams ) ;
if ( blurayInfo . Chapters is not null )
if ( blurayInfo . RunTimeTicks . HasValue & & blurayInfo . RunTimeTicks . Value > 0 )
{
video . RunTimeTicks = blurayInfo . RunTimeTicks ;
}
if ( blurayInfo . Chapters is not null )
{
double [ ] brChapter = blurayInfo . Chapters ;
chapters = new ChapterInfo [ brChapter . Length ] ;
for ( int i = 0 ; i < brChapter . Length ; i + + )
{
double [ ] brChapter = blurayInfo . Chapters ;
chapters = new ChapterInfo [ brChapter . Length ] ;
for ( int i = 0 ; i < brChapter . Length ; i + + )
chapters [ i ] = new ChapterInfo
{
chapters [ i ] = new ChapterInfo
{
StartPositionTicks = TimeSpan . FromSeconds ( brChapter [ i ] ) . Ticks
} ;
}
StartPositionTicks = TimeSpan . FromSeconds ( brChapter [ i ] ) . Ticks
} ;
}
}
videoStream = mediaStreams . FirstOrDefault ( s = > s . Type = = MediaStreamType . Video ) ;
videoStream = mediaStreams . FirstOrDefault ( s = > s . Type = = MediaStreamType . Video ) ;
// Use the ffprobe values if these are empty
if ( videoStream is not 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 ;
}
// Use the ffprobe values if these are empty
if ( videoStream is not 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 ;
}
}
@ -391,10 +393,7 @@ namespace MediaBrowser.Providers.MediaInfo
/// <returns>VideoStream.</returns>
private BlurayDiscInfo GetBDInfo ( string path )
{
if ( string . IsNullOrWhiteSpace ( path ) )
{
throw new ArgumentNullException ( nameof ( path ) ) ;
}
ArgumentException . ThrowIfNullOrEmpty ( path ) ;
try
{