2
0
Luke Pulverenti 8 жил өмнө
parent
commit
b578877ac4

+ 0 - 7
MediaBrowser.Api/Playback/Hls/BaseHlsService.cs

@@ -309,13 +309,6 @@ namespace MediaBrowser.Api.Playback.Hls
             return 0;
             return 0;
         }
         }
 
 
-        protected bool IsLiveStream(StreamState state)
-        {
-            var isLiveStream = (state.RunTimeTicks ?? 0) == 0;
-
-            return isLiveStream;
-        }
-
         public BaseHlsService(IServerConfigurationManager serverConfig, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager, IMediaEncoder mediaEncoder, IFileSystem fileSystem, IDlnaManager dlnaManager, ISubtitleEncoder subtitleEncoder, IDeviceManager deviceManager, IMediaSourceManager mediaSourceManager, IZipClient zipClient, IJsonSerializer jsonSerializer, IAuthorizationContext authorizationContext) : base(serverConfig, userManager, libraryManager, isoManager, mediaEncoder, fileSystem, dlnaManager, subtitleEncoder, deviceManager, mediaSourceManager, zipClient, jsonSerializer, authorizationContext)
         public BaseHlsService(IServerConfigurationManager serverConfig, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager, IMediaEncoder mediaEncoder, IFileSystem fileSystem, IDlnaManager dlnaManager, ISubtitleEncoder subtitleEncoder, IDeviceManager deviceManager, IMediaSourceManager mediaSourceManager, IZipClient zipClient, IJsonSerializer jsonSerializer, IAuthorizationContext authorizationContext) : base(serverConfig, userManager, libraryManager, isoManager, mediaEncoder, fileSystem, dlnaManager, subtitleEncoder, deviceManager, mediaSourceManager, zipClient, jsonSerializer, authorizationContext)
         {
         {
         }
         }

+ 1 - 1
MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs

@@ -521,7 +521,7 @@ namespace MediaBrowser.Api.Playback.Hls
 
 
             builder.AppendLine("#EXTM3U");
             builder.AppendLine("#EXTM3U");
 
 
-            var isLiveStream = IsLiveStream(state);
+            var isLiveStream = state.IsSegmentedLiveStream;
 
 
             var queryStringIndex = Request.RawUrl.IndexOf('?');
             var queryStringIndex = Request.RawUrl.IndexOf('?');
             var queryString = queryStringIndex == -1 ? string.Empty : Request.RawUrl.Substring(queryStringIndex);
             var queryString = queryStringIndex == -1 ? string.Empty : Request.RawUrl.Substring(queryStringIndex);

+ 13 - 3
MediaBrowser.Api/Playback/StreamState.cs

@@ -89,17 +89,25 @@ namespace MediaBrowser.Api.Playback
                         return 10;
                         return 10;
                     }
                     }
 
 
-                    if (!RunTimeTicks.HasValue)
+                    if (IsSegmentedLiveStream)
                     {
                     {
                         return 3;
                         return 3;
                     }
                     }
-                    return 3;
+                    return 6;
                 }
                 }
 
 
                 return 3;
                 return 3;
             }
             }
         }
         }
 
 
+        public bool IsSegmentedLiveStream
+        {
+            get
+            {
+                return TranscodingType != TranscodingJobType.Progressive && !RunTimeTicks.HasValue;
+            }
+        }
+
         public int HlsListSize
         public int HlsListSize
         {
         {
             get
             get
@@ -119,8 +127,9 @@ namespace MediaBrowser.Api.Playback
         public List<string> SupportedAudioCodecs { get; set; }
         public List<string> SupportedAudioCodecs { get; set; }
         public List<string> SupportedVideoCodecs { get; set; }
         public List<string> SupportedVideoCodecs { get; set; }
         public string UserAgent { get; set; }
         public string UserAgent { get; set; }
+        public TranscodingJobType TranscodingType { get; set; }
 
 
-        public StreamState(IMediaSourceManager mediaSourceManager, ILogger logger)
+        public StreamState(IMediaSourceManager mediaSourceManager, ILogger logger, TranscodingJobType transcodingType)
         {
         {
             _mediaSourceManager = mediaSourceManager;
             _mediaSourceManager = mediaSourceManager;
             _logger = logger;
             _logger = logger;
@@ -128,6 +137,7 @@ namespace MediaBrowser.Api.Playback
             SupportedVideoCodecs = new List<string>();
             SupportedVideoCodecs = new List<string>();
             PlayableStreamFileNames = new List<string>();
             PlayableStreamFileNames = new List<string>();
             RemoteHttpHeaders = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
             RemoteHttpHeaders = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
+            TranscodingType = transcodingType;
         }
         }
 
 
         public string InputAudioSync { get; set; }
         public string InputAudioSync { get; set; }