Commit 32893715 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

mp3dmod: Link to libmpg123.

parent 0aff95bf
...@@ -14236,6 +14236,7 @@ This is an error since --with-mpg123 was requested." "$LINENO" 5 ;; ...@@ -14236,6 +14236,7 @@ This is an error since --with-mpg123 was requested." "$LINENO" 5 ;;
esac esac
enable_l3codeca_acm=${enable_l3codeca_acm:-no} enable_l3codeca_acm=${enable_l3codeca_acm:-no}
fi fi
test "x$ac_cv_lib_mpg123_mpg123_feed" = xyes || enable_mp3dmod=${enable_mp3dmod:-no}
if test "$ac_cv_header_AL_al_h" = "yes" if test "$ac_cv_header_AL_al_h" = "yes"
then then
......
...@@ -1763,6 +1763,7 @@ fi ...@@ -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], 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.], [libmpg123 ${notice_platform}development files not found (or too old), mp3 codec won't be supported.],
[enable_l3codeca_acm]) [enable_l3codeca_acm])
test "x$ac_cv_lib_mpg123_mpg123_feed" = xyes || enable_mp3dmod=${enable_mp3dmod:-no}
dnl **** Check for OpenAL 1.1 **** dnl **** Check for OpenAL 1.1 ****
if test "$ac_cv_header_AL_al_h" = "yes" if test "$ac_cv_header_AL_al_h" = "yes"
......
MODULE = mp3dmod.dll MODULE = mp3dmod.dll
IMPORTS = dmoguids uuid wmcodecdspuuid IMPORTS = dmoguids uuid wmcodecdspuuid
EXTRAINCL = $(MPG123_CFLAGS)
EXTRALIBS = $(MPG123_LIBS)
C_SRCS = \ C_SRCS = \
mp3dmod.c mp3dmod.c
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
*/ */
#include <stdarg.h> #include <stdarg.h>
#include <mpg123.h>
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"
#define COBJMACROS #define COBJMACROS
...@@ -35,6 +36,7 @@ static HINSTANCE mp3dmod_instance; ...@@ -35,6 +36,7 @@ static HINSTANCE mp3dmod_instance;
struct mp3_decoder { struct mp3_decoder {
IMediaObject IMediaObject_iface; IMediaObject IMediaObject_iface;
LONG ref; LONG ref;
mpg123_handle *mh;
}; };
static inline struct mp3_decoder *impl_from_IMediaObject(IMediaObject *iface) static inline struct mp3_decoder *impl_from_IMediaObject(IMediaObject *iface)
...@@ -80,6 +82,7 @@ static ULONG WINAPI MediaObject_Release(IMediaObject *iface) ...@@ -80,6 +82,7 @@ static ULONG WINAPI MediaObject_Release(IMediaObject *iface)
if (!refcount) if (!refcount)
{ {
mpg123_delete(This->mh);
heap_free(This); heap_free(This);
} }
return refcount; return refcount;
...@@ -264,6 +267,7 @@ static const IMediaObjectVtbl IMediaObject_vtbl = { ...@@ -264,6 +267,7 @@ static const IMediaObjectVtbl IMediaObject_vtbl = {
static HRESULT create_mp3_decoder(REFIID iid, void **obj) static HRESULT create_mp3_decoder(REFIID iid, void **obj)
{ {
struct mp3_decoder *This; struct mp3_decoder *This;
int err;
if (!(This = heap_alloc(sizeof(*This)))) if (!(This = heap_alloc(sizeof(*This))))
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
...@@ -271,6 +275,9 @@ static HRESULT create_mp3_decoder(REFIID iid, void **obj) ...@@ -271,6 +275,9 @@ static HRESULT create_mp3_decoder(REFIID iid, void **obj)
This->IMediaObject_iface.lpVtbl = &IMediaObject_vtbl; This->IMediaObject_iface.lpVtbl = &IMediaObject_vtbl;
This->ref = 0; This->ref = 0;
mpg123_init();
This->mh = mpg123_new(NULL, &err);
return IMediaObject_QueryInterface(&This->IMediaObject_iface, iid, obj); return IMediaObject_QueryInterface(&This->IMediaObject_iface, iid, obj);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment