Browse Source

let vaapi pipeline handle hdr content

pull/2028/head
Jason Dove 2 weeks ago
parent
commit
cb41f60bc6
No known key found for this signature in database
  1. 19
      ErsatzTV.FFmpeg/Pipeline/PipelineBuilderFactory.cs

19
ErsatzTV.FFmpeg/Pipeline/PipelineBuilderFactory.cs

@ -44,10 +44,10 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory @@ -44,10 +44,10 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
return hardwareAccelerationMode switch
{
// force software pipeline when content is HDR
_ when isHdrContent => new SoftwarePipelineBuilder(
HardwareAccelerationMode.Vaapi when capabilities is not NoHardwareCapabilities => new VaapiPipelineBuilder(
ffmpegCapabilities,
HardwareAccelerationMode.None,
capabilities,
hardwareAccelerationMode,
videoInputFile,
audioInputFile,
watermarkInputFile,
@ -57,10 +57,10 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory @@ -57,10 +57,10 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
fontsFolder,
_logger),
HardwareAccelerationMode.Nvenc when capabilities is not NoHardwareCapabilities => new NvidiaPipelineBuilder(
// force software pipeline when content is HDR (and not VAAPI)
_ when isHdrContent => new SoftwarePipelineBuilder(
ffmpegCapabilities,
capabilities,
hardwareAccelerationMode,
HardwareAccelerationMode.None,
videoInputFile,
audioInputFile,
watermarkInputFile,
@ -69,7 +69,8 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory @@ -69,7 +69,8 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
reportsFolder,
fontsFolder,
_logger),
HardwareAccelerationMode.Vaapi when capabilities is not NoHardwareCapabilities => new VaapiPipelineBuilder(
HardwareAccelerationMode.Nvenc when capabilities is not NoHardwareCapabilities => new NvidiaPipelineBuilder(
ffmpegCapabilities,
capabilities,
hardwareAccelerationMode,
@ -81,6 +82,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory @@ -81,6 +82,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
reportsFolder,
fontsFolder,
_logger),
HardwareAccelerationMode.Qsv when capabilities is not NoHardwareCapabilities => new QsvPipelineBuilder(
ffmpegCapabilities,
capabilities,
@ -93,6 +95,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory @@ -93,6 +95,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
reportsFolder,
fontsFolder,
_logger),
HardwareAccelerationMode.VideoToolbox when capabilities is not NoHardwareCapabilities => new
VideoToolboxPipelineBuilder(
ffmpegCapabilities,
@ -106,6 +109,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory @@ -106,6 +109,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
reportsFolder,
fontsFolder,
_logger),
HardwareAccelerationMode.Amf when capabilities is not NoHardwareCapabilities => new AmfPipelineBuilder(
ffmpegCapabilities,
capabilities,
@ -118,6 +122,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory @@ -118,6 +122,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
reportsFolder,
fontsFolder,
_logger),
_ => new SoftwarePipelineBuilder(
ffmpegCapabilities,
HardwareAccelerationMode.None,

Loading…
Cancel
Save