add error handling

This commit is contained in:
Luke Pulverenti
2017-04-28 15:17:26 -04:00
parent bf07a47132
commit af4473e27f
3 changed files with 35 additions and 31 deletions

View File

@@ -591,41 +591,46 @@ namespace MediaBrowser.Controller.Entities
.ToList();
}
private static MediaSourceInfo GetVersionInfo(bool enablePathSubstitution, Video i, MediaSourceType type)
private static MediaSourceInfo GetVersionInfo(bool enablePathSubstitution, Video media, MediaSourceType type)
{
var mediaStreams = MediaSourceManager.GetMediaStreams(i.Id)
if (media == null)
{
throw new ArgumentNullException("media");
}
var mediaStreams = MediaSourceManager.GetMediaStreams(media.Id)
.ToList();
var locationType = i.LocationType;
var locationType = media.LocationType;
var info = new MediaSourceInfo
{
Id = i.Id.ToString("N"),
IsoType = i.IsoType,
Id = media.Id.ToString("N"),
IsoType = media.IsoType,
Protocol = locationType == LocationType.Remote ? MediaProtocol.Http : MediaProtocol.File,
MediaStreams = mediaStreams,
Name = GetMediaSourceName(i, mediaStreams),
Path = enablePathSubstitution ? GetMappedPath(i, i.Path, locationType) : i.Path,
RunTimeTicks = i.RunTimeTicks,
Video3DFormat = i.Video3DFormat,
VideoType = i.VideoType,
Container = i.Container,
Size = i.Size,
Timestamp = i.Timestamp,
Name = GetMediaSourceName(media, mediaStreams),
Path = enablePathSubstitution ? GetMappedPath(media, media.Path, locationType) : media.Path,
RunTimeTicks = media.RunTimeTicks,
Video3DFormat = media.Video3DFormat,
VideoType = media.VideoType,
Container = media.Container,
Size = media.Size,
Timestamp = media.Timestamp,
Type = type,
PlayableStreamFileNames = i.PlayableStreamFileNames.ToList(),
SupportsDirectStream = i.VideoType == VideoType.VideoFile,
IsRemote = i.IsShortcut
PlayableStreamFileNames = media.PlayableStreamFileNames.ToList(),
SupportsDirectStream = media.VideoType == VideoType.VideoFile,
IsRemote = media.IsShortcut
};
if (info.Protocol == MediaProtocol.File)
{
info.ETag = i.DateModified.Ticks.ToString(CultureInfo.InvariantCulture).GetMD5().ToString("N");
info.ETag = media.DateModified.Ticks.ToString(CultureInfo.InvariantCulture).GetMD5().ToString("N");
}
if (i.IsShortcut)
if (media.IsShortcut)
{
info.Path = i.ShortcutPath;
info.Path = media.ShortcutPath;
if (info.Path.StartsWith("Http", StringComparison.OrdinalIgnoreCase))
{
@@ -647,16 +652,16 @@ namespace MediaBrowser.Controller.Entities
if (string.IsNullOrEmpty(info.Container))
{
if (i.VideoType == VideoType.VideoFile || i.VideoType == VideoType.Iso)
if (media.VideoType == VideoType.VideoFile || media.VideoType == VideoType.Iso)
{
if (!string.IsNullOrWhiteSpace(i.Path) && locationType != LocationType.Remote && locationType != LocationType.Virtual)
if (!string.IsNullOrWhiteSpace(media.Path) && locationType != LocationType.Remote && locationType != LocationType.Virtual)
{
info.Container = System.IO.Path.GetExtension(i.Path).TrimStart('.');
info.Container = System.IO.Path.GetExtension(media.Path).TrimStart('.');
}
}
}
info.Bitrate = i.TotalBitrate;
info.Bitrate = media.TotalBitrate;
info.InferTotalBitrate();
return info;