@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
@@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- `Generated`: default/existing behavior where channel must have its own playout
- `Mirror`: channel will play content from the specified `Mirror Source Channel`'s playout
- This allows the exact same content on different channels with different channel settings
- `Playout Offset` can be used to offset the times of scheduled playout items from the mirror source channel
- e.g. -2 hours will cause the mirror channel to play content 2 hours before the mirror source channel
### Fixed
- Fix transcoding content with bt709/pc color metadata
@ -11,6 +11,7 @@ using ErsatzTV.Core.Iptv;
@@ -11,6 +11,7 @@ using ErsatzTV.Core.Iptv;
usingErsatzTV.Core.Jellyfin;
usingErsatzTV.Core.Streaming;
usingErsatzTV.Infrastructure.Data;
usingErsatzTV.Infrastructure.Extensions;
usingMicrosoft.EntityFrameworkCore;
usingMicrosoft.Extensions.Logging;
usingMicrosoft.IO;
@ -52,10 +53,8 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
@@ -52,10 +53,8 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
@ -99,20 +98,22 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
@@ -99,20 +98,22 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
@ -213,6 +214,11 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
@@ -213,6 +214,11 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
.OrderBy(pi=>pi.Start)
.Filter(pi=>pi.StartOffset<=finish)
.ToList();
foreach(variteminfloodSorted)
{
item.Start+=playoutOffset;
item.Finish+=playoutOffset;
}
awaitWritePlayoutXml(
request,
floodSorted,
@ -232,6 +238,11 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
@@ -232,6 +238,11 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
.OrderBy(pi=>pi.Start)
.Filter(pi=>pi.StartOffset<=finish)
.ToList();
foreach(variteminblockSorted)
{
item.Start+=playoutOffset;
item.Finish+=playoutOffset;
}
awaitWriteBlockPlayoutXml(
request,
blockSorted,
@ -249,7 +260,11 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
@@ -249,7 +260,11 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
@ -118,7 +118,7 @@ public class RefreshChannelListHandler : IRequestHandler<RefreshChannelList>
@@ -118,7 +118,7 @@ public class RefreshChannelListHandler : IRequestHandler<RefreshChannelList>
conststringQUERY=@"select C.Number, C.Name, C.Categories, A.Path as ArtworkPath
@ -171,7 +171,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@@ -171,7 +171,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@ -242,6 +242,17 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@@ -242,6 +242,17 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@ -338,6 +349,20 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@@ -338,6 +349,20 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@ -439,6 +464,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@@ -439,6 +464,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
@ -525,7 +525,15 @@ public class ContinuePlayoutTests : PlayoutBuilderTestBase
@@ -525,7 +525,15 @@ public class ContinuePlayoutTests : PlayoutBuilderTestBase
@ -644,7 +652,8 @@ public class ContinuePlayoutTests : PlayoutBuilderTestBase
@@ -644,7 +652,8 @@ public class ContinuePlayoutTests : PlayoutBuilderTestBase
@ -765,7 +774,8 @@ public class ContinuePlayoutTests : PlayoutBuilderTestBase
@@ -765,7 +774,8 @@ public class ContinuePlayoutTests : PlayoutBuilderTestBase
@ -1028,7 +1060,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@@ -1028,7 +1060,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@ -1144,7 +1184,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@@ -1144,7 +1184,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@ -1265,7 +1313,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@@ -1265,7 +1313,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@ -1386,7 +1442,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@@ -1386,7 +1442,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@ -1516,7 +1580,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@@ -1516,7 +1580,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@ -1639,7 +1711,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@@ -1639,7 +1711,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@ -1728,7 +1808,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
@@ -1728,7 +1808,15 @@ public class NewPlayoutTests : PlayoutBuilderTestBase