mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.0 KiB
32 lines
1.0 KiB
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(); |
|
} |
|
}
|
|
|