Browse Source

fix vaapi songs (#500)

pull/501/head
Jason Dove 5 years ago committed by GitHub
parent
commit
fd3b72525d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      ErsatzTV.Core/FFmpeg/FFmpegComplexFilterBuilder.cs
  2. 3
      ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs

14
ErsatzTV.Core/FFmpeg/FFmpegComplexFilterBuilder.cs

@ -176,21 +176,27 @@ namespace ErsatzTV.Core.FFmpeg
case HardwareAccelerationKind.Qsv: case HardwareAccelerationKind.Qsv:
videoFilterQueue.Add("format=nv12"); videoFilterQueue.Add("format=nv12");
break; break;
case HardwareAccelerationKind.Vaapi:
videoFilterQueue.Add("format=nv12|vaapi");
break;
default: default:
videoFilterQueue.Add("format=yuv420p"); videoFilterQueue.Add("format=yuv420p");
break; break;
} }
} }
switch (usesHardwareFilters, false, acceleration) switch (usesHardwareFilters || isSong, acceleration)
{ {
case (true, false, HardwareAccelerationKind.Nvenc): case (true, HardwareAccelerationKind.Nvenc):
videoFilterQueue.Add("hwupload_cuda"); videoFilterQueue.Add("hwupload_cuda");
break; break;
case (true, false, HardwareAccelerationKind.Qsv): case (true, HardwareAccelerationKind.Qsv):
videoFilterQueue.Add("hwupload=extra_hw_frames=64"); videoFilterQueue.Add("hwupload=extra_hw_frames=64");
break; break;
case (true, false, _): case (true, HardwareAccelerationKind.Vaapi):
videoFilterQueue.Add("hwupload");
break;
case (true, _) when usesHardwareFilters:
videoFilterQueue.Add("hwupload"); videoFilterQueue.Add("hwupload");
break; break;
} }

3
ErsatzTV.Core/FFmpeg/FFmpegProcessBuilder.cs

@ -589,8 +589,11 @@ namespace ErsatzTV.Core.FFmpeg
else if (audioPath.IfNone("NotARealPath") != videoPath) else if (audioPath.IfNone("NotARealPath") != videoPath)
{ {
audioIndex = 1; audioIndex = 1;
if (_hwAccel == HardwareAccelerationKind.None)
{
_outputPixelFormat = "yuv420p"; _outputPixelFormat = "yuv420p";
} }
}
var videoLabel = $"{videoIndex}:{videoStreamIndex}"; var videoLabel = $"{videoIndex}:{videoStreamIndex}";
var audioLabel = $"{audioIndex}:{maybeIndex.Match(i => i.ToString(), () => "a")}"; var audioLabel = $"{audioIndex}:{maybeIndex.Match(i => i.ToString(), () => "a")}";

Loading…
Cancel
Save