diff options
| author | Patrick Barron <18354464+barronpm@users.noreply.github.com> | 2020-08-03 17:11:24 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-03 17:11:24 +0000 |
| commit | 6a42a48c09b8125e96daa057f755bc67ce7bac37 (patch) | |
| tree | b25b0d1ee9e7c6e9ecacfff67d65ec9b49590419 /Jellyfin.Api/Helpers/TranscodingJobHelper.cs | |
| parent | cd515bdbfd24b5ae43f4bf5280cf9cf975e87eb2 (diff) | |
| parent | 91f2a7d9a831a63d4e833272037e7f171b729c32 (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.cs | 38 |
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; + } + } } } |
