mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
CUETools.Converter: show available encoders if specified incorrectly
This commit is contained in:
@@ -3,6 +3,7 @@ using System.IO;
|
|||||||
using CUETools.Codecs;
|
using CUETools.Codecs;
|
||||||
using CUETools.Processor;
|
using CUETools.Processor;
|
||||||
using CUETools.Processor.Settings;
|
using CUETools.Processor.Settings;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace CUETools.Converter
|
namespace CUETools.Converter
|
||||||
{
|
{
|
||||||
@@ -26,8 +27,9 @@ namespace CUETools.Converter
|
|||||||
public static CUEToolsUDC GetEncoder(CUEConfig config, CUEToolsFormat fmt, bool lossless, string chosenEncoder)
|
public static CUEToolsUDC GetEncoder(CUEConfig config, CUEToolsFormat fmt, bool lossless, string chosenEncoder)
|
||||||
{
|
{
|
||||||
CUEToolsUDC tmpEncoder;
|
CUEToolsUDC tmpEncoder;
|
||||||
return chosenEncoder != null && config.encoders.TryGetValue(fmt.extension, lossless, chosenEncoder, out tmpEncoder) ? tmpEncoder :
|
return chosenEncoder != null ?
|
||||||
lossless ? fmt.encoderLossless : fmt.encoderLossy;
|
(config.encoders.TryGetValue(fmt.extension, lossless, chosenEncoder, out tmpEncoder) ? tmpEncoder : null) :
|
||||||
|
(lossless ? fmt.encoderLossless : fmt.encoderLossy);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IAudioSource GetAudioSource(CUEConfig config, string path, string chosenDecoder)
|
public static IAudioSource GetAudioSource(CUEConfig config, string path, string chosenDecoder)
|
||||||
@@ -162,7 +164,12 @@ namespace CUETools.Converter
|
|||||||
audioEncoderType == AudioEncoderType.Lossy ? Program.GetEncoder(config, fmt, false, encoderName) :
|
audioEncoderType == AudioEncoderType.Lossy ? Program.GetEncoder(config, fmt, false, encoderName) :
|
||||||
Program.GetEncoder(config, fmt, true, encoderName) ?? Program.GetEncoder(config, fmt, false, encoderName);
|
Program.GetEncoder(config, fmt, true, encoderName) ?? Program.GetEncoder(config, fmt, false, encoderName);
|
||||||
if (encoder == null)
|
if (encoder == null)
|
||||||
throw new Exception("Encoder available for format " + fmt.extension + ": " + (fmt.encoderLossless != null ? fmt.encoderLossless.Name + " (lossless)" : fmt.encoderLossy != null ? fmt.encoderLossy.Name + " (lossy)" : "none"));
|
{
|
||||||
|
var lst = new List<CUEToolsUDC>(config.Encoders).FindAll(
|
||||||
|
e => e.extension == fmt.extension && (audioEncoderType == AudioEncoderType.NoAudio || audioEncoderType == (e.Lossless ? AudioEncoderType.Lossless : AudioEncoderType.Lossy))).
|
||||||
|
ConvertAll(e => e.Name + (e.Lossless ? " (lossless)" : " (lossy)"));
|
||||||
|
throw new Exception("Encoders available for format " + fmt.extension + ": " + (lst.Count == 0 ? "none" : string.Join(", ", lst.ToArray())));
|
||||||
|
}
|
||||||
var settings = encoder.settings.Clone();
|
var settings = encoder.settings.Clone();
|
||||||
settings.PCM = audioSource.PCM;
|
settings.PCM = audioSource.PCM;
|
||||||
settings.Padding = padding;
|
settings.Padding = padding;
|
||||||
|
|||||||
Reference in New Issue
Block a user