diff --git a/CHANGELOG.md b/CHANGELOG.md index f9cdf8f68..25ce35ec3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fix NVIDIA subtitle scaling when `scale_npp` filter is unavailable - Remove ffmpeg and ffprobe as required dependencies for scanning media server libraries - Note that ffmpeg is still *always* required for playback to work +- Fix PGS subtitle pixel format with Intel VAAPI ### Changed - Upgrade ffmpeg to 6.1, which is now *required* for all installs diff --git a/ErsatzTV.FFmpeg/Filter/Vaapi/VaapiSubtitlePixelFormatFilter.cs b/ErsatzTV.FFmpeg/Filter/Vaapi/VaapiSubtitlePixelFormatFilter.cs new file mode 100644 index 000000000..36d027b91 --- /dev/null +++ b/ErsatzTV.FFmpeg/Filter/Vaapi/VaapiSubtitlePixelFormatFilter.cs @@ -0,0 +1,8 @@ +namespace ErsatzTV.FFmpeg.Filter.Vaapi; + +public class VaapiSubtitlePixelFormatFilter : BaseFilter +{ + public override FrameState NextState(FrameState currentState) => currentState; + + public override string Filter => "format=vaapi|yuva420p|yuva444p|yuva422p|rgba|abgr|bgra|gbrap|ya8"; +} diff --git a/ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs b/ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs index 930c898b8..2a7aca341 100644 --- a/ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs +++ b/ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs @@ -436,7 +436,7 @@ public class VaapiPipelineBuilder : SoftwarePipelineBuilder } else if (context.HasSubtitleOverlay) { - var pixelFormatFilter = new PixelFormatFilter(new PixelFormatArgb()); + var pixelFormatFilter = new VaapiSubtitlePixelFormatFilter(); subtitle.FilterSteps.Add(pixelFormatFilter); if (forceSoftwareOverlay)