@ -40,6 +40,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
@@ -40,6 +40,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### Changed
- Do not use graphics engine for single, permanent watermark
- Rename `YAML Validation` tool to `Sequential Schedule Validation`
- Greatly reduce debug log spam during playout builds by logging summaries of certain warnings at the end
@ -13,6 +13,7 @@ using ErsatzTV.Core.Scheduling;
@@ -13,6 +13,7 @@ using ErsatzTV.Core.Scheduling;
usingErsatzTV.Infrastructure.Data;
usingErsatzTV.Infrastructure.Extensions;
usingMicrosoft.EntityFrameworkCore;
usingMicrosoft.Extensions.Logging;
usingChannel=ErsatzTV.Core.Domain.Channel;
namespaceErsatzTV.Application.Playouts;
@ -29,6 +30,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@@ -29,6 +30,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@ -44,7 +46,8 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@@ -44,7 +46,8 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@ -58,6 +61,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@@ -58,6 +61,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@ -88,6 +92,30 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@@ -88,6 +92,30 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@ -59,7 +59,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -59,7 +59,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
scheduleItem,
newPlayoutItem(),
newList<MediaChapter>(),
true,
newPlayoutBuildWarnings(),
_cancellationToken);
playoutItems.Count.ShouldBe(1);
@ -112,7 +112,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -112,7 +112,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
scheduleItem,
newPlayoutItem(),
newList<MediaChapter>{new()},
true,
newPlayoutBuildWarnings(),
_cancellationToken);
playoutItems.Count.ShouldBe(1);
@ -179,7 +179,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -179,7 +179,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@ -271,7 +271,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -271,7 +271,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@ -379,7 +379,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -379,7 +379,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@ -488,7 +488,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -488,7 +488,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@ -598,7 +598,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -598,7 +598,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@ -706,7 +706,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -706,7 +706,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@ -770,15 +770,13 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -770,15 +770,13 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@ -792,11 +790,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@@ -792,11 +790,7 @@ public class PlayoutModeSchedulerBaseTests : SchedulerTestBase
@ -60,7 +60,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -60,7 +60,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -133,7 +133,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -133,7 +133,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -205,7 +205,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -205,7 +205,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -274,7 +274,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -274,7 +274,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -357,7 +357,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -357,7 +357,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -444,7 +444,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -444,7 +444,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -543,7 +543,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -543,7 +543,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -653,7 +653,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -653,7 +653,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -802,7 +802,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -802,7 +802,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -874,7 +874,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -874,7 +874,7 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@ -51,7 +51,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -51,7 +51,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -126,7 +126,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -126,7 +126,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -223,7 +223,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -223,7 +223,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -308,7 +308,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -308,7 +308,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -396,7 +396,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -396,7 +396,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -478,7 +478,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -478,7 +478,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -576,7 +576,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -576,7 +576,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -664,7 +664,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -664,7 +664,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -772,7 +772,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -772,7 +772,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -886,7 +886,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -886,7 +886,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
// hard stop at 2, an hour before the "next schedule item" at 3
@ -992,7 +992,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -992,7 +992,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
// hard stop at 2, an hour before the "next schedule item" at 3
@ -1104,7 +1104,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -1104,7 +1104,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -1184,7 +1184,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@@ -1184,7 +1184,7 @@ public class PlayoutModeSchedulerFloodTests : SchedulerTestBase
@ -53,7 +53,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -53,7 +53,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -155,7 +155,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -155,7 +155,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -226,7 +226,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -226,7 +226,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -301,7 +301,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -301,7 +301,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -384,7 +384,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -384,7 +384,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -483,7 +483,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -483,7 +483,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -572,7 +572,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -572,7 +572,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -682,7 +682,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -682,7 +682,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -804,7 +804,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -804,7 +804,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -890,7 +890,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@@ -890,7 +890,7 @@ public class PlayoutModeSchedulerMultipleTests : SchedulerTestBase
@ -45,7 +45,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -45,7 +45,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -122,7 +122,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -122,7 +122,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -196,7 +196,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -196,7 +196,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -278,7 +278,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -278,7 +278,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -350,7 +350,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -350,7 +350,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -442,7 +442,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -442,7 +442,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -546,7 +546,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -546,7 +546,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -632,7 +632,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -632,7 +632,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -732,7 +732,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -732,7 +732,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -817,7 +817,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@@ -817,7 +817,7 @@ public class PlayoutModeSchedulerOneTests : SchedulerTestBase
@ -21,6 +18,8 @@ public class PlayoutModeSchedulerDuration : PlayoutModeSchedulerBase<ProgramSche
@@ -21,6 +18,8 @@ public class PlayoutModeSchedulerDuration : PlayoutModeSchedulerBase<ProgramSche
@ -205,7 +204,7 @@ public class PlayoutModeSchedulerDuration : PlayoutModeSchedulerBase<ProgramSche
@@ -205,7 +204,7 @@ public class PlayoutModeSchedulerDuration : PlayoutModeSchedulerBase<ProgramSche
scheduleItem,
playoutItem,
itemChapters,
false,
warnings,
cancellationToken);
// foreach (PlayoutItem pi in maybePlayoutItems.OrderBy(pi => pi.StartOffset))
@ -294,6 +293,7 @@ public class PlayoutModeSchedulerDuration : PlayoutModeSchedulerBase<ProgramSche
@@ -294,6 +293,7 @@ public class PlayoutModeSchedulerDuration : PlayoutModeSchedulerBase<ProgramSche
scheduleItem,
playoutItems,
nextItemStart,
warnings,
cancellationToken);
}
@ -348,6 +348,6 @@ public class PlayoutModeSchedulerDuration : PlayoutModeSchedulerBase<ProgramSche
@@ -348,6 +348,6 @@ public class PlayoutModeSchedulerDuration : PlayoutModeSchedulerBase<ProgramSche
@ -22,6 +17,7 @@ public class PlayoutModeSchedulerFlood : PlayoutModeSchedulerBase<ProgramSchedul
@@ -22,6 +17,7 @@ public class PlayoutModeSchedulerFlood : PlayoutModeSchedulerBase<ProgramSchedul
DateTimeOffsethardStop,
CancellationTokencancellationToken)
{
varwarnings=newPlayoutBuildWarnings();
varplayoutItems=newList<PlayoutItem>();
PlayoutBuilderStatenextState=playoutBuilderState;
@ -120,7 +116,7 @@ public class PlayoutModeSchedulerFlood : PlayoutModeSchedulerBase<ProgramSchedul
@@ -120,7 +116,7 @@ public class PlayoutModeSchedulerFlood : PlayoutModeSchedulerBase<ProgramSchedul
@ -189,6 +185,7 @@ public class PlayoutModeSchedulerFlood : PlayoutModeSchedulerBase<ProgramSchedul
@@ -189,6 +185,7 @@ public class PlayoutModeSchedulerFlood : PlayoutModeSchedulerBase<ProgramSchedul
scheduleItem,
playoutItems,
peekItemStart,
warnings,
cancellationToken);
}
@ -205,6 +202,6 @@ public class PlayoutModeSchedulerFlood : PlayoutModeSchedulerBase<ProgramSchedul
@@ -205,6 +202,6 @@ public class PlayoutModeSchedulerFlood : PlayoutModeSchedulerBase<ProgramSchedul
@ -23,13 +18,14 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
@@ -23,13 +18,14 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
@ -48,7 +44,7 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
@@ -48,7 +44,7 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
@ -143,7 +139,7 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
@@ -143,7 +139,7 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
scheduleItem,
playoutItem,
itemChapters,
true,
warnings,
cancellationToken));
nextState=nextStatewith
@ -189,6 +185,7 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
@@ -189,6 +185,7 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
scheduleItem,
playoutItems,
nextItemStart,
warnings,
cancellationToken);
}
@ -205,6 +202,6 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
@@ -205,6 +202,6 @@ public class PlayoutModeSchedulerMultiple : PlayoutModeSchedulerBase<ProgramSche
@ -20,6 +16,8 @@ public class PlayoutModeSchedulerOne : PlayoutModeSchedulerBase<ProgramScheduleI
@@ -20,6 +16,8 @@ public class PlayoutModeSchedulerOne : PlayoutModeSchedulerBase<ProgramScheduleI
@ -88,7 +86,7 @@ public class PlayoutModeSchedulerOne : PlayoutModeSchedulerBase<ProgramScheduleI
@@ -88,7 +86,7 @@ public class PlayoutModeSchedulerOne : PlayoutModeSchedulerBase<ProgramScheduleI
@ -116,6 +114,7 @@ public class PlayoutModeSchedulerOne : PlayoutModeSchedulerBase<ProgramScheduleI
@@ -116,6 +114,7 @@ public class PlayoutModeSchedulerOne : PlayoutModeSchedulerBase<ProgramScheduleI
scheduleItem,
playoutItems,
nextItemStart,
warnings,
cancellationToken);
}
@ -132,9 +131,9 @@ public class PlayoutModeSchedulerOne : PlayoutModeSchedulerBase<ProgramScheduleI
@@ -132,9 +131,9 @@ public class PlayoutModeSchedulerOne : PlayoutModeSchedulerBase<ProgramScheduleI