Jelajahi Sumber

Merge pull request #5859 from cvium/fix-streambuilder-permissions

Respect user settings for transcode and remux

(cherry picked from commit 5a6e60b414046c274330479f7dfb9713eea20020)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
Bond-009 4 tahun lalu
induk
melakukan
11e9173fbc

+ 9 - 3
Emby.Server.Implementations/Library/MediaSourceManager.cs

@@ -200,10 +200,15 @@ namespace Emby.Server.Implementations.Library
                     {
                         source.SupportsTranscoding = user.HasPermission(PermissionKind.EnableAudioPlaybackTranscoding);
                     }
+                    else if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
+                    {
+                        source.SupportsTranscoding = user.HasPermission(PermissionKind.EnableVideoPlaybackTranscoding);
+                        source.SupportsDirectStream = user.HasPermission(PermissionKind.EnablePlaybackRemuxing);
+                    }
                 }
             }
 
-            return SortMediaSources(list).Where(i => i.Type != MediaSourceType.Placeholder).ToList();
+            return SortMediaSources(list);
         }
 
         public MediaProtocol GetPathProtocol(string path)
@@ -437,7 +442,7 @@ namespace Emby.Server.Implementations.Library
             }
         }
 
-        private static IEnumerable<MediaSourceInfo> SortMediaSources(IEnumerable<MediaSourceInfo> sources)
+        private static List<MediaSourceInfo> SortMediaSources(IEnumerable<MediaSourceInfo> sources)
         {
             return sources.OrderBy(i =>
             {
@@ -452,8 +457,9 @@ namespace Emby.Server.Implementations.Library
             {
                 var stream = i.VideoStream;
 
-                return stream == null || stream.Width == null ? 0 : stream.Width.Value;
+                return stream?.Width ?? 0;
             })
+            .Where(i => i.Type != MediaSourceType.Placeholder)
             .ToList();
         }
 

+ 1 - 1
Jellyfin.Api/Helpers/MediaInfoHelper.cs

@@ -308,7 +308,7 @@ namespace Jellyfin.Api.Helpers
                     {
                         if (!user.HasPermission(PermissionKind.EnableAudioPlaybackTranscoding)
                             && !user.HasPermission(PermissionKind.EnableVideoPlaybackTranscoding)
-                            && !user.HasPermission(PermissionKind.EnablePlaybackRemuxing))
+                            && user.HasPermission(PermissionKind.EnablePlaybackRemuxing))
                         {
                             options.ForceDirectStream = true;
                         }