Browse Source

properly fall back to software pipeline (#1084)

pull/1085/head
Jason Dove 4 years ago committed by GitHub
parent
commit
5f7efbb69c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      ErsatzTV.FFmpeg/Capabilities/NoHardwareCapabilities.cs
  2. 8
      ErsatzTV.FFmpeg/Pipeline/PipelineBuilderFactory.cs

7
ErsatzTV.FFmpeg/Capabilities/NoHardwareCapabilities.cs

@ -4,6 +4,9 @@ namespace ErsatzTV.FFmpeg.Capabilities;
public class NoHardwareCapabilities : IHardwareCapabilities public class NoHardwareCapabilities : IHardwareCapabilities
{ {
public bool CanDecode(string videoFormat, Option<string> videoProfile, Option<IPixelFormat> maybePixelFormat) => false; public bool CanDecode(string videoFormat, Option<string> videoProfile, Option<IPixelFormat> maybePixelFormat) =>
public bool CanEncode(string videoFormat, Option<string> videoProfile, Option<IPixelFormat> maybePixelFormat) => false; false;
public bool CanEncode(string videoFormat, Option<string> videoProfile, Option<IPixelFormat> maybePixelFormat) =>
false;
} }

8
ErsatzTV.FFmpeg/Pipeline/PipelineBuilderFactory.cs

@ -37,10 +37,10 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
hardwareAccelerationMode, hardwareAccelerationMode,
vaapiDriver, vaapiDriver,
vaapiDevice); vaapiDevice);
return hardwareAccelerationMode switch return hardwareAccelerationMode switch
{ {
HardwareAccelerationMode.Nvenc => new NvidiaPipelineBuilder( HardwareAccelerationMode.Nvenc when capabilities is not NoHardwareCapabilities => new NvidiaPipelineBuilder(
capabilities, capabilities,
hardwareAccelerationMode, hardwareAccelerationMode,
videoInputFile, videoInputFile,
@ -50,7 +50,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
reportsFolder, reportsFolder,
fontsFolder, fontsFolder,
_logger), _logger),
HardwareAccelerationMode.Vaapi => new VaapiPipelineBuilder( HardwareAccelerationMode.Vaapi when capabilities is not NoHardwareCapabilities => new VaapiPipelineBuilder(
capabilities, capabilities,
hardwareAccelerationMode, hardwareAccelerationMode,
videoInputFile, videoInputFile,
@ -91,7 +91,7 @@ public class PipelineBuilderFactory : IPipelineBuilderFactory
fontsFolder, fontsFolder,
_logger), _logger),
_ => new SoftwarePipelineBuilder( _ => new SoftwarePipelineBuilder(
hardwareAccelerationMode, HardwareAccelerationMode.None,
videoInputFile, videoInputFile,
audioInputFile, audioInputFile,
watermarkInputFile, watermarkInputFile,

Loading…
Cancel
Save