Переглянути джерело

Check that ffmpeg log target isn't disposed before writing to it

Claus Vium 6 роки тому
батько
коміт
96b3d37caf
1 змінених файлів з 2 додано та 6 видалено
  1. 2 6
      MediaBrowser.Controller/MediaEncoding/JobLogger.cs

+ 2 - 6
MediaBrowser.Controller/MediaEncoding/JobLogger.cs

@@ -24,7 +24,8 @@ namespace MediaBrowser.Controller.MediaEncoding
             {
                 using (var reader = new StreamReader(source))
                 {
-                    while (!reader.EndOfStream)
+                    // If ffmpeg process is closed, the state is disposed, so don't write to target in that case
+                    while (!reader.EndOfStream && target.CanWrite)
                     {
                         var line = await reader.ReadLineAsync().ConfigureAwait(false);
 
@@ -37,11 +38,6 @@ namespace MediaBrowser.Controller.MediaEncoding
                     }
                 }
             }
-            catch (ObjectDisposedException)
-            {
-                //TODO Investigate and properly fix.
-                // Don't spam the log. This doesn't seem to throw in windows, but sometimes under linux
-            }
             catch (Exception ex)
             {
                 _logger.LogError(ex, "Error reading ffmpeg log");