diff --git a/MediaInfoXP.qrc b/MediaInfoXP.qrc index c635f67..a2d78ff 100644 --- a/MediaInfoXP.qrc +++ b/MediaInfoXP.qrc @@ -19,5 +19,6 @@ res/bin/MediaInfo.x86-i686.exe res/bin/MediaInfo.x86-sse2.exe res/bin/MediaInfo.x64-sse2.exe + res/bin/MediaInfo.x64-avx2.exe diff --git a/MediaInfoXP.vcxproj.filters b/MediaInfoXP.vcxproj.filters index 1793158..58955e2 100644 --- a/MediaInfoXP.vcxproj.filters +++ b/MediaInfoXP.vcxproj.filters @@ -27,13 +27,15 @@ Dialogs - Header Files Header Files + + Resources + @@ -67,6 +69,8 @@ - + + Resources + \ No newline at end of file diff --git a/res/bin/MediaInfo.x64-avx2.exe b/res/bin/MediaInfo.x64-avx2.exe new file mode 100644 index 0000000..d719636 Binary files /dev/null and b/res/bin/MediaInfo.x64-avx2.exe differ diff --git a/res/bin/MediaInfo.x64-sse2.exe b/res/bin/MediaInfo.x64-sse2.exe index dbdde21..ce89cc9 100644 Binary files a/res/bin/MediaInfo.x64-sse2.exe and b/res/bin/MediaInfo.x64-sse2.exe differ diff --git a/res/bin/MediaInfo.x86-i686.exe b/res/bin/MediaInfo.x86-i686.exe index 0ed2d0f..4428855 100644 Binary files a/res/bin/MediaInfo.x86-i686.exe and b/res/bin/MediaInfo.x86-i686.exe differ diff --git a/res/bin/MediaInfo.x86-sse2.exe b/res/bin/MediaInfo.x86-sse2.exe index 72e7e24..585ba7e 100644 Binary files a/res/bin/MediaInfo.x86-sse2.exe and b/res/bin/MediaInfo.x86-sse2.exe differ diff --git a/src/Config.h b/src/Config.h index a7fdb0b..e76e21b 100644 --- a/src/Config.h +++ b/src/Config.h @@ -27,18 +27,19 @@ //Version MIXP_DEFINE_CONF(unsigned int, mixp_versionMajor, 2) -MIXP_DEFINE_CONF(unsigned int, mixp_versionMinor, 38) +MIXP_DEFINE_CONF(unsigned int, mixp_versionMinor, 39) MIXP_DEFINE_CONF(unsigned int, mixp_versionPatch, 0) //MediaInfo Version -MIXP_DEFINE_CONF(unsigned int, mixp_mediaInfoVerMajor, 20) -MIXP_DEFINE_CONF(unsigned int, mixp_mediaInfoVerMinor, 9) +MIXP_DEFINE_CONF(unsigned int, mixp_mediaInfoVerMajor, 21) +MIXP_DEFINE_CONF(unsigned int, mixp_mediaInfoVerMinor, 3) MIXP_DEFINE_CONF(unsigned int, mixp_mediaInfoVerPatch, 0) //MediaInfo Checksum -MIXP_DEFINE_CONF(char*, mixp_checksum_gen, "fee397f96150db0028416cd8947b9e42a79eca26feeba235955d9abe9aa369164b34435f44858cf46b27c17688e7cdf7dcfbeb397b3701793e64ca5206d3ab79") -MIXP_DEFINE_CONF(char*, mixp_checksum_sse, "1249935e049ab6a506199f21c95f14f0f7d28fedc8a5a89787de1e83d1c942003f8b483c348e1e294386cffdeb21eed473ceebf7b3c7d3595fa9e7736d131a8d") -MIXP_DEFINE_CONF(char*, mixp_checksum_x64, "bbb8a24a97e3690ba19c65e92f5396fafdebb808937a21a6589a9e8fa47147ebd1de2629451bd3619bd0a387e156a86f02d76386a21b46904722032c97f0bd2f") +MIXP_DEFINE_CONF(char*, mixp_checksum_x86_i686, "2ebbd2b1fa84c8e48b49f8b504dc5c08a14e8757f4d17d5f60112ab4ebfcd061a2fdb609b0fb9059febc1088fe020f8ddf253f1bc18927a83d766eb217e72568") +MIXP_DEFINE_CONF(char*, mixp_checksum_x86_sse2, "822149b4f9d2879bbd37c69b35c92c5bc4ed5c3dae9153dc30cee8fe3ae10d7116ade8c038885adae880f9b7bae0476aba17b5d60f9d8dcdcbe14e6d11cdd2b9") +MIXP_DEFINE_CONF(char*, mixp_checksum_x64_sse2, "841bfe999635fde807b8679b89a9f1f03155112d358e16fa11ebda8d79813bd304745df7201f727554e6eaeb34b337e991c12725520f436d0e772a40c3a5a003") +MIXP_DEFINE_CONF(char*, mixp_checksum_x64_avx2, "8f46d5be7cbd1a7bb9750a07d9891a725468506256dfeb0855fdeb8caead47295c977eff4891b9fc22aaeebcb81f1c216fec582b6b55598d0f67f4fd19b07e83") //Build date MIXP_DEFINE_CONF(char*, mixp_buildDate, __DATE__) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index ca2b920..3b49877 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -63,6 +63,8 @@ #define SET_FONT_BOLD(WIDGET,BOLD) { QFont _font = WIDGET->font(); _font.setBold(BOLD); WIDGET->setFont(_font); } #define SET_TEXT_COLOR(WIDGET,COLOR) { QPalette _palette = WIDGET->palette(); _palette.setColor(QPalette::WindowText, (COLOR)); _palette.setColor(QPalette::Text, (COLOR)); WIDGET->setPalette(_palette); } #define APPLICATION_IS_IDLE (m_status == APP_STATUS_IDLE) +#define HAVE_SSE2(X) ((X).features & MUtils::CPUFetaures::FLAG_SSE2) +#define HAVE_AVX2(X) ((X).features & MUtils::CPUFetaures::FLAG_AVX2) //Text const char *STATUS_BLNK = ">> You can drop any type of media files here <<"; @@ -80,12 +82,14 @@ static const struct const char *const checksum; const bool require_x64; const bool require_sse2; + const bool require_avx2; } MEDIAINFO_BIN[] = { - { "x64-sse2", g_mixp_checksum_x64, bool(1), bool(1) }, - { "x86-sse2", g_mixp_checksum_sse, bool(0), bool(1) }, - { "x86-i686", g_mixp_checksum_gen, bool(0), bool(0) }, + { "x64-avx2", g_mixp_checksum_x64_avx2, bool(1), bool(1), bool(1) }, + { "x64-sse2", g_mixp_checksum_x64_sse2, bool(1), bool(1), bool(0) }, + { "x86-sse2", g_mixp_checksum_x86_sse2, bool(0), bool(1), bool(0) }, + { "x86-i686", g_mixp_checksum_x86_i686, bool(0), bool(0), bool(0) }, { NULL, NULL, false, false } }; @@ -761,7 +765,6 @@ void CMainWindow::received(const quint32 &command, const QString &message) // PRIVATE FUNCTIONS //////////////////////////////////////////////////////////// -#define HAVE_SSE2(X) ((X).features & MUtils::CPUFetaures::FLAG_SSE2) static const char *const HASH_SEED = "+A`~}vPe9'~#n+c1Wq/MPo;1XwY\\;Pb."; static bool VALIDATE_MEDIAINFO(QFile *const handle, const char *const expected_checksum) @@ -797,7 +800,7 @@ QPair CMainWindow::getMediaInfoArch(void) { if (cpu_features.x64 || (!MEDIAINFO_BIN[i].require_x64)) { - if (HAVE_SSE2(cpu_features) || (!MEDIAINFO_BIN[i].require_sse2)) + if ((HAVE_SSE2(cpu_features) || (!MEDIAINFO_BIN[i].require_sse2)) && (HAVE_AVX2(cpu_features) || (!MEDIAINFO_BIN[i].require_avx2))) { return qMakePair(QString::fromLatin1(MEDIAINFO_BIN[i].arch), MEDIAINFO_BIN[i].checksum); }