From b717ecd5e0986143099cafeb1c3e154b72d04512 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 9 Jul 2020 17:22:30 +0200 Subject: Move methods to the right class --- Jellyfin.Api/Helpers/TranscodingJobHelper.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Jellyfin.Api/Helpers/TranscodingJobHelper.cs') diff --git a/Jellyfin.Api/Helpers/TranscodingJobHelper.cs b/Jellyfin.Api/Helpers/TranscodingJobHelper.cs index fc38eacaf..13d8c26db 100644 --- a/Jellyfin.Api/Helpers/TranscodingJobHelper.cs +++ b/Jellyfin.Api/Helpers/TranscodingJobHelper.cs @@ -53,6 +53,7 @@ namespace Jellyfin.Api.Helpers private readonly IServerConfigurationManager _serverConfigurationManager; private readonly ISessionManager _sessionManager; private readonly ILoggerFactory _loggerFactory; + private readonly IFileSystem _fileSystem; /// /// Initializes a new instance of the class. @@ -90,10 +91,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; } /// @@ -834,6 +837,14 @@ namespace Jellyfin.Api.Helpers } } + private void OnPlaybackProgress(object sender, PlaybackProgressEventArgs e) + { + if (!string.IsNullOrWhiteSpace(e.PlaySessionId)) + { + PingTranscodingJob(e.PlaySessionId, e.IsPaused); + } + } + /// /// Deletes the encoded media cache. /// -- cgit v1.2.3 From 3f0c0e2d0d920871e74ada6f3a1f1e17d8ce0c28 Mon Sep 17 00:00:00 2001 From: David Date: Sat, 1 Aug 2020 16:21:48 +0200 Subject: Implement IDisposable --- Jellyfin.Api/Helpers/TranscodingJobHelper.cs | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'Jellyfin.Api/Helpers/TranscodingJobHelper.cs') diff --git a/Jellyfin.Api/Helpers/TranscodingJobHelper.cs b/Jellyfin.Api/Helpers/TranscodingJobHelper.cs index 13d8c26db..38bd7efee 100644 --- a/Jellyfin.Api/Helpers/TranscodingJobHelper.cs +++ b/Jellyfin.Api/Helpers/TranscodingJobHelper.cs @@ -30,7 +30,7 @@ namespace Jellyfin.Api.Helpers /// /// Transcoding job helpers. /// - public class TranscodingJobHelper + public class TranscodingJobHelper : IDisposable { /// /// The active transcoding jobs. @@ -46,14 +46,12 @@ namespace Jellyfin.Api.Helpers private readonly EncodingHelper _encodingHelper; private readonly IFileSystem _fileSystem; private readonly IIsoManager _isoManager; - private readonly ILogger _logger; private readonly IMediaEncoder _mediaEncoder; private readonly IMediaSourceManager _mediaSourceManager; private readonly IServerConfigurationManager _serverConfigurationManager; private readonly ISessionManager _sessionManager; private readonly ILoggerFactory _loggerFactory; - private readonly IFileSystem _fileSystem; /// /// Initializes a new instance of the class. @@ -861,5 +859,28 @@ namespace Jellyfin.Api.Helpers _fileSystem.DeleteFile(file); } } + + /// + /// Dispose transcoding job helper. + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Dispose throttler. + /// + /// Disposing. + protected virtual void Dispose(bool disposing) + { + if (disposing) + { + _loggerFactory.Dispose(); + _sessionManager!.PlaybackProgress -= OnPlaybackProgress; + _sessionManager!.PlaybackStart -= OnPlaybackProgress; + } + } } } -- cgit v1.2.3