namespace ErsatzTV.FFmpeg.Filter;

public class HardwareUploadCudaFilter : BaseFilter
{
    private readonly FrameState _currentState;

    public HardwareUploadCudaFilter(FrameState currentState) => _currentState = currentState;

    public override string Filter => _currentState.FrameDataLocation switch
    {
        FrameDataLocation.Hardware => string.Empty,
        _ => "hwupload_cuda"
    };

    public override FrameState NextState(FrameState currentState) =>
        currentState with { FrameDataLocation = FrameDataLocation.Hardware };
}
