Updated mpg123 decoder to v1.25.8 (2017-12-02), compiled with GCC 7.2.0.
This commit is contained in:
parent
1fc86c3bab
commit
4d7b7a766a
23
etc/Patches/mpg123-FlushProgressFix.V1.diff
Normal file
23
etc/Patches/mpg123-FlushProgressFix.V1.diff
Normal file
@ -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);
|
49
etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V2.txt
Normal file
49
etc/Patches/mpg123-Mingw-w64-WinXP-CompatFix.V2.txt
Normal file
@ -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!
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -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"},
|
||||
|
Loading…
Reference in New Issue
Block a user