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.
23 lines
959 B
23 lines
959 B
using ErsatzTV.FFmpeg.Filter.Cuda; |
|
using ErsatzTV.FFmpeg.Filter.Qsv; |
|
using ErsatzTV.FFmpeg.Filter.Vaapi; |
|
|
|
namespace ErsatzTV.FFmpeg.Filter; |
|
|
|
public static class AvailableScaleFilters |
|
{ |
|
public static IPipelineFilterStep ForAcceleration( |
|
HardwareAccelerationMode accelMode, |
|
FrameState currentState, |
|
FrameSize scaledSize, |
|
FrameSize paddedSize) => |
|
accelMode switch |
|
{ |
|
HardwareAccelerationMode.Nvenc => new ScaleCudaFilter(currentState, scaledSize, paddedSize), |
|
HardwareAccelerationMode.Qsv when currentState.FrameDataLocation == FrameDataLocation.Hardware || |
|
scaledSize == paddedSize => |
|
new ScaleQsvFilter(currentState, scaledSize), |
|
HardwareAccelerationMode.Vaapi => new ScaleVaapiFilter(currentState, scaledSize, paddedSize), |
|
_ => new ScaleFilter(currentState, scaledSize, paddedSize) |
|
}; |
|
}
|
|
|