From f272036c6fd051497d9b8114e91a1655ee40a5a6 Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Tue, 17 May 2022 08:43:28 -0500 Subject: [PATCH] reduce hls disk use (#808) * reduce hls segmenter disk use * logging improvements * update dependencies --- ErsatzTV.Application/Streaming/HlsSessionWorker.cs | 7 ++++++- ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj | 2 +- ErsatzTV.Core/FFmpeg/FFmpegStreamSelector.cs | 2 +- ErsatzTV.Core/Metadata/LocalFolderScanner.cs | 1 + ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ErsatzTV.Application/Streaming/HlsSessionWorker.cs b/ErsatzTV.Application/Streaming/HlsSessionWorker.cs index 804d3becd..b00580241 100644 --- a/ErsatzTV.Application/Streaming/HlsSessionWorker.cs +++ b/ErsatzTV.Application/Streaming/HlsSessionWorker.cs @@ -371,7 +371,7 @@ public class HlsSessionWorker : IHlsSessionWorker } } - private static async Task GetPtsOffset( + private async Task GetPtsOffset( IMediator mediator, string channelNumber, CancellationToken cancellationToken) @@ -385,6 +385,11 @@ public class HlsSessionWorker : IHlsSessionWorker new GetLastPtsDuration(channelNumber), cancellationToken); + foreach (BaseError error in queryResult.LeftToSeq()) + { + _logger.LogWarning("Unable to determine last pts offset - {@Error}", error); + } + foreach ((long pts, long duration) in queryResult.RightToSeq()) { result = pts + duration; diff --git a/ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj b/ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj index 114c6b833..14709b4e6 100644 --- a/ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj +++ b/ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj @@ -21,7 +21,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/ErsatzTV.Core/FFmpeg/FFmpegStreamSelector.cs b/ErsatzTV.Core/FFmpeg/FFmpegStreamSelector.cs index 3e6503130..eb2a01dca 100644 --- a/ErsatzTV.Core/FFmpeg/FFmpegStreamSelector.cs +++ b/ErsatzTV.Core/FFmpeg/FFmpegStreamSelector.cs @@ -82,7 +82,7 @@ public class FFmpegStreamSelector : IFFmpegStreamSelector "Unable to find audio stream with preferred audio language code(s) {Code}; selecting stream with most channels", allCodes); - return audioStreams.OrderByDescending(s => s.Channels).Head(); + return audioStreams.OrderByDescending(s => s.Channels).HeadOrNone(); } public async Task> SelectSubtitleStream( diff --git a/ErsatzTV.Core/Metadata/LocalFolderScanner.cs b/ErsatzTV.Core/Metadata/LocalFolderScanner.cs index 6a9a4a7e1..ad6653c39 100644 --- a/ErsatzTV.Core/Metadata/LocalFolderScanner.cs +++ b/ErsatzTV.Core/Metadata/LocalFolderScanner.cs @@ -299,6 +299,7 @@ public abstract class LocalFolderScanner } protected bool ShouldIncludeFolder(string folder) => + !string.IsNullOrWhiteSpace(folder) && !Path.GetFileName(folder).StartsWith('.') && !_localFileSystem.FileExists(Path.Combine(folder, ".etvignore")); } diff --git a/ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj b/ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj index 1c922c390..a3e684c68 100644 --- a/ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj +++ b/ErsatzTV.FFmpeg.Tests/ErsatzTV.FFmpeg.Tests.csproj @@ -10,7 +10,7 @@ - +