Browse Source

Re-raise the exception that caused LiveTV stream to not open

Vasily 5 years ago
parent
commit
a517bd2e52
1 changed files with 10 additions and 2 deletions
  1. 10 2
      Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs

+ 10 - 2
Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs

@@ -118,6 +118,11 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
             //OpenedMediaSource.SupportsDirectStream = true;
             //OpenedMediaSource.SupportsTranscoding = true;
             await taskCompletionSource.Task.ConfigureAwait(false);
+            if (taskCompletionSource.Task.Exception != null)
+            {
+                // Error happened during opening the stream, re-raise the exception to inform the caller
+                throw taskCompletionSource.Task.Exception;
+            }
         }
 
         private Task StartStreaming(HttpResponseInfo response, TaskCompletionSource<bool> openTaskCompletionSource, CancellationToken cancellationToken)
@@ -139,12 +144,15 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
                             cancellationToken).ConfigureAwait(false);
                     }
                 }
-                catch (OperationCanceledException)
+                catch (OperationCanceledException ex)
                 {
+                    Logger.LogWarning(ex, "Copying of {0} to {1} was canceled", GetType().Name, TempFilePath);
+                    openTaskCompletionSource.TrySetException(ex);
                 }
                 catch (Exception ex)
                 {
-                    Logger.LogError(ex, "Error copying live stream.");
+                    Logger.LogError(ex, "Error copying live stream {0} to {1}.", GetType().Name, TempFilePath);
+                    openTaskCompletionSource.TrySetException(ex);
                 }
 
                 EnableStreamSharing = false;