From 986785d8638b0d8d0cf90dcda68e33ccbbc33bac Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Wed, 6 Mar 2024 12:03:14 -0600 Subject: [PATCH] always use nv12 for 8 bit vaapi encoding (#1636) --- ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs b/ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs index 829683d3..f588bd5b 100644 --- a/ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs +++ b/ErsatzTV.FFmpeg/Pipeline/VaapiPipelineBuilder.cs @@ -322,14 +322,15 @@ public class VaapiPipelineBuilder : SoftwarePipelineBuilder currentState.PixelFormat.Map(f => f.FFmpegName), format.FFmpegName); - if (currentState.FrameDataLocation == FrameDataLocation.Hardware) + // NV12 is 8-bit, and Intel VAAPI seems to REQUIRE NV12 + // NUT is fine with YUV420P + if (format is PixelFormatYuv420P && ffmpegState.OutputFormat is not OutputFormatKind.Nut) { - // NV12 is 8-bit - if (format is PixelFormatYuv420P) - { - format = new PixelFormatNv12(format.Name); - } + format = new PixelFormatNv12(format.Name); + } + if (currentState.FrameDataLocation == FrameDataLocation.Hardware) + { result.Add(new VaapiFormatFilter(format)); } else