Luke Pulverenti 9 anni fa
parent
commit
9e387b2ecf

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

@@ -854,7 +854,7 @@ namespace MediaBrowser.Api.Playback
                 state.IsoMount = await IsoManager.Mount(state.MediaPath, cancellationTokenSource.Token).ConfigureAwait(false);
             }
 
-            if (state.MediaSource.RequiresOpening)
+            if (state.MediaSource.RequiresOpening && string.IsNullOrWhiteSpace(state.Request.LiveStreamId))
             {
                 var liveStreamResponse = await MediaSourceManager.OpenLiveStream(new LiveStreamRequest
                 {

+ 5 - 0
MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs

@@ -479,6 +479,11 @@ namespace MediaBrowser.Server.Implementations.Library
 
         private Tuple<IMediaSourceProvider, string> GetProvider(string key)
         {
+            if (string.IsNullOrWhiteSpace(key))
+            {
+                throw new ArgumentException("key");
+            }
+
             var keys = key.Split(new[] { LiveStreamIdDelimeter }, 2);
 
             var provider = _providers.FirstOrDefault(i => string.Equals(i.GetType().FullName.GetMD5().ToString("N"), keys[0], StringComparison.OrdinalIgnoreCase));

+ 3 - 9
MediaBrowser.Server.Implementations/LiveTv/LiveTvMediaSourceProvider.cs

@@ -90,6 +90,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
             foreach (var source in list)
             {
                 source.Type = MediaSourceType.Default;
+                source.BufferMs = source.BufferMs ?? 1500;
 
                 if (source.RequiresOpening || forceRequireOpening)
                 {
@@ -103,9 +104,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
                     openKeys.Add(item.Id.ToString("N"));
                     openKeys.Add(source.Id ?? string.Empty);
                     source.OpenToken = string.Join(StreamIdDelimeterString, openKeys.ToArray());
-                }
-
-                source.BufferMs = source.BufferMs ?? 1500;
+                } 
 
                 // Dummy this up so that direct play checks can still run
                 if (string.IsNullOrEmpty(source.Path) && source.Protocol == MediaProtocol.Http)
@@ -125,12 +124,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
             const bool isAudio = false;
 
             var keys = openToken.Split(new[] { StreamIdDelimeter }, 3);
-            string mediaSourceId = null;
-
-            if (keys.Length >= 3)
-            {
-                mediaSourceId = openToken.Substring(keys[0].Length + keys[1].Length + 2);
-            }
+            var mediaSourceId = keys.Length >= 3 ? keys[2] : null;
 
             if (string.Equals(keys[0], typeof(LiveTvChannel).Name, StringComparison.OrdinalIgnoreCase))
             {

+ 2 - 2
SharedVersion.cs

@@ -1,4 +1,4 @@
 using System.Reflection;
 
-[assembly: AssemblyVersion("3.0.*")]
-//[assembly: AssemblyVersion("3.0.5713.0")]
+//[assembly: AssemblyVersion("3.0.*")]
+[assembly: AssemblyVersion("3.0.5713.1")]