Module: wine Branch: master Commit: 328937151e91367b44f084d341ef872013a3984d URL: https://source.winehq.org/git/wine.git/?a=commit;h=328937151e91367b44f084d34...
Author: Zebediah Figura z.figura12@gmail.com Date: Wed May 9 17:31:34 2018 -0500
mp3dmod: Link to libmpg123.
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
configure | 1 + configure.ac | 1 + dlls/mp3dmod/Makefile.in | 2 ++ dlls/mp3dmod/mp3dmod.c | 7 +++++++ 4 files changed, 11 insertions(+)
diff --git a/configure b/configure index c56e341..9e38228 100755 --- a/configure +++ b/configure @@ -14236,6 +14236,7 @@ This is an error since --with-mpg123 was requested." "$LINENO" 5 ;; esac enable_l3codeca_acm=${enable_l3codeca_acm:-no} fi +test "x$ac_cv_lib_mpg123_mpg123_feed" = xyes || enable_mp3dmod=${enable_mp3dmod:-no}
if test "$ac_cv_header_AL_al_h" = "yes" then diff --git a/configure.ac b/configure.ac index d705fd8..4ea26b3 100644 --- a/configure.ac +++ b/configure.ac @@ -1763,6 +1763,7 @@ fi WINE_NOTICE_WITH(mpg123,[test "x$ac_cv_lib_mpg123_mpg123_feed" != xyes -a x"$ac_cv_header_CoreAudio_CoreAudio_h" != xyes], [libmpg123 ${notice_platform}development files not found (or too old), mp3 codec won't be supported.], [enable_l3codeca_acm]) +test "x$ac_cv_lib_mpg123_mpg123_feed" = xyes || enable_mp3dmod=${enable_mp3dmod:-no}
dnl **** Check for OpenAL 1.1 **** if test "$ac_cv_header_AL_al_h" = "yes" diff --git a/dlls/mp3dmod/Makefile.in b/dlls/mp3dmod/Makefile.in index d892751..5bcef48 100644 --- a/dlls/mp3dmod/Makefile.in +++ b/dlls/mp3dmod/Makefile.in @@ -1,5 +1,7 @@ MODULE = mp3dmod.dll IMPORTS = dmoguids uuid wmcodecdspuuid +EXTRAINCL = $(MPG123_CFLAGS) +EXTRALIBS = $(MPG123_LIBS)
C_SRCS = \ mp3dmod.c diff --git a/dlls/mp3dmod/mp3dmod.c b/dlls/mp3dmod/mp3dmod.c index c6cb0ad..0f1f069 100644 --- a/dlls/mp3dmod/mp3dmod.c +++ b/dlls/mp3dmod/mp3dmod.c @@ -19,6 +19,7 @@ */
#include <stdarg.h> +#include <mpg123.h> #include "windef.h" #include "winbase.h" #define COBJMACROS @@ -35,6 +36,7 @@ static HINSTANCE mp3dmod_instance; struct mp3_decoder { IMediaObject IMediaObject_iface; LONG ref; + mpg123_handle *mh; };
static inline struct mp3_decoder *impl_from_IMediaObject(IMediaObject *iface) @@ -80,6 +82,7 @@ static ULONG WINAPI MediaObject_Release(IMediaObject *iface)
if (!refcount) { + mpg123_delete(This->mh); heap_free(This); } return refcount; @@ -264,6 +267,7 @@ static const IMediaObjectVtbl IMediaObject_vtbl = { static HRESULT create_mp3_decoder(REFIID iid, void **obj) { struct mp3_decoder *This; + int err;
if (!(This = heap_alloc(sizeof(*This)))) return E_OUTOFMEMORY; @@ -271,6 +275,9 @@ static HRESULT create_mp3_decoder(REFIID iid, void **obj) This->IMediaObject_iface.lpVtbl = &IMediaObject_vtbl; This->ref = 0;
+ mpg123_init(); + This->mh = mpg123_new(NULL, &err); + return IMediaObject_QueryInterface(&This->IMediaObject_iface, iid, obj); }