diff --git a/res/Tools.mac-x64-avx.qrc b/res/Tools.mac-x64-avx.qrc deleted file mode 100644 index 8be6e2b6..00000000 --- a/res/Tools.mac-x64-avx.qrc +++ /dev/null @@ -1,2 +0,0 @@ - -tools/mac.x64-avx.exe diff --git a/res/Tools.mac-x64-avx2.qrc b/res/Tools.mac-x64-avx2.qrc new file mode 100644 index 00000000..14a7c50a --- /dev/null +++ b/res/Tools.mac-x64-avx2.qrc @@ -0,0 +1,2 @@ + +tools/mac.x64-avx2.exe diff --git a/res/_ALL.qrc b/res/_ALL.qrc index bf951c80..4d1fe32f 100644 --- a/res/_ALL.qrc +++ b/res/_ALL.qrc @@ -234,7 +234,7 @@ tools/lame.x64-sse2.exe tools/lame.x86-i686.exe tools/lame.x86-sse2.exe - tools/mac.x64-avx.exe + tools/mac.x64-avx2.exe tools/mac.x64-sse2.exe tools/mac.x86-i686.exe tools/mac.x86-sse2.exe diff --git a/res/tools/mac.x64-avx.exe b/res/tools/mac.x64-avx.exe deleted file mode 100644 index 9f8b5f4b..00000000 Binary files a/res/tools/mac.x64-avx.exe and /dev/null differ diff --git a/res/tools/mac.x64-avx2.exe b/res/tools/mac.x64-avx2.exe new file mode 100644 index 00000000..d49c6323 Binary files /dev/null and b/res/tools/mac.x64-avx2.exe differ diff --git a/src/Config.h b/src/Config.h index 1a8429dd..d773e146 100644 --- a/src/Config.h +++ b/src/Config.h @@ -35,7 +35,7 @@ #define VER_LAMEXP_MINOR_LO 0 #define VER_LAMEXP_TYPE Beta #define VER_LAMEXP_PATCH 4 -#define VER_LAMEXP_BUILD 2346 +#define VER_LAMEXP_BUILD 2347 #define VER_LAMEXP_CONFG 2188 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp index b40be876..e909e75a 100644 --- a/src/Thread_Initialization.cpp +++ b/src/Thread_Initialization.cpp @@ -99,6 +99,26 @@ static QList createRegExpList(const char *const *const regExpList) return result; } +/* print selected CPU type*/ +static inline void printCpuTypeFriendlyName(const unsigned int &cpuSupport) +{ + switch (cpuSupport) + { + case CPU_TYPE_X86_GEN: + qDebug("Selected CPU type is: x86 (i686)"); break; + case CPU_TYPE_X86_SSE: + qDebug("Selected CPU type is: x86 + SSE2"); break; + case CPU_TYPE_X86_AVX: + qDebug("Selected CPU type is: x86 + AVX2"); break; + case CPU_TYPE_X64_SSE: + qDebug("Selected CPU type is: x64 + SSE2"); break; + case CPU_TYPE_X64_AVX: + qDebug("Selected CPU type is: x64 + AVX2"); break; + default: + MUTILS_THROW("CPU support undefined!"); + } +} + //////////////////////////////////////////////////////////// // BaseTask class //////////////////////////////////////////////////////////// @@ -358,40 +378,25 @@ double InitializationThread::doInit(const size_t threadCount) delay(); //CPU type selection - unsigned int cpuSupport = m_cpuFeatures.x64 ? CPU_TYPE_X64_GEN : CPU_TYPE_X86_GEN; - if((m_cpuFeatures.features & MUtils::CPUFetaures::FLAG_SSE) && (m_cpuFeatures.features & MUtils::CPUFetaures::FLAG_SSE2)) + unsigned int cpuSupport = CPU_TYPE_X86_GEN; + if (m_cpuFeatures.x64 || ((m_cpuFeatures.features & MUtils::CPUFetaures::FLAG_SSE) && (m_cpuFeatures.features & MUtils::CPUFetaures::FLAG_SSE2))) { - if (m_cpuFeatures.features & MUtils::CPUFetaures::FLAG_AVX) + cpuSupport = m_cpuFeatures.x64 ? CPU_TYPE_X64_SSE : CPU_TYPE_X86_SSE; + if ((m_cpuFeatures.features & MUtils::CPUFetaures::FLAG_AVX) && (m_cpuFeatures.features & MUtils::CPUFetaures::FLAG_AVX2)) { cpuSupport = m_cpuFeatures.x64 ? CPU_TYPE_X64_AVX : CPU_TYPE_X86_AVX; } - else - { - cpuSupport = m_cpuFeatures.x64 ? CPU_TYPE_X64_SSE : CPU_TYPE_X86_SSE; - } } //Hack to disable x64 on Wine, as x64 binaries won't run under Wine (tested with Wine 1.4 under Ubuntu 12.04 x64) - if(cpuSupport & CPU_TYPE_X64_ALL) + if ((cpuSupport & CPU_TYPE_X64_SSX) && MUtils::OS::running_on_wine()) { - if(MUtils::OS::running_on_wine()) - { - qWarning("Running under Wine on a 64-Bit system. Going to disable all x64 support!\n"); - cpuSupport = (cpuSupport == CPU_TYPE_X64_SSE) ? CPU_TYPE_X86_SSE : CPU_TYPE_X86_GEN; - } + qWarning("Running under Wine on a 64-Bit system. Going to disable all x64 support!\n"); + cpuSupport = CPU_TYPE_X86_SSE; } - //Print selected CPU type - switch(cpuSupport) - { - PRINT_CPU_TYPE(CPU_TYPE_X86_GEN); break; - PRINT_CPU_TYPE(CPU_TYPE_X86_SSE); break; - PRINT_CPU_TYPE(CPU_TYPE_X86_AVX); break; - PRINT_CPU_TYPE(CPU_TYPE_X64_GEN); break; - PRINT_CPU_TYPE(CPU_TYPE_X64_SSE); break; - PRINT_CPU_TYPE(CPU_TYPE_X64_AVX); break; - default: MUTILS_THROW("CPU support undefined!"); - } + //Print the selected CPU type + printCpuTypeFriendlyName(cpuSupport); //Allocate queues QQueue queueToolName; @@ -756,30 +761,21 @@ void InitAacEncTask::initAacEncImpl(const char *const toolName, const char *cons void InitializationThread::selfTest(void) { - static const unsigned int CPU[7] = { CPU_TYPE_X86_GEN, CPU_TYPE_X86_SSE, CPU_TYPE_X86_AVX, CPU_TYPE_X64_GEN, CPU_TYPE_X64_SSE, CPU_TYPE_X64_AVX, 0U }; + static const unsigned int CPU[7] = { CPU_TYPE_X86_GEN, CPU_TYPE_X86_SSE, CPU_TYPE_X86_AVX, CPU_TYPE_X64_SSE, CPU_TYPE_X64_AVX, 0U }; unsigned int count = 0U, expectedCount = UINT_MAX; for(size_t k = 0U; CPU[k]; count = 0U, ++k) { + const unsigned int cpuSupport = CPU[k]; qDebug("[SELF-TEST]"); - switch(CPU[k]) - { - PRINT_CPU_TYPE(CPU_TYPE_X86_GEN); break; - PRINT_CPU_TYPE(CPU_TYPE_X86_SSE); break; - PRINT_CPU_TYPE(CPU_TYPE_X86_AVX); break; - PRINT_CPU_TYPE(CPU_TYPE_X64_GEN); break; - PRINT_CPU_TYPE(CPU_TYPE_X64_SSE); break; - PRINT_CPU_TYPE(CPU_TYPE_X64_AVX); break; - default: - MUTILS_THROW("CPU support undefined!"); - } + printCpuTypeFriendlyName(cpuSupport); for (int i = 0; g_lamexp_tools[i].pcName || g_lamexp_tools[i].pcHash || g_lamexp_tools[i].uiVersion; ++i) { if (g_lamexp_tools[i].pcName && g_lamexp_tools[i].pcHash && g_lamexp_tools[i].uiVersion) { const QString toolName = QString::fromLatin1(g_lamexp_tools[i].pcName); const QByteArray expectedHash = QByteArray(g_lamexp_tools[i].pcHash); - if(g_lamexp_tools[i].uiCpuType & CPU[k]) + if(g_lamexp_tools[i].uiCpuType & cpuSupport) { qDebug("%2u -> %s", ++count, MUTILS_UTF8(toolName)); QFile resource(QString(":/tools/%1").arg(toolName)); @@ -806,7 +802,7 @@ void InitializationThread::selfTest(void) { if (count != expectedCount) { - qFatal("Tool count mismatch for CPU type %u. Should be %u, but got %u !!!", CPU[k], expectedCount, count); + qFatal("Tool count mismatch for CPU type %u. Should be %u, but got %u !!!", cpuSupport, expectedCount, count); } } else diff --git a/src/Tools.h b/src/Tools.h index e7d05472..fa4689c2 100644 --- a/src/Tools.h +++ b/src/Tools.h @@ -32,24 +32,20 @@ /* CPU_TYPE__ */ #define CPU_TYPE_X86_GEN 0x00000001UL //x86, generic -#define CPU_TYPE_X86_SSE 0x00000002UL //x86, with SSE and SSE2 support -#define CPU_TYPE_X86_AVX 0x00000004UL //x86, with AVX support -#define CPU_TYPE_X64_GEN 0x00000008UL //x64, generic -#define CPU_TYPE_X64_SSE 0x00000010UL //x64, with SSE and SSE2 support -#define CPU_TYPE_X64_AVX 0x00000020UL //x64, with AVX support +#define CPU_TYPE_X86_SSE 0x00000002UL //x86, with SSE and SSE2 support (SSE2 implies SSE) +#define CPU_TYPE_X86_AVX 0x00000004UL //x86, with AVX and AVX2 support (AVX2 implies AVX) +#define CPU_TYPE_X64_SSE 0x00000008UL //x64, with SSE and SSE2 support (x64 implies SSE2) +#define CPU_TYPE_X64_AVX 0x00000010UL //x64, with AVX and AVX2 support (AVX2 implies AVX) /* combined CPU types */ -#define CPU_TYPE_X86_NVX (CPU_TYPE_X86_GEN|CPU_TYPE_X86_SSE) -#define CPU_TYPE_X86_SSX (CPU_TYPE_X86_SSE|CPU_TYPE_X86_AVX) -#define CPU_TYPE_X86_ALL (CPU_TYPE_X86_GEN|CPU_TYPE_X86_SSX) -#define CPU_TYPE_X64_NVX (CPU_TYPE_X64_GEN|CPU_TYPE_X64_SSE) -#define CPU_TYPE_X64_SSX (CPU_TYPE_X64_SSE|CPU_TYPE_X64_AVX) -#define CPU_TYPE_X64_ALL (CPU_TYPE_X64_GEN|CPU_TYPE_X64_SSX) -#define CPU_TYPE_ALL_GEN (CPU_TYPE_X86_GEN|CPU_TYPE_X64_GEN) -#define CPU_TYPE_ALL_SSE (CPU_TYPE_X86_SSE|CPU_TYPE_X64_SSE) -#define CPU_TYPE_ALL_SSX (CPU_TYPE_X86_SSX|CPU_TYPE_X64_SSX) -#define CPU_TYPE_ALL_AVX (CPU_TYPE_X86_AVX|CPU_TYPE_X64_AVX) -#define CPU_TYPE_ALL_ALL (CPU_TYPE_X86_ALL|CPU_TYPE_X64_ALL) +#define CPU_TYPE_X86_NVX (CPU_TYPE_X86_GEN|CPU_TYPE_X86_SSE) //x86, generic or SSE2 +#define CPU_TYPE_X86_SSX (CPU_TYPE_X86_SSE|CPU_TYPE_X86_AVX) //x86, SSE2 or AVX2 +#define CPU_TYPE_X86_ALL (CPU_TYPE_X86_GEN|CPU_TYPE_X86_SSX) //x86, generic or SSE2 or AVX2 +#define CPU_TYPE_X64_SSX (CPU_TYPE_X64_SSE|CPU_TYPE_X64_AVX) //x64, SSE2 or AVX2 +#define CPU_TYPE_ALL_SSE (CPU_TYPE_X86_SSE|CPU_TYPE_X64_SSE) //any, SSE2 +#define CPU_TYPE_ALL_SSX (CPU_TYPE_X86_SSX|CPU_TYPE_X64_SSX) //any, SSE2 or AVX2 +#define CPU_TYPE_ALL_AVX (CPU_TYPE_X86_AVX|CPU_TYPE_X64_AVX) //any, AVX2 +#define CPU_TYPE_ALL_ALL (CPU_TYPE_X86_ALL|CPU_TYPE_X64_SSX) //any, generic or SSE2 or AVX2 //////////////////////////////////////////////////////////// // TOOLS @@ -67,50 +63,50 @@ g_lamexp_tools[] = { {"4870d7abbc3995dc5ca82147ee33f28c3ee7dc1986fbb0131912effe10c1a209d3f983c5dffd963c31707a5ce39611b4", CPU_TYPE_X86_GEN, "aften.i686.exe", 8, ""}, {"fc4e38b11a0f52b68cca79aa2d71c02180b70eb0e592923dee4f0ccf766f1006642369b2178f6a61d1c2506446cc442d", CPU_TYPE_X86_SSX, "aften.sse2.exe", 8, ""}, - {"b44b1c0e1a8f4633c9bc2e43d0a83ea5edc890e1cccc0054c812d0e64170e5292dc1dfd7430da61b73150831aa16e9c4", CPU_TYPE_X64_ALL, "aften.x64.exe", 8, ""}, + {"b44b1c0e1a8f4633c9bc2e43d0a83ea5edc890e1cccc0054c812d0e64170e5292dc1dfd7430da61b73150831aa16e9c4", CPU_TYPE_X64_SSX, "aften.x64.exe", 8, ""}, {"4558728999a05f12fe88566e8308cba0ada200814c2a1bfe2507f49faf8f3994b0d52a829148f5c6321d24faa2718439", CPU_TYPE_ALL_ALL, "avs2wav.exe", 13, ""}, {"e2bf33ab92bfbeaabedc4beaf15a15656e5f744666340eb3217edef9765e3702bc0b0da812e1bc0679bcf6b4faa947e0", CPU_TYPE_ALL_ALL, "curl.exe", 7850, ""}, {"58dd4461823f2962f7f2b64a8e34a63ab93754738430d60dead8e7a54a7da1e233729c1a35b87dd3326ef63b535074e0", CPU_TYPE_ALL_ALL, "curl.crt", 7850, ""}, {"07834b1b8ecac2f3db79ad048005eca3a284cb759e15d399eb1a560a403122e20db5f08e60319759b8463aeef2410d02", CPU_TYPE_ALL_ALL, "dcaenc.exe", 20120419, ""}, - {"5c4a5cdd708b5857bcb064558be81a2dfb16401e796b296f6eee7c63042acbeae12e1e2f1f3d0fd096eaf73201b54e10", CPU_TYPE_ALL_GEN, "faad.i686.exe", 270, "" }, + {"5c4a5cdd708b5857bcb064558be81a2dfb16401e796b296f6eee7c63042acbeae12e1e2f1f3d0fd096eaf73201b54e10", CPU_TYPE_X86_GEN, "faad.i686.exe", 270, "" }, {"72447794cf411e1e4ce71facf5f60023f001d203894cf40185a0ee13e144e93d72ac99f2ed30a9168450ce5bf882f99f", CPU_TYPE_ALL_SSX, "faad.sse2.exe", 270, "" }, {"2be56e43b0959b210b7773bcb1766c6e671b5b82b5366e2146867a6db146897f5fa29a4479395525c44f74763a5861a1", CPU_TYPE_X86_GEN, "flac.x86-i686.exe", 141, ""}, {"60ab6639a01b89dd484c62edc7c14ab154b202b60dd144a8ade33d07c85cd7163fe14e6881d3836152dcef04cea0254e", CPU_TYPE_X86_SSX, "flac.x86-sse2.exe", 141, ""}, - {"2079fe1e027ac896735d845f9e7ceb9c556a8c9d243fd5fabf1b818da2c849689c4c18324d8990c071746b05e16edcd1", CPU_TYPE_X64_NVX, "flac.x64-sse2.exe", 141, ""}, + {"2079fe1e027ac896735d845f9e7ceb9c556a8c9d243fd5fabf1b818da2c849689c4c18324d8990c071746b05e16edcd1", CPU_TYPE_X64_SSE, "flac.x64-sse2.exe", 141, ""}, {"7bb28075a9a06f1702f45547189278db39c3720f13b130005092a7904a582f40661fb3076082af00fb82548d39706676", CPU_TYPE_X64_AVX, "flac.x64-avx.exe", 141, ""}, {"657320078375a5392e2f9351f2b375b5b3fd9c7ab5e00d0d1f00e58af2405f9f9278078b17959f1d547d4c1b816b0b67", CPU_TYPE_X86_GEN, "lame.x86-i686.exe", 31001, "SVN"}, {"d26a917f5cd1b29bb10810d85e4f979e3fd58d9c4957990badd35a57bc6936b02d78c0096094e7906c8288f66b79bb8b", CPU_TYPE_X86_SSX, "lame.x86-sse2.exe", 31001, "SVN"}, - {"b76d98075dac1a18675d837aea4051a9a71406af4636a41f0a8923beaf0d299de3ad51a6d80275a878849a63de16e90a", CPU_TYPE_X64_NVX, "lame.x64-sse2.exe", 31001, "SVN" }, + {"b76d98075dac1a18675d837aea4051a9a71406af4636a41f0a8923beaf0d299de3ad51a6d80275a878849a63de16e90a", CPU_TYPE_X64_SSE, "lame.x64-sse2.exe", 31001, "SVN" }, {"31c4374e174bbf25b4429eabf22f570a841ce63796ce8321ea02af9620ce599cf9f92276224acc8f9375cdcaae846c8c", CPU_TYPE_X64_AVX, "lame.x64-avx.exe", 31001, "SVN" }, {"ecce88182864fee956f32be40ed072a53ce65811cb74f8cd2dc3b07caed8ce3dfc98d84dfc2ceaf426acf4d4c1c73c7c", CPU_TYPE_X86_GEN, "mac.x86-i686.exe", 892, ""}, {"5b4a8baa2e817ae4a4f58194f6b5f7b1d3b7a7473fd09a7a518bc0d994726b1d603b8d94e73c028e823312f29c1514f6", CPU_TYPE_X86_SSX, "mac.x86-sse2.exe", 892, ""}, - {"42f03cddc33f984c61253e15d6803145977f14ed88dac1d1aa635abca52d8f29184516535ec51592fef824954457575d", CPU_TYPE_X64_NVX, "mac.x64-sse2.exe", 892, ""}, - {"2b3d2cdc1783720c20b1c983dee098391211f9722747ed3e0ff6a59c1765f4c398e8a0edd039b28a82138157c3f3ae04", CPU_TYPE_X64_AVX, "mac.x64-avx.exe", 892, ""}, + {"42f03cddc33f984c61253e15d6803145977f14ed88dac1d1aa635abca52d8f29184516535ec51592fef824954457575d", CPU_TYPE_X64_SSE, "mac.x64-sse2.exe", 892, ""}, + {"b70da98357932744179aff3220c04a8d17a50b8ceb4e9f23e3acf97216d543492e173e6233564d3876c67d511025fd67", CPU_TYPE_X64_AVX, "mac.x64-avx2.exe", 892, ""}, {"d12d531ade6a8902b37d048dd5f05c3760f5a093abeb51cbaf09c98a5bc4ba65c8b115b2f40d745334ddc0997319f85a", CPU_TYPE_X86_GEN, "mediainfo.i686.exe", 22060, ""}, {"7e77ea70eb2bf444bbef73d2ab7fdd19702bd42dd46ed298510e2eff2aa5ed08ab05380464dc14c8b1bfe4c062162209", CPU_TYPE_X86_SSX, "mediainfo.sse2.exe", 22060, ""}, - {"61243ef793ae2afcd42748880d5d18279932fb7effc1007979c7df6a3fc34d909559738fc4f1eb0bdbb14dbbbdddc6cd", CPU_TYPE_X64_ALL, "mediainfo.x64.exe", 22060, ""}, + {"61243ef793ae2afcd42748880d5d18279932fb7effc1007979c7df6a3fc34d909559738fc4f1eb0bdbb14dbbbdddc6cd", CPU_TYPE_X64_SSX, "mediainfo.x64.exe", 22060, ""}, {"7e6346a057634ff07b2e1f427035324f7f02100cc996425990f87f71d767fce4c7b101588c7d944ba49cb2d7e51c9bdb", CPU_TYPE_ALL_ALL, "mpcdec.exe", 475, ""}, {"c11107e563cf8131da2574cfb93c2661e343d615c17e3cdc95db130052e44fb2e188e1712f74c2eaac7ca42276398aa4", CPU_TYPE_X86_GEN, "mpg123.x86-i686.exe", 12604, ""}, {"5847e83260552544c70e693e394dcf1928863350cf4bc6b3752728cda70ebec6f13db6bc8a3914a780bc283207fe4ba7", CPU_TYPE_X86_SSX, "mpg123.x86-sse2.exe", 12604, ""}, - {"5462b0cbca43cbc35c6ff31abf806397376ba35b2dfd12f3cbad4d7cbf481c9043cf2a0ac01f012d52e6014522e0a18d", CPU_TYPE_X64_NVX, "mpg123.x64-sse2.exe", 12604, ""}, + {"5462b0cbca43cbc35c6ff31abf806397376ba35b2dfd12f3cbad4d7cbf481c9043cf2a0ac01f012d52e6014522e0a18d", CPU_TYPE_X64_SSE, "mpg123.x64-sse2.exe", 12604, ""}, {"5572a331a8e0ee173369971c4e89720f631ce8b9beaa8bbb1758f258929074bb021b9ca5a4faa34667b8bb1bad7d07be", CPU_TYPE_X64_AVX, "mpg123.x64-avx.exe", 12604, ""}, - {"8e9b65f4bee39deceb303e5fdfe6875872fe450e29151ef3546128e7133a8eb3d14daae446e0c17c56ad3b969294367c", CPU_TYPE_ALL_GEN, "oggdec.i686.exe", 1101, ""}, + {"8e9b65f4bee39deceb303e5fdfe6875872fe450e29151ef3546128e7133a8eb3d14daae446e0c17c56ad3b969294367c", CPU_TYPE_X86_GEN, "oggdec.i686.exe", 1101, ""}, {"5fb1d7781de9449eed958a175305a9827b158f69cd83131da6b92cd78ee7ea3dcc47ed6b3ee58e2892fe6cf98a994730", CPU_TYPE_ALL_SSE, "oggdec.sse2.exe", 1101, ""}, {"1f1f52553703afc11a428a4d5c9211f91cf9d39019ade3e049478e5a853b9a8c0a0d11304a04feb3a37cac6904244bab", CPU_TYPE_ALL_AVX, "oggdec.avx.exe", 1101, ""}, {"5acb313abc310299987734edc9aa2290c24692284a79cdcac3ec85900284c80297c2a0b95c1f8ac01790dd181fb221db", CPU_TYPE_X86_GEN, "oggenc2.i686.exe", 288137603, "2018"}, {"e0e91f07a427632a6fe2eed697a50311bf658cb61cb0f26eacf4b64487dac54022ab429587221a0375b6e3486f0e0bd1", CPU_TYPE_X86_SSX, "oggenc2.sse2.exe", 288137603, "2018"}, - {"3630078654f0ed43579d0eb11dba7752892afc361864d1620bcc49f233384c221827bbe88644f4a5b5aceeac4da7fe6c", CPU_TYPE_X64_ALL, "oggenc2.x64.exe", 288137603, "2018"}, - {"29494a82b09248e7f3d988c659fc16f0559c35f0ec4e55fd54dda87ffa172da0993cc58a7d112dc91e7feea360693cda", CPU_TYPE_ALL_GEN, "opusdec.i686.exe", 20190421, "v1.3.1"}, + {"3630078654f0ed43579d0eb11dba7752892afc361864d1620bcc49f233384c221827bbe88644f4a5b5aceeac4da7fe6c", CPU_TYPE_X64_SSX, "oggenc2.x64.exe", 288137603, "2018"}, + {"29494a82b09248e7f3d988c659fc16f0559c35f0ec4e55fd54dda87ffa172da0993cc58a7d112dc91e7feea360693cda", CPU_TYPE_X86_GEN, "opusdec.i686.exe", 20190421, "v1.3.1"}, {"aa5b532b58a0d84221627985edb06ad2dd12926e5514c27ee8bb6f508b5578ad63b08bee546b67199df0581f64f25e48", CPU_TYPE_ALL_SSE, "opusdec.sse2.exe", 20190421, "v1.3.1"}, {"a32d191ac43dc0f3e527daf34201bd93a38fa34727d5aae12716ea248fa55a8b6932b33d12b03a68aaa7972950511406", CPU_TYPE_ALL_AVX, "opusdec.avx.exe", 20190421, "v1.3.1"}, - {"71a913bb3e2a0259f2badcac74447d5839d405ff85e31d0369e7a19119b64743b87c90851fb69d4c740bef478b04ece9", CPU_TYPE_ALL_GEN, "opusenc.i686.exe", 20190421, "v1.3.1"}, + {"71a913bb3e2a0259f2badcac74447d5839d405ff85e31d0369e7a19119b64743b87c90851fb69d4c740bef478b04ece9", CPU_TYPE_X86_GEN, "opusenc.i686.exe", 20190421, "v1.3.1"}, {"90f9bb8ebbf4a26fb2a9af7640b596253e16cb20013472886347c0ceeb3b7c03ee60781287eb0d496ccad34db77e7d06", CPU_TYPE_ALL_SSE, "opusenc.sse2.exe", 20190421, "v1.3.1"}, {"1e7a920786b02431924d6d0e1ae8ee748595a43c83947926d58ed026cc58157a093a6be56932b61c2249796953587995", CPU_TYPE_ALL_AVX, "opusenc.avx.exe", 20190421, "v1.3.1"}, {"155b123845f797226d03c44d649de810b13001b70e55e3775559ee78b75c38c9284475d217a86752820cfe1c22f37f69", CPU_TYPE_X86_GEN, "refalac.i686.exe", 164, ""}, {"2bdb8a6e4ad05669623173101ccc9287b9d8b6bb5b2062abaadda3e3cceda7040478ef2b404348b52e2232307f8c8f7c", CPU_TYPE_X86_SSX, "refalac.sse2.exe", 164, ""}, - {"3abae08b7be8d7e054bf48b7a7cbb874955a774dc2db69503490d59daf74db8adfa702401eeace6536810b0ac15dea84", CPU_TYPE_X64_ALL, "refalac.x64.exe", 164, ""}, + {"3abae08b7be8d7e054bf48b7a7cbb874955a774dc2db69503490d59daf74db8adfa702401eeace6536810b0ac15dea84", CPU_TYPE_X64_SSX, "refalac.x64.exe", 164, ""}, {"d041b60de6c5c6e77cbad84440db57bbeb021af59dd0f7bebd3ede047d9e2ddc2a0c14179472687ba91063743d23e337", CPU_TYPE_ALL_ALL, "shorten.exe", 361, ""}, - {"3206ebd1b1c6e5db422d7a84117a7ba8256208fc7104a6668d8856c1b6407882f25f1f39e37c8e33affb343300937d2e", CPU_TYPE_ALL_GEN, "sox.i686.exe", 1442, ""}, + {"3206ebd1b1c6e5db422d7a84117a7ba8256208fc7104a6668d8856c1b6407882f25f1f39e37c8e33affb343300937d2e", CPU_TYPE_X86_GEN, "sox.i686.exe", 1442, ""}, {"16a71940aa5e9b393e83cdfb2a4dda4291ea01858f8ba338510013f25f4d7c53b9b5cffb86404ea49ef28e6795182fd5", CPU_TYPE_ALL_SSE, "sox.sse2.exe", 1442, "" }, {"25585ca9e2e025d82d93341a9db8527eb0b4ce451dade607f9784a79ed30e050ced0824835d5467aa0bf0c6b8fe08612", CPU_TYPE_ALL_AVX, "sox.avx.exe", 1442, "" }, {"5a4261e1b41a59d1a5bc92e1d2766422a67454d77e06ea29af392811b7b4704e0f3e494ab9cb6375ce9e39257867c5ed", CPU_TYPE_ALL_ALL, "speexdec.exe", 12, ""}, @@ -121,7 +117,7 @@ g_lamexp_tools[] = {"5ef85aa6c6521161e19fc9eadd30bac82c3d0eee2374fd6ac543022181f7846ec2198ebe8bc84667e9b92a4a85d07fbb", CPU_TYPE_ALL_ALL, "wupdate.exe", 20171002, ""}, {"6021b938769b09d05617c7e91e0cb6cc5f9e40c50cb470455afc21d466b37183b8675822b8797cbf98950a5262ec07a6", CPU_TYPE_X86_GEN, "wvunpack.x86-i686.exe", 5010, ""}, {"fa322e127679ac6b5e833e120b590480b3ffc7ffa875705c04ed698f155dc23b40c8922d2f5f78ad1cc9342306289141", CPU_TYPE_X86_SSX, "wvunpack.x86-sse2.exe", 5010, ""}, - {"d4ca3085aae70160beab778a46a27643f1415bd803ddfecb2791fe964e4bff49ac5a891ef1852f26e867c42ddd6f8806", CPU_TYPE_X64_NVX, "wvunpack.x64-sse2.exe", 5010, ""}, + {"d4ca3085aae70160beab778a46a27643f1415bd803ddfecb2791fe964e4bff49ac5a891ef1852f26e867c42ddd6f8806", CPU_TYPE_X64_SSE, "wvunpack.x64-sse2.exe", 5010, ""}, {"e2c32a765cbec41cc6e662447a1d70d8261753f2c93aca666bafddcc420c4eaee550d3c730123a84565cf43fffa26c35", CPU_TYPE_X64_AVX, "wvunpack.x64-avx.exe", 5010, ""}, {NULL, NULL, NULL, NULL, NULL} };