diff --git a/doc/Changelog.html b/doc/Changelog.html
index 4d0db6d0..873f00c8 100644
--- a/doc/Changelog.html
+++ b/doc/Changelog.html
@@ -15,6 +15,7 @@
Updated LAME encoder to v3.99.0.14 (2011-02-28), compiled with ICL 12.0.2
Updated Vorbis encoder to v2.87 using aoTuV Beta-6.02 (2011-02-28), compiled with ICL 11.1 and MSVC 9.0
Updated TTA decoder multiplatform library to v2.1 (2011-03-11), compiled with MSVC 9.0
+Updated SoX to v14.3.2 (2010-02-27), compiled with 12.0.2
Updated MediaInfo to v0.7.42 (2011-03-03), compiled with ICL 12.0.2 and MSVC 9.0
Updated language files (big thank-you to all contributors !!!)
Fixed a bug that caused AAC encoding to fail in CBR mode (the "-2pass" parameter was set wrongly)
diff --git a/res/tools/sox.exe b/res/tools/sox.exe
index 977646df..1d8749d3 100644
Binary files a/res/tools/sox.exe and b/res/tools/sox.exe differ
diff --git a/src/Config.h b/src/Config.h
index 125b9fdb..07d74b14 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -25,8 +25,8 @@
#define VER_LAMEXP_MAJOR 4
#define VER_LAMEXP_MINOR_HI 0
#define VER_LAMEXP_MINOR_LO 1
-#define VER_LAMEXP_BUILD 378
-#define VER_LAMEXP_SUFFIX Beta-9
+#define VER_LAMEXP_BUILD 380
+#define VER_LAMEXP_SUFFIX Beta-10
/*
* Tools versions
diff --git a/src/Filter_Downmix.cpp b/src/Filter_Downmix.cpp
index a5413e2d..1f23bfcb 100644
--- a/src/Filter_Downmix.cpp
+++ b/src/Filter_Downmix.cpp
@@ -48,7 +48,7 @@ bool DownmixFilter::apply(const QString &sourceFile, const QString &outputFile,
process.setWorkingDirectory(QFileInfo(outputFile).canonicalPath());
- args << "-V3";
+ args << "-V3" << "-S";
args << "--guard" << "--temp" << ".";
args << QDir::toNativeSeparators(sourceFile);
args << "-c2";
@@ -62,6 +62,8 @@ bool DownmixFilter::apply(const QString &sourceFile, const QString &outputFile,
bool bTimeout = false;
bool bAborted = false;
+ QRegExp regExp("In:(\\d+)(\\.\\d+)*%");
+
while(process.state() != QProcess::NotRunning)
{
if(*abortFlag)
@@ -84,7 +86,13 @@ bool DownmixFilter::apply(const QString &sourceFile, const QString &outputFile,
{
QByteArray line = process.readLine();
QString text = QString::fromUtf8(line.constData()).simplified();
- if(!text.isEmpty())
+ if(regExp.lastIndexIn(text) >= 0)
+ {
+ bool ok = false;
+ int progress = regExp.cap(1).toInt(&ok);
+ if(ok) emit statusUpdated(progress);
+ }
+ else if(!text.isEmpty())
{
emit messageLogged(text);
}
diff --git a/src/Filter_Normalize.cpp b/src/Filter_Normalize.cpp
index 5bc8cd41..c948489a 100644
--- a/src/Filter_Normalize.cpp
+++ b/src/Filter_Normalize.cpp
@@ -50,7 +50,7 @@ bool NormalizeFilter::apply(const QString &sourceFile, const QString &outputFile
process.setWorkingDirectory(QFileInfo(outputFile).canonicalPath());
- args << "-V3";
+ args << "-V3" << "-S";
args << "--temp" << ".";
args << QDir::toNativeSeparators(sourceFile);
args << QDir::toNativeSeparators(outputFile);
@@ -65,6 +65,8 @@ bool NormalizeFilter::apply(const QString &sourceFile, const QString &outputFile
bool bTimeout = false;
bool bAborted = false;
+ QRegExp regExp("In:(\\d+)(\\.\\d+)*%");
+
while(process.state() != QProcess::NotRunning)
{
if(*abortFlag)
@@ -87,7 +89,13 @@ bool NormalizeFilter::apply(const QString &sourceFile, const QString &outputFile
{
QByteArray line = process.readLine();
QString text = QString::fromUtf8(line.constData()).simplified();
- if(!text.isEmpty())
+ if(regExp.lastIndexIn(text) >= 0)
+ {
+ bool ok = false;
+ int progress = regExp.cap(1).toInt(&ok);
+ if(ok) emit statusUpdated(progress);
+ }
+ else if(!text.isEmpty())
{
emit messageLogged(text);
}
diff --git a/src/Filter_Resample.cpp b/src/Filter_Resample.cpp
index bb69021b..d4be13da 100644
--- a/src/Filter_Resample.cpp
+++ b/src/Filter_Resample.cpp
@@ -50,7 +50,7 @@ bool ResampleFilter::apply(const QString &sourceFile, const QString &outputFile,
process.setWorkingDirectory(QFileInfo(outputFile).canonicalPath());
- args << "-V3";
+ args << "-V3" << "-S";
args << "--guard" << "--temp" << ".";
args << QDir::toNativeSeparators(sourceFile);
args << QDir::toNativeSeparators(outputFile);
@@ -65,6 +65,8 @@ bool ResampleFilter::apply(const QString &sourceFile, const QString &outputFile,
bool bTimeout = false;
bool bAborted = false;
+ QRegExp regExp("In:(\\d+)(\\.\\d+)*%");
+
while(process.state() != QProcess::NotRunning)
{
if(*abortFlag)
@@ -87,7 +89,13 @@ bool ResampleFilter::apply(const QString &sourceFile, const QString &outputFile,
{
QByteArray line = process.readLine();
QString text = QString::fromUtf8(line.constData()).simplified();
- if(!text.isEmpty())
+ if(regExp.lastIndexIn(text) >= 0)
+ {
+ bool ok = false;
+ int progress = regExp.cap(1).toInt(&ok);
+ if(ok) emit statusUpdated(progress);
+ }
+ else if(!text.isEmpty())
{
emit messageLogged(text);
}
diff --git a/src/Filter_ToneAdjust.cpp b/src/Filter_ToneAdjust.cpp
index e7bebe22..a155fe5e 100644
--- a/src/Filter_ToneAdjust.cpp
+++ b/src/Filter_ToneAdjust.cpp
@@ -52,7 +52,7 @@ bool ToneAdjustFilter::apply(const QString &sourceFile, const QString &outputFil
process.setWorkingDirectory(QFileInfo(outputFile).canonicalPath());
- args << "-V3";
+ args << "-V3" << "-S";
args << "--guard" << "--temp" << ".";
args << QDir::toNativeSeparators(sourceFile);
args << QDir::toNativeSeparators(outputFile);
@@ -74,6 +74,8 @@ bool ToneAdjustFilter::apply(const QString &sourceFile, const QString &outputFil
bool bTimeout = false;
bool bAborted = false;
+ QRegExp regExp("In:(\\d+)(\\.\\d+)*%");
+
while(process.state() != QProcess::NotRunning)
{
if(*abortFlag)
@@ -96,7 +98,13 @@ bool ToneAdjustFilter::apply(const QString &sourceFile, const QString &outputFil
{
QByteArray line = process.readLine();
QString text = QString::fromUtf8(line.constData()).simplified();
- if(!text.isEmpty())
+ if(regExp.lastIndexIn(text) >= 0)
+ {
+ bool ok = false;
+ int progress = regExp.cap(1).toInt(&ok);
+ if(ok) emit statusUpdated(progress);
+ }
+ else if(!text.isEmpty())
{
emit messageLogged(text);
}
diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp
index 2c7922e6..b03251cf 100644
--- a/src/Thread_Initialization.cpp
+++ b/src/Thread_Initialization.cpp
@@ -64,7 +64,7 @@ g_lamexp_tools[] =
{"36f8d93ef3df6a420a73a9b5cf02dafdaf4321f0", "oggenc2_sse2.exe", 287602},
{"87ad1af73e9b9db3da3db645e5c2253cb0c2a2ea", "oggenc2_x64.exe", 287602},
{"0d9035bb62bdf46a2785261f8be5a4a0972abd15", "shorten.exe", 361},
- {"2d08c3586f9cf99f2e4c89ac54eeb595f63aef61", "sox.exe", 1431},
+ {"50ead3b852cbfc067a402e6c2d0d0d8879663dec", "sox.exe", 1432},
{"8671e16497a2d217d3707d4aa418678d02b16bcc", "speexdec.exe", 12},
{"093bfdec22872ca99e40183937c88785468be989", "tta.exe", 21},
{"8c842eef65248b46fa6cb9a9e5714f575672d999", "valdec.exe", 31},