diff --git a/CHANGELOG.md b/CHANGELOG.md
index b040c44d2..d6af852a4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased]
### Fixed
- Fix song sorting with `Chronological` and `Shuffle In Order` playback orders
+- Fix watermark on scaled and/or padded video with NVIDIA acceleration
+- Fix playback of interlaced mpeg2video content with NVIDIA acceleration
## [0.4.2-alpha] - 2022-02-26
### Fixed
diff --git a/ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj b/ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj
index 1ffa8117e..ad152d802 100644
--- a/ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj
+++ b/ErsatzTV.Core.Tests/ErsatzTV.Core.Tests.csproj
@@ -29,4 +29,10 @@
+
+
+ Always
+
+
+
diff --git a/ErsatzTV.Core.Tests/FFmpeg/TranscodingTests.cs b/ErsatzTV.Core.Tests/FFmpeg/TranscodingTests.cs
index 6949f6adf..3edbff92f 100644
--- a/ErsatzTV.Core.Tests/FFmpeg/TranscodingTests.cs
+++ b/ErsatzTV.Core.Tests/FFmpeg/TranscodingTests.cs
@@ -47,8 +47,25 @@ namespace ErsatzTV.Core.Tests.FFmpeg
WithPadding
}
+ public enum Watermark
+ {
+ None,
+ PermanentOpaque,
+ PermanentTransparent,
+ IntermittentOpaque,
+ IntermittentTransparent
+ // TODO: animated vs static
+ }
+
private class TestData
{
+ public static Watermark[] Watermarks =
+ {
+ Watermark.None,
+ Watermark.PermanentOpaque,
+ Watermark.PermanentTransparent
+ };
+
public static Padding[] Paddings =
{
Padding.NoPadding,
@@ -160,6 +177,8 @@ namespace ErsatzTV.Core.Tests.FFmpeg
Padding padding,
[ValueSource(typeof(TestData), nameof(TestData.VideoScanKinds))]
VideoScanKind videoScanKind,
+ [ValueSource(typeof(TestData), nameof(TestData.Watermarks))]
+ Watermark watermark,
// [ValueSource(typeof(TestData), nameof(TestData.SoftwareCodecs))] string profileCodec,
// [ValueSource(typeof(TestData), nameof(TestData.NoAcceleration))] HardwareAccelerationKind profileAcceleration)
[ValueSource(typeof(TestData), nameof(TestData.NvidiaCodecs))] string profileCodec,
@@ -209,10 +228,20 @@ namespace ErsatzTV.Core.Tests.FFmpeg
p1.ExitCode.Should().Be(0);
}
+ var imageCache = new Mock();
+
+ // always return the static watermark resource
+ imageCache.Setup(
+ ic => ic.GetPathForImage(
+ It.IsAny(),
+ It.Is(x => x == ArtworkKind.Watermark),
+ It.IsAny