From 64ea413b6faa640a1d94c37c1cccc4bffeeb009f Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Sun, 19 Oct 2025 11:18:15 -0500 Subject: [PATCH] fix nvidia 10 bit text subtitles and permanent watermark (#2549) * fix nvidia 10 bit text subtitles and watermark * update changelog --- CHANGELOG.md | 1 + ErsatzTV.FFmpeg/Pipeline/NvidiaPipelineBuilder.cs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48a114186..9972bea23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fix QSV audio sync - Fix QSV capability detection on Linux using non-drm displays (e.g. wayland) - Fix playlist filtering bug that made HLS Segmenter more likely to fail when streaming for multiple hours +- Fix NVIDIA overlaying text subtitles and permanent watermark on 10-bit content ### Changed - Do not use graphics engine for single, permanent watermark diff --git a/ErsatzTV.FFmpeg/Pipeline/NvidiaPipelineBuilder.cs b/ErsatzTV.FFmpeg/Pipeline/NvidiaPipelineBuilder.cs index 5c4d19c86..3d657805c 100644 --- a/ErsatzTV.FFmpeg/Pipeline/NvidiaPipelineBuilder.cs +++ b/ErsatzTV.FFmpeg/Pipeline/NvidiaPipelineBuilder.cs @@ -281,8 +281,8 @@ public class NvidiaPipelineBuilder : SoftwarePipelineBuilder fontsFolder, subtitleOverlayFilterSteps); - // need to use software overlay with 10 bit primary content and graphics engine - if (currentState.FrameDataLocation is FrameDataLocation.Hardware && context.HasGraphicsEngine && + // need to use software overlay with 10 bit primary content and graphics engine (or watermark) + if (currentState.FrameDataLocation is FrameDataLocation.Hardware && (context.HasGraphicsEngine || context.HasWatermark) && currentState.BitDepth == 10) { var hardwareDownload = new CudaHardwareDownloadFilter(currentState.PixelFormat, None);