* upgrade sdk * fix warnings in ersatztv.ffmpeg * fix warnings in ersatztv.core * fix warnings in ersatztv.infrastructure * fix warnings in ersatztv.application * disable analysis for migrations projects * fix warnings in ersatztv.scanner * fix warnings in ersatztv * upgrade project framework * update github actions and dockerfiles
33 lines
1.0 KiB
C#
33 lines
1.0 KiB
C#
namespace ErsatzTV.FFmpeg.Decoder.Cuvid;
|
|
|
|
public abstract class CuvidDecoder : DecoderBase
|
|
{
|
|
protected CuvidDecoder(HardwareAccelerationMode hardwareAccelerationMode) =>
|
|
HardwareAccelerationMode = hardwareAccelerationMode;
|
|
|
|
public HardwareAccelerationMode HardwareAccelerationMode { get; set; }
|
|
|
|
protected override FrameDataLocation OutputFrameDataLocation =>
|
|
HardwareAccelerationMode == HardwareAccelerationMode.None
|
|
? FrameDataLocation.Software
|
|
: FrameDataLocation.Hardware;
|
|
|
|
public override string[] InputOptions(InputFile inputFile)
|
|
{
|
|
var result = new List<string>(base.InputOptions(inputFile));
|
|
|
|
if (HardwareAccelerationMode != HardwareAccelerationMode.None)
|
|
{
|
|
result.Add("-hwaccel_output_format");
|
|
result.Add("cuda");
|
|
}
|
|
else
|
|
{
|
|
result.Add("-hwaccel_output_format");
|
|
result.Add(InputBitDepth(inputFile) == 10 ? "p010le" : "nv12");
|
|
}
|
|
|
|
return result.ToArray();
|
|
}
|
|
}
|