diff --git a/doc/Changelog.html b/doc/Changelog.html
index 89a07922..7a3452f6 100644
--- a/doc/Changelog.html
+++ b/doc/Changelog.html
@@ -86,6 +86,7 @@
- Fixed the location of temporary intermediate files for SoX-based audio effects
- Enabled the "built-in" resampler for QAAC encoder
+- The "Algorithm Quality" slider now also effects the QAAC encoder
- Updated MediaInfo to v0.7.82 (2016-01-27), compiled with ICL 15.0 and MSVC 12.0
- Updated QAAC add-in to the to QAAC v2.58 (2016-01-05)
- Updated ALAC decoder to refalac v1.58 (2016-01-05)
diff --git a/doc/Changelog.md b/doc/Changelog.md
index 96737e9e..29d1e5d4 100644
--- a/doc/Changelog.md
+++ b/doc/Changelog.md
@@ -6,6 +6,7 @@
* Fixed the location of temporary intermediate files for SoX-based audio effects
* Enabled the "built-in" resampler for QAAC encoder
+* The "Algorithm Quality" slider now also effects the QAAC encoder
* Updated MediaInfo to v0.7.82 (2016-01-27), compiled with ICL 15.0 and MSVC 12.0
* Updated QAAC add-in to the to QAAC v2.58 (2016-01-05)
* Updated ALAC decoder to refalac v1.58 (2016-01-05)
diff --git a/src/Config.h b/src/Config.h
index 265489d3..13681ed7 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -35,7 +35,7 @@
#define VER_LAMEXP_MINOR_LO 4
#define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 2
-#define VER_LAMEXP_BUILD 1861
+#define VER_LAMEXP_BUILD 1862
#define VER_LAMEXP_CONFG 1818
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/Encoder_AAC_QAAC.cpp b/src/Encoder_AAC_QAAC.cpp
index 98b0e741..55b8df32 100644
--- a/src/Encoder_AAC_QAAC.cpp
+++ b/src/Encoder_AAC_QAAC.cpp
@@ -150,6 +150,7 @@ QAACEncoder::QAACEncoder(void)
}
m_configProfile = 0;
+ m_algorithmQuality = 2;
}
QAACEncoder::~QAACEncoder(void)
@@ -194,6 +195,7 @@ bool QAACEncoder::encode(const QString &sourceFile, const AudioFileModel_MetaInf
break;
}
+ args << "--quality" << QString::number(qBound(0, m_algorithmQuality, 2));
if (m_configSamplingRate > 0)
{
args << QString("--native-resampler=bats,%0").arg(QString::number(RESAMPLING_QUALITY));
@@ -301,6 +303,11 @@ void QAACEncoder::setProfile(int profile)
m_configProfile = profile;
}
+void QAACEncoder::setAlgoQuality(int value)
+{
+ m_algorithmQuality = qBound(0, value, 2);
+}
+
const AbstractEncoderInfo *QAACEncoder::getEncoderInfo(void)
{
return &g_qaacEncoderInfo;
diff --git a/src/Encoder_AAC_QAAC.h b/src/Encoder_AAC_QAAC.h
index a1041725..cddda352 100644
--- a/src/Encoder_AAC_QAAC.h
+++ b/src/Encoder_AAC_QAAC.h
@@ -39,6 +39,7 @@ public:
//Advanced options
virtual void setProfile(int profile);
+ virtual void setAlgoQuality(int value);
//Encoder info
virtual const AbstractEncoderInfo *toEncoderInfo(void) const { return getEncoderInfo(); }
@@ -48,4 +49,5 @@ private:
const QString m_binary_qaac32;
const QString m_binary_qaac64;
int m_configProfile;
+ int m_algorithmQuality;
};
diff --git a/src/Registry_Encoder.cpp b/src/Registry_Encoder.cpp
index a9cdc06a..d694476c 100644
--- a/src/Registry_Encoder.cpp
+++ b/src/Registry_Encoder.cpp
@@ -86,6 +86,7 @@ AbstractEncoder *EncoderRegistry::createInstance(const int encoderId, const Sett
{
QAACEncoder *const aacEncoder = new QAACEncoder();
aacEncoder->setProfile(settings->aacEncProfile());
+ aacEncoder->setAlgoQuality(settings->lameAlgoQuality());
encoder = aacEncoder;
}
break;