aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Emby.Server.Implementations/Library/ExclusiveLiveStream.cs7
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/LiveStream.cs15
-rw-r--r--MediaBrowser.Controller/Library/ILiveStream.cs3
3 files changed, 23 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Library/ExclusiveLiveStream.cs b/Emby.Server.Implementations/Library/ExclusiveLiveStream.cs
index 868071a99..b1649afad 100644
--- a/Emby.Server.Implementations/Library/ExclusiveLiveStream.cs
+++ b/Emby.Server.Implementations/Library/ExclusiveLiveStream.cs
@@ -12,7 +12,7 @@ using MediaBrowser.Model.Dto;
namespace Emby.Server.Implementations.Library
{
- public class ExclusiveLiveStream : ILiveStream
+ public sealed class ExclusiveLiveStream : ILiveStream
{
private readonly Func<Task> _closeFn;
@@ -51,5 +51,10 @@ namespace Emby.Server.Implementations.Library
{
return Task.CompletedTask;
}
+
+ /// <inheritdoc />
+ public void Dispose()
+ {
+ }
}
}
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/LiveStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/LiveStream.cs
index c0ba8710f..c18594a29 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/LiveStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/LiveStream.cs
@@ -112,6 +112,21 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
return stream;
}
+ /// <inheritdoc />
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ protected virtual void Dispose(bool dispose)
+ {
+ if (dispose)
+ {
+ LiveStreamCancellationTokenSource?.Dispose();
+ }
+ }
+
protected async Task DeleteTempFiles(string path, int retryCount = 0)
{
if (retryCount == 0)
diff --git a/MediaBrowser.Controller/Library/ILiveStream.cs b/MediaBrowser.Controller/Library/ILiveStream.cs
index 4c44a17fd..bf64aca0f 100644
--- a/MediaBrowser.Controller/Library/ILiveStream.cs
+++ b/MediaBrowser.Controller/Library/ILiveStream.cs
@@ -2,6 +2,7 @@
#pragma warning disable CA1711, CS1591
+using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
@@ -9,7 +10,7 @@ using MediaBrowser.Model.Dto;
namespace MediaBrowser.Controller.Library
{
- public interface ILiveStream
+ public interface ILiveStream : IDisposable
{
int ConsumerCount { get; set; }