|
@@ -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;
|