diff --git a/etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V1.diff b/etc/Patches/deprecated/mpg123-Mingw-w64-WinXP-CompatFix.V1.diff similarity index 100% rename from etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V1.diff rename to etc/Patches/deprecated/mpg123-Mingw-w64-WinXP-CompatFix.V1.diff diff --git a/etc/Patches/mpg123-FlushProgressFix.V1.diff b/etc/Patches/mpg123-FlushProgressFix.V1.diff new file mode 100644 index 00000000..d7fdad74 --- /dev/null +++ b/etc/Patches/mpg123-FlushProgressFix.V1.diff @@ -0,0 +1,23 @@ + src/common.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/common.c b/src/common.c +index cb0c092..bc1b440 100644 +--- a/src/common.c ++++ b/src/common.c +@@ -429,6 +429,7 @@ void print_stat(mpg123_handle *fr, long offset, out123_handle *ao, int draw_bar) + else + #endif + fprintf(stderr, "\r%s", line); ++ fflush(stderr); + } + } + /* Check for changed tags here too? */ +@@ -437,6 +438,7 @@ void print_stat(mpg123_handle *fr, long offset, out123_handle *ao, int draw_bar) + if(line) /* Clear the inverse video. */ + fprintf(stderr, "\r%s", line); + fprintf(stderr, "\nICY-META: %s\n", icy); ++ fflush(stderr); + } + if(line && line != linebuf) + free(line); diff --git a/etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V2.txt b/etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V2.txt new file mode 100644 index 00000000..d9148cd2 --- /dev/null +++ b/etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V2.txt @@ -0,0 +1,49 @@ +mpg123 Windows XP compatibility (with MinGW-w64) +================================================ + +The problem: +------------ + +When built with MinGW-w64, mpg123.exe won't run on Windows XP, because it imports "_time32" from "MSVCRT.DLL" + +...a function which simply did **not** exist in "MSVCRT.DLL" on Windows XP or Windows XP x64-Edition! + + +The workaround: +--------------- + +In order to fix this problem, it is **extremely** important to add the following compiler option to your CFLAGS: + +-D__MINGW_USE_VC2005_COMPAT=1 + +This will make your mpg123.exe link against "_time64", which **is** available in "MSVCRT.DLL" on Windows XP. + +(If you think this "fix" makes no sense at all, then please read the next two sections) + + +Remarks: +-------- + +MinGW-w64 links 'time()' from against "_time32", **UNLESS** "__MINGW_USE_VC2005_COMPAT" is defined! + +Note the "UNLESS" in the above sentence - where you certainly would have expected an "IF AND ONLY IF". + +So, confusingly, the "__MINGW_USE_VC2005_COMPAT" define does the **exact opposite** of what its name indicates. + +Also it makes **no** sense at all that this MUST be defined **explicitly** to make binaries work on Windows XP. + +But I am **not** a MinGW-w64 developer, so please don't shoot the messenger ;-) + + +Technical Details: +------------------ + +With **ancient** compilers, such as VC2005, the "time_t" type still used to be a 32-Bit type. + +With those ancient compilers, "time()" would link against "_time". There was **no** "_time32" or "_time64" yet! + +But: With any **contemporary** compiler, the "time_t" type is 64-Bit; and "time()" links against "_time64". + +The MSVCRT export "_time32" is a rather new invention; it is simply an alias for the old 32-Bit "_time" export. + +On Windows XP (including x64-Edition) **only** "_time64" (64-Bit) and the legacy "_time" (32-Bit) existed! diff --git a/res/tools/mpg123.avx.exe b/res/tools/mpg123.avx.exe index fd33101d..c122f13c 100644 Binary files a/res/tools/mpg123.avx.exe and b/res/tools/mpg123.avx.exe differ diff --git a/res/tools/mpg123.i686.exe b/res/tools/mpg123.i686.exe index 79a20ff6..7066b9db 100644 Binary files a/res/tools/mpg123.i686.exe and b/res/tools/mpg123.i686.exe differ diff --git a/res/tools/mpg123.sse2.exe b/res/tools/mpg123.sse2.exe index da763de7..081d75d8 100644 Binary files a/res/tools/mpg123.sse2.exe and b/res/tools/mpg123.sse2.exe differ diff --git a/src/Config.h b/src/Config.h index 02de90f7..3571869a 100644 --- a/src/Config.h +++ b/src/Config.h @@ -35,7 +35,7 @@ #define VER_LAMEXP_MINOR_LO 6 #define VER_LAMEXP_TYPE Beta #define VER_LAMEXP_PATCH 1 -#define VER_LAMEXP_BUILD 2065 +#define VER_LAMEXP_BUILD 2066 #define VER_LAMEXP_CONFG 2002 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/Tools.h b/src/Tools.h index a08d6320..1461e9fb 100644 --- a/src/Tools.h +++ b/src/Tools.h @@ -91,9 +91,9 @@ g_lamexp_tools[] = {"8dfdd602ce830bd9ce6d6a79a9b1c3ea1ba94e4cee6bf0ef1fa03a974e36a7be6dd3caf6e10ca8aae381cf6c9736868d", CPU_TYPE_X86_SSX, "mediainfo.sse2.exe", 1710, ""}, {"3a343ca6c01cdbee61f1736d02c9fd3fd0cea6011d01f7a7d88276ed9bc465c9d9766242bbc216833c50d11a8a6a8f2e", CPU_TYPE_X64_ALL, "mediainfo.x64.exe", 1710, ""}, {"7e6346a057634ff07b2e1f427035324f7f02100cc996425990f87f71d767fce4c7b101588c7d944ba49cb2d7e51c9bdb", CPU_TYPE_ALL_ALL, "mpcdec.exe", 475, ""}, - {"d9183835dff11b71b59051201f42190ab8ba145239de93f4d433a65aeea62a3b753073dc1d91a7179f1f957084ad285d", CPU_TYPE_ALL_GEN, "mpg123.i686.exe", 1258, ""}, - {"0ab5185bf25c33d444cbac65130d73325a6bd2bae56cd14306577aeb019509c04b2e6b74a4a91ae5502105e1038e8535", CPU_TYPE_ALL_SSE, "mpg123.sse2.exe", 1258, ""}, - {"89a2cb12783ebf05b5b7daa8a0e53f9af9e87142397f5ab6b8d16fef9e497f116063c50791c5c154187ca6ed824dd70f", CPU_TYPE_ALL_AVX, "mpg123.avx.exe", 1258, ""}, + {"950b598ad3b724048fb8f7194908d9b9354cf208548211b559695fdf8494cf2c12e440b96c1593647c6907f6e8d8a2dc", CPU_TYPE_ALL_GEN, "mpg123.i686.exe", 1258, ""}, + {"edda8ecc591d54ce6c47d29d81c24599f872f98dae2c83e7f7b72ec2fffc8fefa73a0e52656cbf0d851b5a7ef57a9bfa", CPU_TYPE_ALL_SSE, "mpg123.sse2.exe", 1258, ""}, + {"80b211712cd3c2891455a75e02b21e3cff7c4e0627e491cd5ce5263777d5a28bb9886e58002344eefe48b62a2a1587af", CPU_TYPE_ALL_AVX, "mpg123.avx.exe", 1258, ""}, {"dda88fb66a80c362dfa367d07265eee3dcf8ee959191fc7685163fdee694ece7d84000065de217942749b6859d33fa84", CPU_TYPE_ALL_ALL, "mcat.exe", 101, "" }, {"f1f2ea5c9e5539620b706e7af68e543bf7a731afb06ccce3815ab34dad64d697e4d6ffcd187a396619b8b52efe7edf88", CPU_TYPE_ALL_ALL, "oggdec.exe", 1101, ""}, {"245181321625445ac42fce31d64bf03872e77e2d0dd3c19d6c17ca2771354f096a6040827dd6d00ffd7342c7dd26168e", CPU_TYPE_X86_GEN, "oggenc2.i686.exe", 288135603, "2015"},