mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-17 14:33:06 +03:00
Merge pull request #11161 from nyanmisaka/fix-segment-deletion
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
This commit is contained in:
@@ -321,7 +321,7 @@ public sealed class TranscodeManager : ITranscodeManager, IDisposable
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
(exs ??= new List<Exception>(4)).Add(ex);
|
||||
(exs ??= new List<Exception>()).Add(ex);
|
||||
_logger.LogError(ex, "Error deleting HLS file {Path}", file);
|
||||
}
|
||||
}
|
||||
@@ -546,6 +546,7 @@ public sealed class TranscodeManager : ITranscodeManager, IDisposable
|
||||
if (!transcodingJob.HasExited)
|
||||
{
|
||||
StartThrottler(state, transcodingJob);
|
||||
StartSegmentCleaner(state, transcodingJob);
|
||||
}
|
||||
else if (transcodingJob.ExitCode != 0)
|
||||
{
|
||||
@@ -573,6 +574,22 @@ public sealed class TranscodeManager : ITranscodeManager, IDisposable
|
||||
&& state.IsInputVideo
|
||||
&& state.VideoType == VideoType.VideoFile;
|
||||
|
||||
private void StartSegmentCleaner(StreamState state, TranscodingJob transcodingJob)
|
||||
{
|
||||
if (EnableSegmentCleaning(state))
|
||||
{
|
||||
transcodingJob.TranscodingSegmentCleaner = new TranscodingSegmentCleaner(transcodingJob, _loggerFactory.CreateLogger<TranscodingSegmentCleaner>(), _serverConfigurationManager, _fileSystem, _mediaEncoder, state.SegmentLength);
|
||||
transcodingJob.TranscodingSegmentCleaner.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private static bool EnableSegmentCleaning(StreamState state)
|
||||
=> state.InputProtocol is MediaProtocol.File or MediaProtocol.Http
|
||||
&& state.IsInputVideo
|
||||
&& state.TranscodingType == TranscodingJobType.Hls
|
||||
&& state.RunTimeTicks.HasValue
|
||||
&& state.RunTimeTicks.Value >= TimeSpan.FromMinutes(5).Ticks;
|
||||
|
||||
private TranscodingJob OnTranscodeBeginning(
|
||||
string path,
|
||||
string? playSessionId,
|
||||
|
||||
Reference in New Issue
Block a user