瀏覽代碼

Make IRecorder an IDisposable

Patrick Barron 1 年之前
父節點
當前提交
669baf98a5

+ 6 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs

@@ -14,7 +14,7 @@ using Microsoft.Extensions.Logging;
 
 namespace Emby.Server.Implementations.LiveTv.EmbyTV
 {
-    public class DirectRecorder : IRecorder
+    public sealed class DirectRecorder : IRecorder
     {
         private readonly ILogger _logger;
         private readonly IHttpClientFactory _httpClientFactory;
@@ -109,5 +109,10 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                 _logger.LogInformation("Recording completed to file {0}", targetFile);
             }
         }
+
+        /// <inheritdoc />
+        public void Dispose()
+        {
+        }
     }
 }

+ 1 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs

@@ -1269,7 +1269,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                     directStreamProvider = liveStreamResponse.Item2;
                 }
 
-                var recorder = GetRecorder(mediaStreamInfo);
+                using var recorder = GetRecorder(mediaStreamInfo);
 
                 recordPath = recorder.GetOutputPath(mediaStreamInfo, recordPath);
                 recordPath = EnsureFileUnique(recordPath, timer.Id);

+ 2 - 2
Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs

@@ -25,7 +25,7 @@ using Microsoft.Extensions.Logging;
 
 namespace Emby.Server.Implementations.LiveTv.EmbyTV
 {
-    public class EncodedRecorder : IRecorder, IDisposable
+    public class EncodedRecorder : IRecorder
     {
         private readonly ILogger _logger;
         private readonly IMediaEncoder _mediaEncoder;
@@ -37,7 +37,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
         private FileStream _logFileStream;
         private string _targetPath;
         private Process _process;
-        private bool _disposed = false;
+        private bool _disposed;
 
         public EncodedRecorder(
             ILogger logger,

+ 1 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs

@@ -8,7 +8,7 @@ using MediaBrowser.Model.Dto;
 
 namespace Emby.Server.Implementations.LiveTv.EmbyTV
 {
-    public interface IRecorder
+    public interface IRecorder : IDisposable
     {
         /// <summary>
         /// Records the specified media source.