Browse Source

more nvidia capabilities safety (#2509)

pull/2510/head
Jason Dove 8 months ago committed by GitHub
parent
commit
dd92a65742
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 14
      ErsatzTV.FFmpeg/Capabilities/HardwareCapabilitiesFactory.cs

14
ErsatzTV.FFmpeg/Capabilities/HardwareCapabilitiesFactory.cs

@ -122,6 +122,8 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory @@ -122,6 +122,8 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
return string.Empty;
}
try
{
Option<List<CudaDevice>> maybeDevices = CudaHelper.GetDevices();
foreach (List<CudaDevice> devices in maybeDevices.Where(list => list.Count > 0))
{
@ -137,6 +139,11 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory @@ -137,6 +139,11 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
return sb.ToString();
}
}
catch (FileNotFoundException)
{
// do nothing
}
// if we don't have a list of cuda devices, fall back to ffmpeg check
@ -522,6 +529,8 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory @@ -522,6 +529,8 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
return new NvidiaHardwareCapabilities(cudaDevice, ffmpegCapabilities, _logger);
}
try
{
Option<List<CudaDevice>> maybeDevices = CudaHelper.GetDevices();
foreach (CudaDevice firstDevice in maybeDevices.Map(list => list.HeadOrNone()))
{
@ -534,6 +543,11 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory @@ -534,6 +543,11 @@ public class HardwareCapabilitiesFactory : IHardwareCapabilitiesFactory
_memoryCache.Set(CudaDeviceKey, firstDevice);
return new NvidiaHardwareCapabilities(firstDevice, ffmpegCapabilities, _logger);
}
}
catch (FileNotFoundException)
{
// do nothing
}
_logger.LogWarning(
"Error detecting NVIDIA GPU capabilities; some hardware accelerated features will be unavailable");

Loading…
Cancel
Save