Files
cuetools.net/CUETools.Codecs.ffmpeg/DecoderSettings.cs

68 lines
1.9 KiB
C#
Raw Normal View History

2018-04-01 16:14:19 -04:00
using FFmpeg.AutoGen;
using Newtonsoft.Json;
using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
namespace CUETools.Codecs.ffmpegdll
{
[JsonObject(MemberSerialization.OptIn)]
public abstract class DecoderSettings: IAudioDecoderSettings
{
#region IAudioDecoderSettings implementation
[Browsable(false)]
public string Name => "ffmpeg";
[Browsable(false)]
public Type DecoderType => typeof(AudioDecoder);
[Browsable(false)]
public int Priority => 1;
[Browsable(false)]
public abstract string Extension { get; }
public IAudioDecoderSettings Clone()
{
return MemberwiseClone() as IAudioDecoderSettings;
}
#endregion
public abstract AVCodecID Codec { get; }
// [DisplayName("Version")]
// [Description("Library version")]
// public string Version => Marshal.PtrToStringAnsi(MACLibDll.GetVersionString());
}
public class MLPDecoderSettings : DecoderSettings, IAudioDecoderSettings
{
public override string Extension => "mlp";
public override AVCodecID Codec => AVCodecID.AV_CODEC_ID_MLP;
public MLPDecoderSettings()
{
this.Init();
}
}
public class FLACDecoderSettings : DecoderSettings, IAudioDecoderSettings
{
public override string Extension => "flac";
public override AVCodecID Codec => AVCodecID.AV_CODEC_ID_FLAC;
public FLACDecoderSettings()
{
this.Init();
}
}
public class WavPackDecoderSettings : DecoderSettings, IAudioDecoderSettings
{
public override string Extension => "wv";
public override AVCodecID Codec => AVCodecID.AV_CODEC_ID_WAVPACK;
public WavPackDecoderSettings()
{
this.Init();
}
}
}