Browse Source

add session reporting error handling

Luke Pulverenti 8 years ago
parent
commit
b8d4ef5fc6

+ 10 - 0
MediaBrowser.Api/Playback/Hls/VideoHlsService.cs

@@ -75,6 +75,16 @@ namespace MediaBrowser.Api.Playback.Hls
         /// <returns>System.String.</returns>
         /// <returns>System.String.</returns>
         protected override string GetVideoArguments(StreamState state)
         protected override string GetVideoArguments(StreamState state)
         {
         {
+            if (!state.IsOutputVideo)
+            {
+                return string.Empty;
+            }
+            // No known video stream
+            if (state.VideoStream == null)
+            {
+                return string.Empty;
+            }
+
             var codec = EncodingHelper.GetVideoEncoder(state, ApiEntryPoint.Instance.GetEncodingOptions());
             var codec = EncodingHelper.GetVideoEncoder(state, ApiEntryPoint.Instance.GetEncodingOptions());
 
 
             var args = "-codec:v:0 " + codec;
             var args = "-codec:v:0 " + codec;

+ 14 - 0
MediaBrowser.Controller/Session/SessionInfo.cs

@@ -203,6 +203,11 @@ namespace MediaBrowser.Controller.Session
 
 
         public void StartAutomaticProgress(ITimerFactory timerFactory, PlaybackProgressInfo progressInfo)
         public void StartAutomaticProgress(ITimerFactory timerFactory, PlaybackProgressInfo progressInfo)
         {
         {
+            if (_disposed)
+            {
+                return;
+            }
+
             lock (_progressLock)
             lock (_progressLock)
             {
             {
                 _lastProgressInfo = progressInfo;
                 _lastProgressInfo = progressInfo;
@@ -223,6 +228,11 @@ namespace MediaBrowser.Controller.Session
 
 
         private async void OnProgressTimerCallback(object state)
         private async void OnProgressTimerCallback(object state)
         {
         {
+            if (_disposed)
+            {
+                return;
+            }
+
             var progressInfo = _lastProgressInfo;
             var progressInfo = _lastProgressInfo;
             if (progressInfo == null)
             if (progressInfo == null)
             {
             {
@@ -274,8 +284,12 @@ namespace MediaBrowser.Controller.Session
             }
             }
         }
         }
 
 
+        private bool _disposed = false;
+
         public void Dispose()
         public void Dispose()
         {
         {
+            _disposed = true;
+
             StopAutomaticProgress();
             StopAutomaticProgress();
             _sessionManager = null;
             _sessionManager = null;
         }
         }

+ 1 - 1
SharedVersion.cs

@@ -1,3 +1,3 @@
 using System.Reflection;
 using System.Reflection;
 
 
-[assembly: AssemblyVersion("3.2.24.1")]
+[assembly: AssemblyVersion("3.2.25.2")]