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);
}