2011-10-25 04:47:05 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Text;
|
2018-03-23 19:26:26 -04:00
|
|
|
|
using Newtonsoft.Json;
|
2011-10-25 04:47:05 +00:00
|
|
|
|
|
|
|
|
|
|
namespace CUETools.Codecs.LAME
|
|
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
[JsonObject(MemberSerialization.OptIn)]
|
|
|
|
|
|
public class CBREncoderSettings : LameEncoderSettings
|
2011-10-25 04:47:05 +00:00
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
public override string Extension => "mp3";
|
|
|
|
|
|
|
|
|
|
|
|
public override string Name => "libmp3lame-CBR";
|
|
|
|
|
|
|
|
|
|
|
|
public override int Priority => 1;
|
|
|
|
|
|
|
2013-04-01 23:03:22 -04:00
|
|
|
|
public static readonly int[] bps_table = new int[] { 96, 128, 192, 256, 320 };
|
|
|
|
|
|
|
2018-03-23 19:26:26 -04:00
|
|
|
|
[JsonProperty]
|
2011-10-25 04:47:05 +00:00
|
|
|
|
[DefaultValue(LameQuality.High)]
|
|
|
|
|
|
public LameQuality Quality { get; set; }
|
|
|
|
|
|
|
2018-03-23 19:26:26 -04:00
|
|
|
|
public CBREncoderSettings()
|
2013-04-01 23:03:22 -04:00
|
|
|
|
: base("96 128 192 256 320", "256")
|
2011-10-25 04:47:05 +00:00
|
|
|
|
{
|
|
|
|
|
|
}
|
2013-04-02 19:56:58 -04:00
|
|
|
|
|
|
|
|
|
|
public override void Apply(IntPtr lame)
|
|
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
AudioEncoder.lame_set_VBR(lame, (int)LameVbrMode.Off);
|
|
|
|
|
|
AudioEncoder.lame_set_brate(lame, CBREncoderSettings.bps_table[this.EncoderModeIndex]);
|
|
|
|
|
|
AudioEncoder.lame_set_quality(lame, (int)this.Quality);
|
2013-04-02 19:56:58 -04:00
|
|
|
|
}
|
2011-10-25 04:47:05 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|