diff --git a/doc/Changelog.html b/doc/Changelog.html index 3c629ca8..c47396e0 100644 --- a/doc/Changelog.html +++ b/doc/Changelog.html @@ -95,6 +95,7 @@
  • Updated MediaInfo to v0.7.85 (2016-04-29), compiled with ICL 15.0 and MSVC 12.0
  • Updated QAAC add-in to the to QAAC v2.58 (2016-01-05)
  • Updated FhgAacEnc add-in to "Case" edition (2015-10-24)
  • +
  • Updated mpg123 decoder to v1.23.4 (2016-05-11), compiled with GCC 5.3.0
  • Updated ALAC decoder to refalac v1.58 (2016-01-05)
  • Improved auto-update function (faster Internet connectivity check)
  • diff --git a/doc/Changelog.md b/doc/Changelog.md index 8acbbec3..2382957f 100644 --- a/doc/Changelog.md +++ b/doc/Changelog.md @@ -15,6 +15,7 @@ * Updated MediaInfo to v0.7.85 (2016-04-29), compiled with ICL 15.0 and MSVC 12.0 * Updated QAAC add-in to the to QAAC v2.58 (2016-01-05) * Updated FhgAacEnc add-in to "Case" edition (2015-10-24) +* Updated mpg123 decoder to v1.23.4 (2016-05-11), compiled with GCC 5.3.0 * Updated ALAC decoder to refalac v1.58 (2016-01-05) * Improved auto-update function (faster Internet connectivity check) diff --git a/res/Tools_Decd_A.qrc b/res/Tools_Decd_A.qrc index 748c0307..24a79e20 100644 --- a/res/Tools_Decd_A.qrc +++ b/res/Tools_Decd_A.qrc @@ -6,7 +6,9 @@ tools/mac.i386.exe tools/mac.sse2.exe tools/mpcdec.exe - tools/mpg123.exe + tools/mpg123.i386.exe + tools/mpg123.sse2.exe + tools/mpg123.avx.exe tools/oggdec.exe tools/opusdec.i386.exe tools/opusdec.sse2.exe diff --git a/res/tools/mpg123.avx.exe b/res/tools/mpg123.avx.exe new file mode 100644 index 00000000..a10b7e88 Binary files /dev/null and b/res/tools/mpg123.avx.exe differ diff --git a/res/tools/mpg123.exe b/res/tools/mpg123.exe deleted file mode 100644 index f86c6afa..00000000 Binary files a/res/tools/mpg123.exe and /dev/null differ diff --git a/res/tools/mpg123.i386.exe b/res/tools/mpg123.i386.exe new file mode 100644 index 00000000..7e567a36 Binary files /dev/null and b/res/tools/mpg123.i386.exe differ diff --git a/res/tools/mpg123.sse2.exe b/res/tools/mpg123.sse2.exe new file mode 100644 index 00000000..cf7658d8 Binary files /dev/null and b/res/tools/mpg123.sse2.exe differ diff --git a/src/Config.h b/src/Config.h index 429472c5..86293cba 100644 --- a/src/Config.h +++ b/src/Config.h @@ -35,7 +35,7 @@ #define VER_LAMEXP_MINOR_LO 4 #define VER_LAMEXP_TYPE Beta #define VER_LAMEXP_PATCH 2 -#define VER_LAMEXP_BUILD 1888 +#define VER_LAMEXP_BUILD 1889 #define VER_LAMEXP_CONFG 1818 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/Decoder_MP3.cpp b/src/Decoder_MP3.cpp index 8567c814..794e0d76 100644 --- a/src/Decoder_MP3.cpp +++ b/src/Decoder_MP3.cpp @@ -26,6 +26,7 @@ #include "Global.h" //MUtils +#include #include //Qt @@ -64,7 +65,7 @@ bool MP3Decoder::decode(const QString &sourceFile, const QString &outputFile, vo bool bAborted = false; int prevProgress = -1; - QRegExp regExp("\\s+Time:\\s+(\\d+):(\\d+)\\.(\\d+)\\s+\\[(\\d+):(\\d+)\\.(\\d+)\\],"); + QRegExp regExp("\\b\\d+\\+\\d+\\s+(\\d+):(\\d+)\\.(\\d+)\\+(\\d+):(\\d+)\\.(\\d+)\\b"); while(process.state() != QProcess::NotRunning) { @@ -90,22 +91,19 @@ bool MP3Decoder::decode(const QString &sourceFile, const QString &outputFile, vo QString text = QString::fromUtf8(line.constData()).simplified(); if(regExp.lastIndexIn(text) >= 0) { - int values[6]; - for(int i = 0; i < 6; i++) + quint32 values[6]; + if (MUtils::regexp_parse_uint32(regExp, values, 6)) { - bool ok = false; - int temp = regExp.cap(i+1).toInt(&ok); - values[i] = (ok ? temp : 0); - } - int timeDone = (60 * values[0]) + values[1]; - int timeLeft = (60 * values[3]) + values[4]; - if(timeDone > 0 || timeLeft > 0) - { - int newProgress = qRound((static_cast(timeDone) / static_cast(timeDone + timeLeft)) * 100.0); - if(newProgress > prevProgress) + const double timeDone = (60.0 * double(values[0])) + double(values[1]) + (double(values[2]) / 100.0); + const double timeLeft = (60.0 * double(values[3])) + double(values[4]) + (double(values[5]) / 100.0); + if ((timeDone >= 0.005) || (timeLeft >= 0.005)) { - emit statusUpdated(newProgress); - prevProgress = qMin(newProgress + 2, 99); + const int newProgress = qRound((static_cast(timeDone) / static_cast(timeDone + timeLeft)) * 100.0); + if (newProgress > prevProgress) + { + emit statusUpdated(newProgress); + prevProgress = qMin(newProgress + 2, 99); + } } } } diff --git a/src/Tools.h b/src/Tools.h index b7fca22e..15ec51ca 100644 --- a/src/Tools.h +++ b/src/Tools.h @@ -85,7 +85,9 @@ g_lamexp_tools[] = {"7f93334bfcdcb977dceda6a6520b1e0172ee0041dbfda9cb31f9a08aeb61f2b3711fe624536d9e5b036b5f2313dc08ee", CPU_TYPE_X86_ALL, "mediainfo.i386.exe", 785, ""}, {"d750a9890da829e18b2128d67c729a3e1a23c310a6561394c935533a37132f2aa3ebfc629b7bae376b90d3e2d69c924e", CPU_TYPE_X64_ALL, "mediainfo.x64.exe", 785, ""}, {"7e6346a057634ff07b2e1f427035324f7f02100cc996425990f87f71d767fce4c7b101588c7d944ba49cb2d7e51c9bdb", CPU_TYPE_ALL_ALL, "mpcdec.exe", 475, ""}, - {"02f3e52fca662c97fc15ee5d5c6ded2966d716ec5e5ab958accd4761eb864cc7c62ace97198b876a78cf75ab11c555b2", CPU_TYPE_ALL_ALL, "mpg123.exe", 1224, ""}, + {"e54c62b0f4e799e823e66b2e7f7dd630f212a86e8eba1bfacd80eb951347b03165027c6bb1a83b7e584a81a21e5bf049", CPU_TYPE_ALL_GEN, "mpg123.i386.exe", 1234, ""}, + {"b47b47e71311d99cdd544aaa8ee7bbcbb63dcbcf14229df6a50fdd02c8d1d37e923cb778d5699119bdbcc9805e7b16d0", CPU_TYPE_ALL_SSE, "mpg123.sse2.exe", 1234, "" }, + {"d35152f12df9ba03c47c88904632cc3d48cc5dd215d0760be25ff4d925e4a703e36d9db78e43e4bdb0a0dd2a19fe4f18", CPU_TYPE_ALL_AVX, "mpg123.avx.exe", 1234, "" }, {"1bfc01052abc76d492541f26bdc347f14ece180092e7128438f8f0f58879a7ed2aa66186c23429811ff5587b997cbeb7", CPU_TYPE_X86_ALL, "nc.i386.exe", 112, "" }, {"e7b19ec88fe025fd907a5ad85ed9c0b13cd33bd7cd04226d4f2944352f11d4026f558a30989f984e3e1d802552d05908", CPU_TYPE_X64_ALL, "nc.x64.exe", 112, "" }, {"f1f2ea5c9e5539620b706e7af68e543bf7a731afb06ccce3815ab34dad64d697e4d6ffcd187a396619b8b52efe7edf88", CPU_TYPE_ALL_ALL, "oggdec.exe", 1101, ""},