Browse Source

add error handling

Luke Pulverenti 8 years ago
parent
commit
af4473e27f

+ 6 - 6
MediaBrowser.Api/Playback/BaseStreamingService.cs

@@ -720,12 +720,12 @@ namespace MediaBrowser.Api.Playback
 
             state.IsInputVideo = string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase);
 
-            var primaryImage = item.GetImageInfo(ImageType.Primary, 0) ??
-                         item.Parents.Select(i => i.GetImageInfo(ImageType.Primary, 0)).FirstOrDefault(i => i != null);
-            if (primaryImage != null)
-            {
-                state.AlbumCoverPath = primaryImage.Path;
-            }
+            //var primaryImage = item.GetImageInfo(ImageType.Primary, 0) ??
+            //             item.Parents.Select(i => i.GetImageInfo(ImageType.Primary, 0)).FirstOrDefault(i => i != null);
+            //if (primaryImage != null)
+            //{
+            //    state.AlbumCoverPath = primaryImage.Path;
+            //}
 
             MediaSourceInfo mediaSource = null;
             if (string.IsNullOrWhiteSpace(request.LiveStreamId))

+ 28 - 23
MediaBrowser.Controller/Entities/Video.cs

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

+ 1 - 2
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -2011,12 +2011,11 @@ namespace MediaBrowser.Controller.MediaEncoding
             var vn = string.Empty;
 
             var hasArt = !string.IsNullOrWhiteSpace(state.AlbumCoverPath);
-            hasArt = false;
 
             if (hasArt)
             {
                 albumCoverInput = " -i \"" + state.AlbumCoverPath + "\"";
-                mapArgs = " -map 0:a -map 1:v -c:v copy";
+                mapArgs = " -map 0:a -map 1:v -c:1:v copy";
                 metadata = " -metadata:s:v title=\"Album cover\" -metadata:s:v comment=\"Cover(Front)\"";
             }
             else