* Add Rockchip Media Process Platform (rkmpp) acceleration * remove fourcc stuff; it's exclusive to videotoolbox * update changelog --------- Co-authored-by: Jason Dove <1695733+jasongdove@users.noreply.github.com>
42 lines
1.5 KiB
C#
42 lines
1.5 KiB
C#
namespace ErsatzTV.FFmpeg.Filter;
|
|
|
|
public class SubtitleHardwareUploadFilter : BaseFilter
|
|
{
|
|
private readonly FrameState _currentState;
|
|
private readonly FFmpegState _ffmpegState;
|
|
|
|
public SubtitleHardwareUploadFilter(FrameState currentState, FFmpegState ffmpegState)
|
|
{
|
|
_currentState = currentState;
|
|
_ffmpegState = ffmpegState;
|
|
}
|
|
|
|
public override string Filter =>
|
|
_ffmpegState.EncoderHardwareAccelerationMode switch
|
|
{
|
|
HardwareAccelerationMode.None => string.Empty,
|
|
HardwareAccelerationMode.Nvenc => "hwupload_cuda",
|
|
HardwareAccelerationMode.Qsv => string.Empty,
|
|
|
|
// leave vaapi in software since we don't (yet) use overlay_vaapi
|
|
HardwareAccelerationMode.Vaapi when _currentState.FrameDataLocation == FrameDataLocation.Software =>
|
|
string.Empty,
|
|
|
|
// leave videotoolbox in software since we use a software overlay filter
|
|
HardwareAccelerationMode.VideoToolbox => string.Empty,
|
|
|
|
// leave amf in software since we use a software overlay filter
|
|
HardwareAccelerationMode.Amf => string.Empty,
|
|
|
|
// leave v4l2m2m in software since we use a software overlay filter
|
|
HardwareAccelerationMode.V4l2m2m => string.Empty,
|
|
|
|
// leave rkmpp in software since we use a software overlay filter
|
|
HardwareAccelerationMode.Rkmpp => string.Empty,
|
|
|
|
_ => "hwupload"
|
|
};
|
|
|
|
public override FrameState NextState(FrameState currentState) => currentState;
|
|
}
|