Luke Pulverenti пре 8 година
родитељ
комит
6e9828ddad

+ 14 - 0
MediaBrowser.Api/Playback/MediaInfoService.cs

@@ -284,6 +284,13 @@ namespace MediaBrowser.Api.Playback
                         options.ForceDirectPlay = true;
                     }
                 }
+                else if (item is Video)
+                {
+                    if (!user.Policy.EnableAudioPlaybackTranscoding && !user.Policy.EnableVideoPlaybackTranscoding && !user.Policy.EnablePlaybackRemuxing)
+                    {
+                        options.ForceDirectPlay = true;
+                    }
+                }
 
                 // The MediaSource supports direct stream, now test to see if the client supports it
                 var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ?
@@ -315,6 +322,13 @@ namespace MediaBrowser.Api.Playback
                         options.ForceDirectStream = true;
                     }
                 }
+                else if (item is Video)
+                {
+                    if (!user.Policy.EnableAudioPlaybackTranscoding && !user.Policy.EnableVideoPlaybackTranscoding && !user.Policy.EnablePlaybackRemuxing)
+                    {
+                        options.ForceDirectStream = true;
+                    }
+                }
 
                 // The MediaSource supports direct stream, now test to see if the client supports it
                 var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ?

+ 3 - 2
MediaBrowser.Model/Dlna/ResolutionNormalizer.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using MediaBrowser.Model.Extensions;
 
 namespace MediaBrowser.Model.Dlna
 {
@@ -59,8 +60,8 @@ namespace MediaBrowser.Model.Dlna
 
         private static double GetVideoBitrateScaleFactor(string codec)
         {
-            if (string.Equals(codec, "h265", StringComparison.OrdinalIgnoreCase) ||
-                string.Equals(codec, "hevc", StringComparison.OrdinalIgnoreCase))
+            if (StringHelper.EqualsIgnoreCase(codec, "h265") ||
+                StringHelper.EqualsIgnoreCase(codec, "hevc"))
             {
                 return .5;
             }

+ 2 - 0
MediaBrowser.Model/Users/UserPolicy.cs

@@ -41,6 +41,7 @@ namespace MediaBrowser.Model.Users
         public bool EnableMediaPlayback { get; set; }
         public bool EnableAudioPlaybackTranscoding { get; set; }
         public bool EnableVideoPlaybackTranscoding { get; set; }
+        public bool EnablePlaybackRemuxing { get; set; }
 
         public bool EnableContentDeletion { get; set; }
         public bool EnableContentDownloading { get; set; }
@@ -76,6 +77,7 @@ namespace MediaBrowser.Model.Users
             EnableMediaPlayback = true;
             EnableAudioPlaybackTranscoding = true;
             EnableVideoPlaybackTranscoding = true;
+            EnablePlaybackRemuxing = true;
 
             EnableLiveTvManagement = true;
             EnableLiveTvAccess = true;