From 2ad9d69a6790d30933eb3d76d1cbe6216cb02ea0 Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Sun, 29 Dec 2019 17:00:10 +0300 Subject: [PATCH] external libs: updated libmpg123, rebuilt --- VisualC/external/include/mpg123.h | 9 +- VisualC/external/lib/x64/libmpg123-0.dll | Bin 172032 -> 172032 bytes VisualC/external/lib/x86/libmpg123-0.dll | Bin 167936 -> 167936 bytes .../Versions/A/Headers/mpg123.h | 15 +- .../mpg123.framework/Versions/A/mpg123 | Bin 422328 -> 422368 bytes external/libmpg123/Makefile.in | 9 +- external/libmpg123/NEWS | 4 +- external/libmpg123/NEWS.libmpg123 | 4 +- external/libmpg123/build/mkinstalldirs | 162 ------------------ external/libmpg123/configure | 19 +- external/libmpg123/configure.ac | 15 +- external/libmpg123/dylibversion.patch | 4 +- external/libmpg123/m4/libtool.m4 | 6 +- external/libmpg123/src/Makefile.am | 2 +- external/libmpg123/src/Makefile.in | 8 +- external/libmpg123/src/OS2_MSVC/mpg123.h | 8 +- external/libmpg123/src/lfs_alias.c | 6 + external/libmpg123/src/lfs_wrap.c | 17 ++ external/libmpg123/src/libmpg123.c | 25 +++ external/libmpg123/src/mpg123.h.in | 6 + external/libmpg123/src/stringbuf.c | 6 + 21 files changed, 115 insertions(+), 210 deletions(-) delete mode 100755 external/libmpg123/build/mkinstalldirs diff --git a/VisualC/external/include/mpg123.h b/VisualC/external/include/mpg123.h index efb1fae4..f5c5b66d 100644 --- a/VisualC/external/include/mpg123.h +++ b/VisualC/external/include/mpg123.h @@ -12,7 +12,7 @@ /* A macro to check at compile time which set of API functions to expect. This should be incremented at least each time a new symbol is added to the header. */ -#define MPG123_API_VERSION 41 +#define MPG123_API_VERSION 42 /* These aren't actually in use... seems to work without using libtool. */ #ifdef BUILD_MPG123_DLL @@ -28,6 +28,7 @@ #endif #endif +/* This is for Visual Studio, so this header works as distributed in the binary downloads */ #if defined(_MSC_VER) && !defined(MPG123_DEF_SSIZE_T) #define MPG123_DEF_SSIZE_T #include @@ -85,6 +86,7 @@ typedef ptrdiff_t ssize_t; #define mpg123_set_index MPG123_LARGENAME(mpg123_set_index) #define mpg123_position MPG123_LARGENAME(mpg123_position) #define mpg123_length MPG123_LARGENAME(mpg123_length) +#define mpg123_framelength MPG123_LARGENAME(mpg123_framelength) #define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize) #define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader) #define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle) @@ -683,6 +685,7 @@ MPG123_EXPORT int mpg123_set_index(mpg123_handle *mh, off_t *offsets, off_t step /** Get information about current and remaining frames/seconds. * WARNING: This function is there because of special usage by standalone mpg123 and may be removed in the final version of libmpg123! + * broken for various cases (p.ex. 24 bit output). Do never use. * You provide an offset (in frames) from now and a number of output bytes * served by libmpg123 but not yet played. You get the projected current frame * and seconds, as well as the remaining frames/seconds. This does _not_ care @@ -811,6 +814,10 @@ MPG123_EXPORT size_t mpg123_safe_buffer(void); */ MPG123_EXPORT int mpg123_scan(mpg123_handle *mh); +/** Return, if possible, the full (expected) length of current track in frames. + * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ +MPG123_EXPORT off_t mpg123_framelength(mpg123_handle *mh); + /** Return, if possible, the full (expected) length of current track in samples. * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ MPG123_EXPORT off_t mpg123_length(mpg123_handle *mh); diff --git a/VisualC/external/lib/x64/libmpg123-0.dll b/VisualC/external/lib/x64/libmpg123-0.dll index 545e52d05d2dcbeea3fea7e513b44ca6170c9de1..0498ec547dc5a094dfa62604cdf6a60df30fa422 100644 GIT binary patch delta 10598 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 diff --git a/VisualC/external/lib/x86/libmpg123-0.dll b/VisualC/external/lib/x86/libmpg123-0.dll index bbfefc4601d3a30797420d2668f0dd932c6cc117..c0bbca24fbfe4c6f5fa669e236add7df63f2be98 100644 GIT binary patch delta 5628 zcmai&30M?Ywt(-sG|)=aatUHY1tf97rMjxCtGcQe6vPc>QQIYmL}Nt6hzU3`8kPaf zAfrQ4#?Ck{B#KKC4W`t_Xs{zjjFUtX(CEYs-0;PFxm^Wu``@ghj$xAzZwxX>gZ9zDXbNl9ZwE!v*B5Db2ZaQ{<4@SLKxZ!0 z&YKb_eP+KJZH|GPYO+}XkGjk}k}lY%9y4=vUY;5t48guRL8dvm>dOL8l{{^u@CBvu z3$-jM24K6k+G^<9o=zpC_^{FCd!TMge5w80QwUix-jL!e)4GidZ5J{#NiQ2yd{dKD z!4(h1>g%pp_)**EIshSE#{J&7-8iju%93^+AH|`wL&j2XUdKtkzi1t2u7i##!~a>= zd4lhXws+PNfFr6f+d@sT+Wgs@AigpI7?5$m_us!p0SI;rsjVe*2?J=J3fDQc~(!BU^11J!6*co>)( zoG#L-^gMpobiuFd-{DtLYce+LR8r%Yt3Cf>vQxb|r^i&Hdud-2tQ)NGH)8ch!8N!f zNK<}MYvUe&F;FiqC~B?v*k7c2F$0VH36p!PsFgW_&+A345#hk(%0;a?t?G=-eU!bT zhR;pMg|KAqbiHtPE;mpQsJ^%cbI=>t7q_6);FtEJl+&tfAL-gQ)skh0N;NlYm{Cu# zegvshKg+T}wR$(pYAoF8uc}ssc|&^XX*6Y&ewP4j*1>L8a1kg^TI>* zwCan!=va@rzPJG;=7{>qJX5GXuJy&aXi;%dm&_tRWZV8PtDV_@ zqlG=S@$+j!Xu=;f@Cp8FYJ6Ep_Dmu^URlLZk_(p zH++HisPJVPbbBWuzR$Fr;t_%L%{iLqPagu!>aM=Hd`L&RJ0a!q(M)m{arwShbCyTZ z_TAM(%g4i~YS;3iuw0ERchWJTYDxJuS`@C$|8q_N9MdlTr4PWzT5H9_KpHnyd${^C zP)DHF`0gyAb317x)_g(>atFg5yGuk-JRI{!YYtI?0iI^J9N z>juI+L;#xwBRDh0QN=Amu1;@m!6t3drOkS6Vsy9iiP4OnW)?|F%?fb&Qq{k2=m!JU zJNQl2o|XOR+3jk4<)9uGG)PBI{?0Od>g-Uo57^+T(^&16`A&m7Ev>a9KTiawnLyrKctVJr}BWy4*v%aXO8{i|Xie9{5Ow^S9~V zE?6I`g-sZZ;c-Mu!H)>sUF%_KMVudpmn_bI)!Mp?CPg5SB?Ki3(Ya= zcIw1ywa{Mc>O->$>a^>h(su*>W%TKkO_+qUvqgQWbt#VG<<^muexnX*>kAju z6bWzQ0`vBVS?g}_a6Wvn*w!sIU01D#((mW{vu$00j_cwv?5peD$LC_4t+}Xi! znEqtbidg%vop*C z-Dej#NsZ?{o4djr0A=pzr{M?a?gXp_6np&+VK?hf> zDQ!eD-7KU^htUC=V3z&=zd=Z>`2MfKz;NP9<8#c@}*(bX%vk)Enh3S8Mj?23; zBYisWeZJ1U&IIL#Xwz#6hdVzDr5c1rDyv1zC)cm-wCq} z^HB0!bwY0#HahBwD?ALd(ZYrnwiMTy4TX=}+I)j_P z_+ij!=pTt5`wxeA3^Z?>`#=Ij(UfiO%Lx!eqqn)4k-)<*p7@b)HvoQfTgSqPF1t1n zav?36ZR&KsgZ~$4qo-ml%n5ffKGY3E9F&|gX~o3o z#8jM|zq(5%18*zsqE8Of)B__7PtAe}D@vmAN=I-_{1&3Cez%*jVwJx>b;UA*H!@Vm zJng_ z8(x~Ti~0hbu^$qq;sjwLLV?M-N0?^3FL^H!rlA)w5d`ZFq0Wb=eKat!Mqrv72vc~A zFqJXDBzFe)Py@BPV-3_;kc>B?h_mRe2QZDlp~dHf$+$w8oJe4*4ZwK6La#TFekeZ$ zOa*$1Ku@vgshI($VFzKV&k%+|`wX;i@M1KVkqBT|v`1KDw(KIwF;(gS`5Yo7T5LUry zMjBA|Vtqw1)>XL^MpMza7ENVz;Vv3Ydk$=SC~<=75kv3G(I7UHcvVmr zA5n>sqOaJk?%`u-R6!+X{RvW!oI|c5cah+6l=MahA+bmjG6R{96e6pTDr6T@i+qio zL43$v#4w(cPDpQL2r>*wLS8^}k>yC$cv?VeQ8yp3!`b|XiT6Ua5>J`$LU9V0P_14%+Mka@^rgb*N<1P}whlmxji zjHTP)c~5B~O{78DvtOQ*o9Q_;p2l_dL}$>nz6IgfUKPw1$zrp_TB7Wu>|XmVCsyJ- zX5)ilyRl(xILook>|M5neZ&%z!DKW^Tn4w0dyRX8E9T0$zi{txYq?5p6StN7h?~UQ zghU}(m?%sU(u54*MIlqj7IK7K;Wc5YP$+yN^s{KTpKMlpPJunc;dYQ}Trk+#aMLVP ziD`}LDQ++~9y^%NujD`Gy?mIEBy1GU3iB5v=ZMdV%anE6Q5-%Y( zv>(sD!@kQM<1d*92w|dC%oUG{P2zJ>gmsv8snxC2D0h@3TaN8R+i?3V`+7TR zBn00x$SBiX(P^k25nK{Z z*Izl6U&kNdeLQ1%1}A*BrQkD5z2&;4v$#X75zmSN(mv}K)@xQq&Xiw~SIPV3J&ITP zQ3Aeix^pqy)0SSAXDx#*1%hR><%s3D<%T6l>>Sv{U*@`d(_1?nuGbPS)qFBdtl+>DE`RCD!HE4c0x@ zgVt}YKI>g;n>9p!TJ9$(DfYeW7i!t;kkp+hVifMy;@~ z!BP0t9_om9jB_k;tafa39Kik1<{0Q)sE=y$ld0*z_BRQp9MjvT^`;%BM$-+`ucjC- zi(AZ9aRs}%dhR$E#CPHQ@B%-ApTcMJg}Ci%`3Am`Z{|q`kOiX$DnBst*U1rD}=jl<2`lRIJl(R|m;3R^9gEN_an;%q5hc}aO$S)}AE%aoPM zYGu8$8PnUN)GGA_j$@89jvpN9&c)6qCn*H-B6ijeJ9~xwhv|{28<)uya;v!axsCi@ z{#(9}Su~F|Pc=^$UKPrPuZ63^10mQ_Yw0Myh8yj;cv<{Kd?*G>U2*ybNTL)cB}tjm z0qL+cTv=%I+Iu_oe;)AyMvm)yzOn#F7(T~xDco6cqP13zu&uRYMfH=cKIi_<{lW$E zJ$W-fhJO)9rio88=bNj{44!2xg-ya|!g1lI(9V);Id8dbF^Z9*D5i+>#na+U>9MrV zzST~=KqjKgCi89ceW6u2Abu&{#GTed;-pap(o88|x+=M>ui+wUkDKmK@_N}Le=T2= z18~qz;zpsio;d$wZF6kj+0yJo9pCG7+W-V_%%sFrZ2nB>FAbG4acTXiTvu)>+4fiM zOY|ff!GEyDvt!v*b{adA&0@{G!Vkw(^c^+=M>27z`Iz98u2@$o`y2-y_0Df}=gm(H zhqI&DGWIRj&A!im%zD@_*rV(*_IvgcdxO2lhM2mWdYPQ26w`LoQPU~Y6_dwXMq`8i E3kWxD4gdfE delta 5440 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 diff --git a/Xcode/Frameworks/mpg123.framework/Versions/A/Headers/mpg123.h b/Xcode/Frameworks/mpg123.framework/Versions/A/Headers/mpg123.h index 61efcf1f..f5c5b66d 100644 --- a/Xcode/Frameworks/mpg123.framework/Versions/A/Headers/mpg123.h +++ b/Xcode/Frameworks/mpg123.framework/Versions/A/Headers/mpg123.h @@ -12,7 +12,7 @@ /* A macro to check at compile time which set of API functions to expect. This should be incremented at least each time a new symbol is added to the header. */ -#define MPG123_API_VERSION 41 +#define MPG123_API_VERSION 42 /* These aren't actually in use... seems to work without using libtool. */ #ifdef BUILD_MPG123_DLL @@ -28,6 +28,13 @@ #endif #endif +/* This is for Visual Studio, so this header works as distributed in the binary downloads */ +#if defined(_MSC_VER) && !defined(MPG123_DEF_SSIZE_T) +#define MPG123_DEF_SSIZE_T +#include +typedef ptrdiff_t ssize_t; +#endif + #ifndef MPG123_NO_CONFIGURE /* Enable use of this file without configure. */ #include #include @@ -79,6 +86,7 @@ #define mpg123_set_index MPG123_LARGENAME(mpg123_set_index) #define mpg123_position MPG123_LARGENAME(mpg123_position) #define mpg123_length MPG123_LARGENAME(mpg123_length) +#define mpg123_framelength MPG123_LARGENAME(mpg123_framelength) #define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize) #define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader) #define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle) @@ -677,6 +685,7 @@ MPG123_EXPORT int mpg123_set_index(mpg123_handle *mh, off_t *offsets, off_t step /** Get information about current and remaining frames/seconds. * WARNING: This function is there because of special usage by standalone mpg123 and may be removed in the final version of libmpg123! + * broken for various cases (p.ex. 24 bit output). Do never use. * You provide an offset (in frames) from now and a number of output bytes * served by libmpg123 but not yet played. You get the projected current frame * and seconds, as well as the remaining frames/seconds. This does _not_ care @@ -805,6 +814,10 @@ MPG123_EXPORT size_t mpg123_safe_buffer(void); */ MPG123_EXPORT int mpg123_scan(mpg123_handle *mh); +/** Return, if possible, the full (expected) length of current track in frames. + * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ +MPG123_EXPORT off_t mpg123_framelength(mpg123_handle *mh); + /** Return, if possible, the full (expected) length of current track in samples. * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ MPG123_EXPORT off_t mpg123_length(mpg123_handle *mh); diff --git a/Xcode/Frameworks/mpg123.framework/Versions/A/mpg123 b/Xcode/Frameworks/mpg123.framework/Versions/A/mpg123 index e88a83de906a4d4ddd1fb7be6cde28b1d389ee48..dda3966591dbb5d293e442817728a7582dfa44c6 100755 GIT binary patch delta 38866 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 diff --git a/external/libmpg123/Makefile.in b/external/libmpg123/Makefile.in index 23cae1b0..e096e3b1 100644 --- a/external/libmpg123/Makefile.in +++ b/external/libmpg123/Makefile.in @@ -82,10 +82,9 @@ subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ - $(top_srcdir)/build/mkinstalldirs $(srcdir)/libmpg123.pc.in \ - COPYING TODO build/compile build/config.guess build/config.sub \ - build/depcomp build/install-sh build/missing \ - build/mkinstalldirs build/ltmain.sh \ + $(srcdir)/libmpg123.pc.in COPYING TODO build/compile \ + build/config.guess build/config.sub build/depcomp \ + build/install-sh build/missing build/ltmain.sh \ $(top_srcdir)/build/compile $(top_srcdir)/build/config.guess \ $(top_srcdir)/build/config.sub $(top_srcdir)/build/install-sh \ $(top_srcdir)/build/ltmain.sh $(top_srcdir)/build/missing @@ -98,7 +97,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/build/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = libmpg123.pc CONFIG_CLEAN_VPATH_FILES = diff --git a/external/libmpg123/NEWS b/external/libmpg123/NEWS index 2fca47c8..d14c02e2 100644 --- a/external/libmpg123/NEWS +++ b/external/libmpg123/NEWS @@ -1,4 +1,4 @@ -1.22.x-sezero (libmpg123 updates) +1.22.x-sezero (changes made by sezero) --- - Added nasm versions of x86 asm sources. - Open Watcom and MSVC6 compatibility. @@ -8,6 +8,8 @@ 1.22.x-sezero (backports) --- +- Make mpg123_resize_string() terminate the string if shrinking (fill now + limited to new size). - Reset the flag for having a frame to decode before trying to parse a new one. This prevents very unkind behaviour (crashes) when combinging mpg123_scan() with decoding later on for damaged diff --git a/external/libmpg123/NEWS.libmpg123 b/external/libmpg123/NEWS.libmpg123 index b998f30f..301b03ba 100644 --- a/external/libmpg123/NEWS.libmpg123 +++ b/external/libmpg123/NEWS.libmpg123 @@ -1,6 +1,8 @@ Changes in libmpg123 libtool interface versions... -(backports from 42.0.42) +42.0.42 + - added mpg123_framelength() + Now mpg123_position() is truly obsolete! - hardened string API to not crash if given NULL pointers (except mpg123_init_string()) - equalizer feature optional diff --git a/external/libmpg123/build/mkinstalldirs b/external/libmpg123/build/mkinstalldirs deleted file mode 100755 index 55d537f8..00000000 --- a/external/libmpg123/build/mkinstalldirs +++ /dev/null @@ -1,162 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy - -scriptversion=2009-04-28.21; # UTC - -# Original author: Noah Friedman -# Created: 1993-05-16 -# Public domain. -# -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' -IFS=" "" $nl" -errstatus=0 -dirmode= - -usage="\ -Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... - -Create each directory DIR (with mode MODE, if specified), including all -leading file name components. - -Report bugs to ." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" - exit $? - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --version) - echo "$0 $scriptversion" - exit $? - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and -# mkdir -p a/c at the same time, both will detect that a is missing, -# one will create a, then the other will try to create a and die with -# a "File exists" error. This is a problem when calling mkinstalldirs -# from a parallel make. We use --version in the probe to restrict -# ourselves to GNU mkdir, which is thread-safe. -case $dirmode in - '') - if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - else - # On NextStep and OpenStep, the 'mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because '.' already - # exists. - test -d ./-p && rmdir ./-p - test -d ./--version && rmdir ./--version - fi - ;; - *) - if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && - test ! -d ./--version; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - else - # Clean up after NextStep and OpenStep mkdir. - for d in ./-m ./-p ./--version "./$dirmode"; - do - test -d $d && rmdir $d - done - fi - ;; -esac - -for file -do - case $file in - /*) pathcomp=/ ;; - *) pathcomp= ;; - esac - oIFS=$IFS - IFS=/ - set fnord $file - shift - IFS=$oIFS - - for d - do - test "x$d" = x && continue - - pathcomp=$pathcomp$d - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr= - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp=$pathcomp/ - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/external/libmpg123/configure b/external/libmpg123/configure index 38eed9ce..b5d48b1d 100755 --- a/external/libmpg123/configure +++ b/external/libmpg123/configure @@ -2595,8 +2595,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -API_VERSION=41 -LIB_PATCHLEVEL=2 +API_VERSION=42 +LIB_PATCHLEVEL=0 LIBMPG123_VERSION=$API_VERSION:$LIB_PATCHLEVEL:$API_VERSION @@ -2655,7 +2655,6 @@ fi MAINT=$MAINTAINER_MODE_TRUE -cflags_save="$CFLAGS" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 @@ -2727,7 +2726,6 @@ IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -CFLAGS="$cflags_save" am__api_version='1.14' @@ -3367,7 +3365,6 @@ if test "x$all_static" = xyes; then $as_echo "$as_me: WARNING: Use -static in LDFLAGS for all-static linking! Your compiler may blow up on that -all-static. " >&2;} fi -cflags_save="$CFLAGS" DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" @@ -5406,7 +5403,6 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -CFLAGS="$cflags_save" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } @@ -11130,7 +11126,7 @@ _LT_EOF cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes file_list_spec='@' ;; @@ -11985,7 +11981,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes file_list_spec='@' ;; @@ -15989,13 +15985,6 @@ $as_echo "no" >&6; } ;; esac -case $host in - x86_64-apple-darwin*) - ADD_CFLAGS="$ADD_CFLAGS -mmacosx-version-min=10.5" - ADD_LDFLAGS="$ADD_LDFLAGS -mmacosx-version-min=10.5" - ;; -esac - # Use yasm instead of the default assembler for AVX sources if test "x$use_yasm_for_avx" = "xyes"; then case $host_os in diff --git a/external/libmpg123/configure.ac b/external/libmpg123/configure.ac index 8cc38b6c..2f027c21 100644 --- a/external/libmpg123/configure.ac +++ b/external/libmpg123/configure.ac @@ -10,8 +10,8 @@ AC_PREREQ(2.57) dnl ############# Initialisation AC_INIT([mpg123], [1.22.4], [mpg123-devel@lists.sourceforge.net]) dnl Increment API_VERSION when the API gets changes (new functions). -API_VERSION=41 -LIB_PATCHLEVEL=2 +API_VERSION=42 +LIB_PATCHLEVEL=0 dnl Since we want to be backwards compatible, both sides get set to API_VERSION. LIBMPG123_VERSION=$API_VERSION:$LIB_PATCHLEVEL:$API_VERSION AC_SUBST(LIBMPG123_VERSION) @@ -21,9 +21,7 @@ AC_CONFIG_SRCDIR(src/libmpg123.c) AC_CONFIG_AUX_DIR(build) AC_CONFIG_MACRO_DIR([m4]) AM_MAINTAINER_MODE -cflags_save="$CFLAGS" AC_CANONICAL_HOST -CFLAGS="$cflags_save" dnl Version 1.7 of automake is recommended AM_INIT_AUTOMAKE(1.7) @@ -75,12 +73,10 @@ if test "x$all_static" = xyes; then AC_MSG_WARN( Use -static in LDFLAGS for all-static linking! Your compiler may blow up on that -all-static. ) fi -cflags_save="$CFLAGS" AM_PROG_AS AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CPP -CFLAGS="$cflags_save" AC_PROG_INSTALL dnl "Checking for egrep is broken after removal of libltdl stuff... checks use $EGREP, so searching it here." AC_PROG_EGREP @@ -1271,13 +1267,6 @@ dnl Not disabling buffer for float mode... check that this is OK now! ;; esac -case $host in - x86_64-apple-darwin*) - ADD_CFLAGS="$ADD_CFLAGS -mmacosx-version-min=10.5" - ADD_LDFLAGS="$ADD_LDFLAGS -mmacosx-version-min=10.5" - ;; -esac - # Use yasm instead of the default assembler for AVX sources if test "x$use_yasm_for_avx" = "xyes"; then case $host_os in diff --git a/external/libmpg123/dylibversion.patch b/external/libmpg123/dylibversion.patch index 2ad47253..e467afd9 100644 --- a/external/libmpg123/dylibversion.patch +++ b/external/libmpg123/dylibversion.patch @@ -1,8 +1,8 @@ link the osx dylib with compatibility version set to 25.0 (corresponds to MPG123_API_VERSION 24) ---- mpg123-1.22.4/build/ltmain.sh-2.4.6.orig -+++ mpg123-1.22.4-edit/build/ltmain.sh +--- mpg123-1.22.4/build/ltmain.sh~ ++++ mpg123-1.22.4/build/ltmain.sh @@ -8882,15 +8882,15 @@ # Darwin ld doesn't like 0 for these options... func_arith $current + 1 diff --git a/external/libmpg123/m4/libtool.m4 b/external/libmpg123/m4/libtool.m4 index 43c6218a..e83b19cc 100644 --- a/external/libmpg123/m4/libtool.m4 +++ b/external/libmpg123/m4/libtool.m4 @@ -5166,7 +5166,7 @@ _LT_EOF cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; @@ -5872,7 +5872,7 @@ _LT_EOF cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; @@ -6742,7 +6742,7 @@ if test yes != "$_lt_caught_CXX_error"; then cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; diff --git a/external/libmpg123/src/Makefile.am b/external/libmpg123/src/Makefile.am index 97bac942..753e81f1 100644 --- a/external/libmpg123/src/Makefile.am +++ b/external/libmpg123/src/Makefile.am @@ -4,7 +4,7 @@ ## see COPYING and AUTHORS files in distribution or http://mpg123.org ## initially written by Nicholas J. Humfrey -#AM_CFLAGS = @AUDIO_CFLAGS@ +#AM_CFLAGS = #AM_LDFLAGS = AM_CPPFLAGS = -I$(top_srcdir)/src diff --git a/external/libmpg123/src/Makefile.in b/external/libmpg123/src/Makefile.in index 9c595fb4..872a3e1e 100644 --- a/external/libmpg123/src/Makefile.in +++ b/external/libmpg123/src/Makefile.in @@ -82,8 +82,8 @@ host_triplet = @host@ EXTRA_PROGRAMS = testcpu$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/config.h.in $(top_srcdir)/build/mkinstalldirs \ - $(srcdir)/mpg123.h.in $(top_srcdir)/build/depcomp + $(srcdir)/config.h.in $(srcdir)/mpg123.h.in \ + $(top_srcdir)/build/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -91,7 +91,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/build/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = mpg123.h CONFIG_CLEAN_VPATH_FILES = @@ -350,7 +350,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -#AM_CFLAGS = @AUDIO_CFLAGS@ +#AM_CFLAGS = #AM_LDFLAGS = AM_CPPFLAGS = -I$(top_srcdir)/src EXTRA_DIST = mpg123.h.in diff --git a/external/libmpg123/src/OS2_MSVC/mpg123.h b/external/libmpg123/src/OS2_MSVC/mpg123.h index 15019b8c..f5c5b66d 100644 --- a/external/libmpg123/src/OS2_MSVC/mpg123.h +++ b/external/libmpg123/src/OS2_MSVC/mpg123.h @@ -12,7 +12,7 @@ /* A macro to check at compile time which set of API functions to expect. This should be incremented at least each time a new symbol is added to the header. */ -#define MPG123_API_VERSION 41 +#define MPG123_API_VERSION 42 /* These aren't actually in use... seems to work without using libtool. */ #ifdef BUILD_MPG123_DLL @@ -86,6 +86,7 @@ typedef ptrdiff_t ssize_t; #define mpg123_set_index MPG123_LARGENAME(mpg123_set_index) #define mpg123_position MPG123_LARGENAME(mpg123_position) #define mpg123_length MPG123_LARGENAME(mpg123_length) +#define mpg123_framelength MPG123_LARGENAME(mpg123_framelength) #define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize) #define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader) #define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle) @@ -684,6 +685,7 @@ MPG123_EXPORT int mpg123_set_index(mpg123_handle *mh, off_t *offsets, off_t step /** Get information about current and remaining frames/seconds. * WARNING: This function is there because of special usage by standalone mpg123 and may be removed in the final version of libmpg123! + * broken for various cases (p.ex. 24 bit output). Do never use. * You provide an offset (in frames) from now and a number of output bytes * served by libmpg123 but not yet played. You get the projected current frame * and seconds, as well as the remaining frames/seconds. This does _not_ care @@ -812,6 +814,10 @@ MPG123_EXPORT size_t mpg123_safe_buffer(void); */ MPG123_EXPORT int mpg123_scan(mpg123_handle *mh); +/** Return, if possible, the full (expected) length of current track in frames. + * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ +MPG123_EXPORT off_t mpg123_framelength(mpg123_handle *mh); + /** Return, if possible, the full (expected) length of current track in samples. * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ MPG123_EXPORT off_t mpg123_length(mpg123_handle *mh); diff --git a/external/libmpg123/src/lfs_alias.c b/external/libmpg123/src/lfs_alias.c index 41ff58f4..45cb53d6 100644 --- a/external/libmpg123/src/lfs_alias.c +++ b/external/libmpg123/src/lfs_alias.c @@ -196,6 +196,12 @@ int attribute_align_arg ALIAS_NAME(mpg123_position)( mpg123_handle *mh, lfs_alia return NATIVE_NAME(mpg123_position)(mh, frame_offset, buffered_bytes, current_frame, frames_left, current_seconds, seconds_left); } +lfs_alias_t NATIVE_NAME(mpg123_framelength)(mpg123_handle *mh); +lfs_alias_t attribute_align_arg ALIAS_NAME(mpg123_framelength)(mpg123_handle *mh) +{ + return NATIVE_NAME(mpg123_framelength)(mh); +} + lfs_alias_t NATIVE_NAME(mpg123_length)(mpg123_handle *mh); lfs_alias_t attribute_align_arg ALIAS_NAME(mpg123_length)(mpg123_handle *mh) { diff --git a/external/libmpg123/src/lfs_wrap.c b/external/libmpg123/src/lfs_wrap.c index 52fc8058..7545b77b 100644 --- a/external/libmpg123/src/lfs_wrap.c +++ b/external/libmpg123/src/lfs_wrap.c @@ -467,6 +467,23 @@ int attribute_align_arg mpg123_position(mpg123_handle *mh, long frame_offset, lo return MPG123_OK; } +#undef mpg123_framelength +/* off_t mpg123_framelength(mpg123_handle *mh); */ +long attribute_align_arg mpg123_framelength(mpg123_handle *mh) +{ + long val; + off_t largeval; + + largeval = MPG123_LARGENAME(mpg123_framelength)(mh); + val = largeval; + if(val != largeval) + { + mh->err = MPG123_LFS_OVERFLOW; + return MPG123_ERR; + } + return val; +} + #undef mpg123_length /* off_t mpg123_length(mpg123_handle *mh); */ long attribute_align_arg mpg123_length(mpg123_handle *mh) diff --git a/external/libmpg123/src/libmpg123.c b/external/libmpg123/src/libmpg123.c index 18d000f8..31a9189a 100644 --- a/external/libmpg123/src/libmpg123.c +++ b/external/libmpg123/src/libmpg123.c @@ -1312,6 +1312,31 @@ int attribute_align_arg mpg123_set_filesize(mpg123_handle *mh, off_t size) return MPG123_OK; } +off_t attribute_align_arg mpg123_framelength(mpg123_handle *mh) +{ + int b; + if(mh == NULL) + return MPG123_ERR; + b = init_track(mh); + if(b<0) + return b; + if(mh->track_frames > 0) + return mh->track_frames; + if(mh->rdat.filelen > 0) + { /* A bad estimate. Ignoring tags 'n stuff. */ + double bpf = mh->mean_framesize > 0. + ? mh->mean_framesize + : compute_bpf(mh); + return (off_t)((double)(mh->rdat.filelen)/bpf+0.5); + } + /* Last resort: No view of the future, can at least count the frames that + were already parsed. */ + if(mh->num > -1) + return mh->num+1; + /* Giving up. */ + return MPG123_ERR; +} + off_t attribute_align_arg mpg123_length(mpg123_handle *mh) { int b; diff --git a/external/libmpg123/src/mpg123.h.in b/external/libmpg123/src/mpg123.h.in index f9a8c271..5efda9b1 100644 --- a/external/libmpg123/src/mpg123.h.in +++ b/external/libmpg123/src/mpg123.h.in @@ -86,6 +86,7 @@ typedef ptrdiff_t ssize_t; #define mpg123_set_index MPG123_LARGENAME(mpg123_set_index) #define mpg123_position MPG123_LARGENAME(mpg123_position) #define mpg123_length MPG123_LARGENAME(mpg123_length) +#define mpg123_framelength MPG123_LARGENAME(mpg123_framelength) #define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize) #define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader) #define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle) @@ -684,6 +685,7 @@ MPG123_EXPORT int mpg123_set_index(mpg123_handle *mh, off_t *offsets, off_t step /** Get information about current and remaining frames/seconds. * WARNING: This function is there because of special usage by standalone mpg123 and may be removed in the final version of libmpg123! + * broken for various cases (p.ex. 24 bit output). Do never use. * You provide an offset (in frames) from now and a number of output bytes * served by libmpg123 but not yet played. You get the projected current frame * and seconds, as well as the remaining frames/seconds. This does _not_ care @@ -812,6 +814,10 @@ MPG123_EXPORT size_t mpg123_safe_buffer(void); */ MPG123_EXPORT int mpg123_scan(mpg123_handle *mh); +/** Return, if possible, the full (expected) length of current track in frames. + * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ +MPG123_EXPORT off_t mpg123_framelength(mpg123_handle *mh); + /** Return, if possible, the full (expected) length of current track in samples. * \return length >= 0 or MPG123_ERR if there is no length guess possible. */ MPG123_EXPORT off_t mpg123_length(mpg123_handle *mh); diff --git a/external/libmpg123/src/stringbuf.c b/external/libmpg123/src/stringbuf.c index 17e81244..a40f2040 100644 --- a/external/libmpg123/src/stringbuf.c +++ b/external/libmpg123/src/stringbuf.c @@ -58,6 +58,12 @@ int attribute_align_arg mpg123_resize_string(mpg123_string* sb, size_t new) { sb->p = t; sb->size = new; + if(sb->size < sb->fill) + { + // Cut short the existing data, properly. + sb->fill = sb->size; + sb->p[sb->fill-1] = 0; + } return 1; } else return 0;