* wip * fix songs again * don't use lists of video and audio input files * test concat command output * move concat pipeline * start to use ffmpeg state * add ffmpeg state and audio state * audio state is required * attach input options directly to input files * move filters to input files * add watermark support
22 lines
984 B
C#
22 lines
984 B
C#
using ErsatzTV.FFmpeg.Environment;
|
|
|
|
namespace ErsatzTV.FFmpeg.Decoder;
|
|
|
|
public abstract class DecoderBase : IDecoder
|
|
{
|
|
protected abstract FrameDataLocation OutputFrameDataLocation { get; }
|
|
public IList<EnvironmentVariable> EnvironmentVariables => Array.Empty<EnvironmentVariable>();
|
|
public IList<string> GlobalOptions => Array.Empty<string>();
|
|
public virtual IList<string> InputOptions(InputFile inputFile) => new List<string> { "-c:v", Name };
|
|
public IList<string> FilterOptions => Array.Empty<string>();
|
|
public IList<string> OutputOptions => Array.Empty<string>();
|
|
public virtual FrameState NextState(FrameState currentState) =>
|
|
currentState with { FrameDataLocation = OutputFrameDataLocation };
|
|
public abstract string Name { get; }
|
|
public bool AppliesTo(AudioInputFile audioInputFile) => false;
|
|
|
|
public bool AppliesTo(VideoInputFile videoInputFile) => true;
|
|
|
|
public bool AppliesTo(ConcatInputFile concatInputFile) => false;
|
|
}
|