Browse Source

fix hwaccel health check on mobile (#2401)

* fix hw accel health check on mobile

* allow classic schedules to fast forward
pull/2402/head
Jason Dove 4 months ago committed by GitHub
parent
commit
6b275f8a13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 1
      ErsatzTV.Application/MediaCollections/Commands/PreviewPlaylistPlayoutHandler.cs
  3. 2
      ErsatzTV.Application/Playouts/Commands/BuildPlayoutHandler.cs
  4. 6
      ErsatzTV.Core.Tests/Scheduling/ClassicScheduling/NewPlayoutTests.cs
  5. 1
      ErsatzTV.Core/Interfaces/Scheduling/IPlayoutBuilder.cs
  6. 8
      ErsatzTV.Core/Scheduling/PlayoutBuilder.cs
  7. 2
      ErsatzTV.Infrastructure/Health/Checks/HardwareAccelerationHealthCheck.cs

1
CHANGELOG.md

@ -34,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). @@ -34,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Block schedules: fix playout build crash when empty collection uses random playback order
- Fix watermarks and graphics elements on primary content split by mid-roll filler
- Fix watermarks and graphics elements when `Scaling Behavior` is `Crop`
- Fix hardware acceleration health check message on mobile
### Changed
- **BREAKING CHANGE**: change how `Scripted Schedule` system works

1
ErsatzTV.Application/MediaCollections/Commands/PreviewPlaylistPlayoutHandler.cs

@ -57,6 +57,7 @@ public class PreviewPlaylistPlayoutHandler( @@ -57,6 +57,7 @@ public class PreviewPlaylistPlayoutHandler(
playoutBuilder.TrimStart = false;
playoutBuilder.DebugPlaylist = playout.ProgramSchedule.Items[0].Playlist;
PlayoutBuildResult result = await playoutBuilder.Build(
DateTimeOffset.Now,
playout,
referenceData,
PlayoutBuildMode.Reset,

2
ErsatzTV.Application/Playouts/Commands/BuildPlayoutHandler.cs

@ -154,7 +154,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro @@ -154,7 +154,7 @@ public class BuildPlayoutHandler : IRequestHandler<BuildPlayout, Either<BaseErro
case PlayoutScheduleKind.None:
case PlayoutScheduleKind.Classic:
default:
result = await _playoutBuilder.Build(playout, referenceData, request.Mode, cancellationToken);
result = await _playoutBuilder.Build(request.Start, playout, referenceData, request.Mode, cancellationToken);
break;
}

6
ErsatzTV.Core.Tests/Scheduling/ClassicScheduling/NewPlayoutTests.cs

@ -27,7 +27,7 @@ public class NewPlayoutTests : PlayoutBuilderTestBase @@ -27,7 +27,7 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
TestDataFloodForItems(mediaItems, PlaybackOrder.Random);
PlayoutBuildResult result =
await builder.Build(playout, referenceData, PlayoutBuildMode.Reset, CancellationToken);
await builder.Build(DateTimeOffset.Now, playout, referenceData, PlayoutBuildMode.Reset, CancellationToken);
result.AddedItems.ShouldBeEmpty();
}
@ -84,7 +84,7 @@ public class NewPlayoutTests : PlayoutBuilderTestBase @@ -84,7 +84,7 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
TestDataFloodForItems(mediaItems, PlaybackOrder.Random, configRepo);
PlayoutBuildResult result =
await builder.Build(playout, referenceData, PlayoutBuildMode.Reset, CancellationToken);
await builder.Build(DateTimeOffset.Now, playout, referenceData, PlayoutBuildMode.Reset, CancellationToken);
result.AddedItems.ShouldBeEmpty();
}
@ -150,7 +150,7 @@ public class NewPlayoutTests : PlayoutBuilderTestBase @@ -150,7 +150,7 @@ public class NewPlayoutTests : PlayoutBuilderTestBase
TestDataFloodForItems(mediaItems, PlaybackOrder.Random, configRepo);
PlayoutBuildResult result =
await builder.Build(playout, referenceData, PlayoutBuildMode.Reset, CancellationToken);
await builder.Build(DateTimeOffset.Now, playout, referenceData, PlayoutBuildMode.Reset, CancellationToken);
result.AddedItems.ShouldBeEmpty();
}

1
ErsatzTV.Core/Interfaces/Scheduling/IPlayoutBuilder.cs

@ -9,6 +9,7 @@ public interface IPlayoutBuilder @@ -9,6 +9,7 @@ public interface IPlayoutBuilder
Playlist DebugPlaylist { get; set; }
Task<PlayoutBuildResult> Build(
DateTimeOffset start,
Playout playout,
PlayoutReferenceData referenceData,
PlayoutBuildMode mode,

8
ErsatzTV.Core/Scheduling/PlayoutBuilder.cs

@ -61,6 +61,7 @@ public class PlayoutBuilder : IPlayoutBuilder @@ -61,6 +61,7 @@ public class PlayoutBuilder : IPlayoutBuilder
}
public async Task<PlayoutBuildResult> Build(
DateTimeOffset start,
Playout playout,
PlayoutReferenceData referenceData,
PlayoutBuildMode mode,
@ -79,7 +80,7 @@ public class PlayoutBuilder : IPlayoutBuilder @@ -79,7 +80,7 @@ public class PlayoutBuilder : IPlayoutBuilder
return result;
}
foreach (PlayoutParameters parameters in await Validate(playout, referenceData, cancellationToken))
foreach (PlayoutParameters parameters in await Validate(start, playout, referenceData, cancellationToken))
{
// for testing purposes
// if (mode == PlayoutBuildMode.Reset)
@ -116,7 +117,7 @@ public class PlayoutBuilder : IPlayoutBuilder @@ -116,7 +117,7 @@ public class PlayoutBuilder : IPlayoutBuilder
DateTimeOffset finish,
CancellationToken cancellationToken)
{
foreach (PlayoutParameters parameters in await Validate(playout, referenceData, cancellationToken))
foreach (PlayoutParameters parameters in await Validate(start, playout, referenceData, cancellationToken))
{
result = await Build(
playout,
@ -320,6 +321,7 @@ public class PlayoutBuilder : IPlayoutBuilder @@ -320,6 +321,7 @@ public class PlayoutBuilder : IPlayoutBuilder
}
private async Task<Option<PlayoutParameters>> Validate(
DateTimeOffset start,
Playout playout,
PlayoutReferenceData referenceData,
CancellationToken cancellationToken)
@ -367,7 +369,7 @@ public class PlayoutBuilder : IPlayoutBuilder @@ -367,7 +369,7 @@ public class PlayoutBuilder : IPlayoutBuilder
ConfigElementKey.PlayoutDaysToBuild,
cancellationToken);
DateTimeOffset now = DateTimeOffset.Now;
DateTimeOffset now = start;
return new PlayoutParameters(
now,

2
ErsatzTV.Infrastructure/Health/Checks/HardwareAccelerationHealthCheck.cs

@ -97,7 +97,7 @@ public class HardwareAccelerationHealthCheck : BaseHealthCheck, IHardwareAcceler @@ -97,7 +97,7 @@ public class HardwareAccelerationHealthCheck : BaseHealthCheck, IHardwareAcceler
var channels = string.Join(", ", badChannels.Map(c => $"{c.Number} - {c.Name}"));
return WarningResult(
$"The following channels use ffmpeg profiles that are not configured for hardware acceleration ({accel}): {channels}",
$"{channels.Length} channels are not configured for hardware acceleration");
$"{badChannels.Count} channels are not configured for hardware acceleration");
}
return None;

Loading…
Cancel
Save