From fd3b72525df994ccf0fd1def4e9b44d2fe3081da Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Thu, 25 Nov 2021 13:35:57 -0600 Subject: [PATCH] fix vaapi songs (#500) --- ErsatzTV.Core/FFmpeg/FFmpegComplexFilterBuilder.cs | 14 ++++++++++---- ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs | 5 ++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ErsatzTV.Core/FFmpeg/FFmpegComplexFilterBuilder.cs b/ErsatzTV.Core/FFmpeg/FFmpegComplexFilterBuilder.cs index daecc14dd..e662332f0 100644 --- a/ErsatzTV.Core/FFmpeg/FFmpegComplexFilterBuilder.cs +++ b/ErsatzTV.Core/FFmpeg/FFmpegComplexFilterBuilder.cs @@ -176,21 +176,27 @@ namespace ErsatzTV.Core.FFmpeg case HardwareAccelerationKind.Qsv: videoFilterQueue.Add("format=nv12"); break; + case HardwareAccelerationKind.Vaapi: + videoFilterQueue.Add("format=nv12|vaapi"); + break; default: videoFilterQueue.Add("format=yuv420p"); break; } } - switch (usesHardwareFilters, false, acceleration) + switch (usesHardwareFilters || isSong, acceleration) { - case (true, false, HardwareAccelerationKind.Nvenc): + case (true, HardwareAccelerationKind.Nvenc): videoFilterQueue.Add("hwupload_cuda"); break; - case (true, false, HardwareAccelerationKind.Qsv): + case (true, HardwareAccelerationKind.Qsv): videoFilterQueue.Add("hwupload=extra_hw_frames=64"); break; - case (true, false, _): + case (true, HardwareAccelerationKind.Vaapi): + videoFilterQueue.Add("hwupload"); + break; + case (true, _) when usesHardwareFilters: videoFilterQueue.Add("hwupload"); break; } diff --git a/ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs b/ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs index 26d5e344e..15876971d 100644 --- a/ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs +++ b/ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs @@ -589,7 +589,10 @@ namespace ErsatzTV.Core.FFmpeg else if (audioPath.IfNone("NotARealPath") != videoPath) { audioIndex = 1; - _outputPixelFormat = "yuv420p"; + if (_hwAccel == HardwareAccelerationKind.None) + { + _outputPixelFormat = "yuv420p"; + } } var videoLabel = $"{videoIndex}:{videoStreamIndex}";