using ErsatzTV.FFmpeg.Format; namespace ErsatzTV.FFmpeg.Decoder; // VA-API-accelerated decode that downloads frames to system memory (no // -hwaccel_output_format). Pairs with `-hwaccel vaapi` from // QsvHardwareAccelerationOption on the "prefer native decoder" QSV path: the // error-tolerant VA-API decoder feeds software frames into the QSV builder's // format=nv12,hwupload,vpp_qsv branch, which re-uploads for the QSV encoder. public class DecoderVaapiToSoftware : DecoderBase { protected override FrameDataLocation OutputFrameDataLocation => FrameDataLocation.Software; public override string Name => "implicit_vaapi"; // no -c:v (implicit decoder; `-hwaccel vaapi` drives VA-API) and no // -hwaccel_output_format (frames download to software) public override string[] InputOptions(InputFile inputFile) => []; }