aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Helpers/TranscodingJobHelper.cs
diff options
context:
space:
mode:
authorPatrick Barron <18354464+barronpm@users.noreply.github.com>2020-08-03 17:11:24 +0000
committerGitHub <noreply@github.com>2020-08-03 17:11:24 +0000
commit6a42a48c09b8125e96daa057f755bc67ce7bac37 (patch)
treeb25b0d1ee9e7c6e9ecacfff67d65ec9b49590419 /Jellyfin.Api/Helpers/TranscodingJobHelper.cs
parentcd515bdbfd24b5ae43f4bf5280cf9cf975e87eb2 (diff)
parent91f2a7d9a831a63d4e833272037e7f171b729c32 (diff)
Merge pull request #3528 from Ullmie02/api-entrypoint
Make TranscodingJobHelper an IDisposable (api-migration)
Diffstat (limited to 'Jellyfin.Api/Helpers/TranscodingJobHelper.cs')
-rw-r--r--Jellyfin.Api/Helpers/TranscodingJobHelper.cs38
1 files changed, 35 insertions, 3 deletions
diff --git a/Jellyfin.Api/Helpers/TranscodingJobHelper.cs b/Jellyfin.Api/Helpers/TranscodingJobHelper.cs
index a5092ac1d..67e450372 100644
--- a/Jellyfin.Api/Helpers/TranscodingJobHelper.cs
+++ b/Jellyfin.Api/Helpers/TranscodingJobHelper.cs
@@ -30,7 +30,7 @@ namespace Jellyfin.Api.Helpers
/// <summary>
/// Transcoding job helpers.
/// </summary>
- public class TranscodingJobHelper
+ public class TranscodingJobHelper : IDisposable
{
/// <summary>
/// The active transcoding jobs.
@@ -46,7 +46,6 @@ namespace Jellyfin.Api.Helpers
private readonly EncodingHelper _encodingHelper;
private readonly IFileSystem _fileSystem;
private readonly IIsoManager _isoManager;
-
private readonly ILogger<TranscodingJobHelper> _logger;
private readonly IMediaEncoder _mediaEncoder;
private readonly IMediaSourceManager _mediaSourceManager;
@@ -90,10 +89,12 @@ namespace Jellyfin.Api.Helpers
_authorizationContext = authorizationContext;
_isoManager = isoManager;
_loggerFactory = loggerFactory;
-
_encodingHelper = new EncodingHelper(mediaEncoder, fileSystem, subtitleEncoder, configuration);
DeleteEncodedMediaCache();
+
+ sessionManager!.PlaybackProgress += OnPlaybackProgress;
+ sessionManager!.PlaybackStart += OnPlaybackProgress;
}
/// <summary>
@@ -834,6 +835,14 @@ namespace Jellyfin.Api.Helpers
}
}
+ private void OnPlaybackProgress(object sender, PlaybackProgressEventArgs e)
+ {
+ if (!string.IsNullOrWhiteSpace(e.PlaySessionId))
+ {
+ PingTranscodingJob(e.PlaySessionId, e.IsPaused);
+ }
+ }
+
/// <summary>
/// Deletes the encoded media cache.
/// </summary>
@@ -850,5 +859,28 @@ namespace Jellyfin.Api.Helpers
_fileSystem.DeleteFile(file);
}
}
+
+ /// <summary>
+ /// Dispose transcoding job helper.
+ /// </summary>
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ /// <summary>
+ /// Dispose throttler.
+ /// </summary>
+ /// <param name="disposing">Disposing.</param>
+ protected virtual void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ _loggerFactory.Dispose();
+ _sessionManager!.PlaybackProgress -= OnPlaybackProgress;
+ _sessionManager!.PlaybackStart -= OnPlaybackProgress;
+ }
+ }
}
}