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.
35 lines
975 B
35 lines
975 B
using ErsatzTV.FFmpeg.Capabilities; |
|
|
|
namespace ErsatzTV.FFmpeg.GlobalOption.HardwareAcceleration; |
|
|
|
public class VaapiHardwareAccelerationOption : GlobalOption |
|
{ |
|
private readonly FFmpegCapability _decodeCapability; |
|
private readonly string _vaapiDevice; |
|
|
|
public VaapiHardwareAccelerationOption(string vaapiDevice, FFmpegCapability decodeCapability) |
|
{ |
|
_vaapiDevice = vaapiDevice; |
|
_decodeCapability = decodeCapability; |
|
} |
|
|
|
public override IList<string> GlobalOptions |
|
{ |
|
get |
|
{ |
|
var result = new List<string> { "-vaapi_device", _vaapiDevice }; |
|
|
|
if (_decodeCapability == FFmpegCapability.Hardware) |
|
{ |
|
result.InsertRange(0, new[] { "-hwaccel", "vaapi" }); |
|
} |
|
|
|
return result; |
|
} |
|
} |
|
|
|
public override FrameState NextState(FrameState currentState) => currentState with |
|
{ |
|
FrameDataLocation = FrameDataLocation.Hardware |
|
}; |
|
}
|
|
|