OSDN Git Service

Updated mpg123 decoder to v1.25.8 (2017-12-02), compiled with GCC 7.2.0.
authorLoRd_MuldeR <mulder2@gmx.de>
Sun, 10 Dec 2017 15:40:48 +0000 (16:40 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Sun, 10 Dec 2017 15:40:48 +0000 (16:40 +0100)
etc/Patches/deprecated/mpg123-Mingw-w64-WinXP-CompatFix.V1.diff [moved from etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V1.diff with 100% similarity]
etc/Patches/mpg123-FlushProgressFix.V1.diff [new file with mode: 0644]
etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V2.txt [new file with mode: 0644]
res/tools/mpg123.avx.exe
res/tools/mpg123.i686.exe
res/tools/mpg123.sse2.exe
src/Config.h
src/Tools.h

diff --git a/etc/Patches/mpg123-FlushProgressFix.V1.diff b/etc/Patches/mpg123-FlushProgressFix.V1.diff
new file mode 100644 (file)
index 0000000..d7fdad7
--- /dev/null
@@ -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 (file)
index 0000000..d9148cd
--- /dev/null
@@ -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 <time.h> 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!
index fd33101..c122f13 100644 (file)
Binary files a/res/tools/mpg123.avx.exe and b/res/tools/mpg123.avx.exe differ
index 79a20ff..7066b9d 100644 (file)
Binary files a/res/tools/mpg123.i686.exe and b/res/tools/mpg123.i686.exe differ
index da763de..081d75d 100644 (file)
Binary files a/res/tools/mpg123.sse2.exe and b/res/tools/mpg123.sse2.exe differ
index 02de90f..3571869 100644 (file)
@@ -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
 
 ///////////////////////////////////////////////////////////////////////////////
index a08d632..1461e9f 100644 (file)
@@ -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"},