Files
cuetools.net/CUETools.Codecs.libmp3lame/LameWriterVBRSettings.cs

37 lines
1007 B
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using Newtonsoft.Json;
namespace CUETools.Codecs.libmp3lame
{
[JsonObject(MemberSerialization.OptIn)]
public class VBREncoderSettings : LameEncoderSettings
{
public override string Name => "libmp3lame-VBR";
public override int Priority => 2;
public override string SupportedModes => "V9 V8 V7 V6 V5 V4 V3 V2 V1 V0";
public override string DefaultMode => "V2";
[JsonProperty]
[DefaultValue(LameQuality.High)]
public LameQuality Quality { get; set; }
public VBREncoderSettings()
: base()
{
}
public override void Apply(IntPtr lame)
{
libmp3lamedll.lame_set_VBR(lame, (int)LameVbrMode.Default);
libmp3lamedll.lame_set_VBR_quality(lame, 9 - this.GetEncoderModeIndex());
libmp3lamedll.lame_set_quality(lame, (int)this.Quality);
}
}
}