From fc74fc5ad58ffb7cc4dcb5afdfb814d5f85e887e Mon Sep 17 00:00:00 2001 From: Grigory Chudov Date: Sun, 2 Jun 2013 18:22:07 -0400 Subject: [PATCH] Flake/FLACCL cmd line tools were forcing user to specify compression level, because default comprssion level was not set properly in settings constructor. --- CUETools.Codecs.FLACCL/flac.cl | 4 ++-- CUETools.Codecs/AudioEncoderSettings.cs | 15 +++++++++++---- CUETools.Converter/CUETools.Converter.csproj | 2 +- CUETools.FLACCL.cmd/Program.cs | 2 +- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CUETools.Codecs.FLACCL/flac.cl b/CUETools.Codecs.FLACCL/flac.cl index 2b6829e..433f198 100644 --- a/CUETools.Codecs.FLACCL/flac.cl +++ b/CUETools.Codecs.FLACCL/flac.cl @@ -788,12 +788,12 @@ void clQuantizeLPC( atomic_or(shared.maxcoef + i, coef ^ (coef >> 31)); barrier(CLK_LOCAL_MEM_FENCE); - int cbits = min(51 - 2 * clz(shared.task.blocksize), shared.task.abits); + int cbits = min(51 - 2 * clz(shared.task.blocksize), shared.task.abits) - minprecision + (i - ((i >> precisions) << precisions)); #if BITS_PER_SAMPLE <= 16 // Limit cbits so that 32-bit arithmetics will be enough when calculating residual cbits = min(cbits, clz(order) + 1 - shared.task.obits); #endif - cbits = clamp(cbits - minprecision + (i - ((i >> precisions) << precisions)), 3, 15); + cbits = clamp(cbits, 3, 15); // Calculate shift based on precision and number of leading zeroes in coeffs. // We know that if shifted by 15, coefs require diff --git a/CUETools.Codecs/AudioEncoderSettings.cs b/CUETools.Codecs/AudioEncoderSettings.cs index 0e49a9a..32c7e36 100644 --- a/CUETools.Codecs/AudioEncoderSettings.cs +++ b/CUETools.Codecs/AudioEncoderSettings.cs @@ -24,10 +24,17 @@ namespace CUETools.Codecs // Iterate through each property and call ResetValue() foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(this)) property.ResetValue(this); - this.m_supported_modes = supported_modes; - this.m_default_mode = default_mode; - //GetSupportedModes(out m_default_mode); - this.EncoderMode = m_default_mode; + if (default_mode == "") + { + GetSupportedModes(out default_mode); + this.EncoderMode = default_mode; + } + else + { + this.m_supported_modes = supported_modes; + this.m_default_mode = default_mode; + this.EncoderMode = m_default_mode; + } } protected string m_supported_modes; diff --git a/CUETools.Converter/CUETools.Converter.csproj b/CUETools.Converter/CUETools.Converter.csproj index 2a39687..eaa17ea 100644 --- a/CUETools.Converter/CUETools.Converter.csproj +++ b/CUETools.Converter/CUETools.Converter.csproj @@ -36,7 +36,7 @@ true full false - ..\bin\win32\Debug\ + ..\bin\Debug\ DEBUG;TRACE prompt 4 diff --git a/CUETools.FLACCL.cmd/Program.cs b/CUETools.FLACCL.cmd/Program.cs index 3fb0027..a3f94f8 100644 --- a/CUETools.FLACCL.cmd/Program.cs +++ b/CUETools.FLACCL.cmd/Program.cs @@ -200,7 +200,7 @@ namespace CUETools.FLACCL.cmd } if (!quiet) { - Console.WriteLine("{0}, Copyright (C) 2010 Grigory Chudov.", FLACCLWriter.Vendor); + Console.WriteLine("{0}, Copyright (C) 2010-2013 Grigory Chudov.", FLACCLWriter.Vendor); Console.WriteLine("This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to"); Console.WriteLine("the extent permitted by law. for details."); }