Files
ersatztv/ErsatzTV.FFmpeg/Decoder/Cuvid/CuvidDecoder.cs
T

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 IList<string> InputOptions(InputFile inputFile)
{
IList<string> result = 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;
}
}