# HG changeset patch # User rtogni # Date 1208707601 0 # Node ID 586d7ee3c10604421920d2b2273035c0100e27cb # Parent 9dc0b217fce42792090a43a6d05e9aebe76a712d Add support for msn siren audio coced via binary dll sirenacm.dll Based on a patch by Ruuds "roadrunnerswife" "users sourceforge net" Closes bugzilla #963 diff -r 9dc0b217fce4 -r 586d7ee3c106 etc/codecs.conf --- a/etc/codecs.conf Sun Apr 20 00:36:45 2008 +0000 +++ b/etc/codecs.conf Sun Apr 20 16:06:41 2008 +0000 @@ -3319,3 +3319,10 @@ fourcc "MP3 " ; used in .nsv files fourcc "LAME" ; used in mythtv .nuv files driver hwmpa + +audiocodec msnsiren + info "msn siren audio codec" + status working + format 0x28E + driver acm + dll "sirenacm.dll" diff -r 9dc0b217fce4 -r 586d7ee3c106 loader/win32.c --- a/loader/win32.c Sun Apr 20 00:36:45 2008 +0000 +++ b/loader/win32.c Sun Apr 20 16:06:41 2008 +0000 @@ -4046,6 +4046,16 @@ } #endif +/* Fake _initterm_e from msvcr80.dll, needed by sirenacm.dll + * NOTE: If I make this an alias for _initterm, then sirenacm.dll tries to call + other uninmplemented functions; keep this in mind if some future codec needs + a real implementation of this function */ +static int exp_initterm_e(INITTERMFUNC *start, INITTERMFUNC *end) +{ + dbgprintf("_initterm_e(0x%x, 0x%x)\n", start, end); + return 0; +} + static void* exp__dllonexit() { // FIXME extract from WINE @@ -4819,6 +4829,14 @@ return 1; } +// Fake implementation of _decode_pointer from msvcr80.dll, needed by sirenacm.dll +// NOTE: undocumented function, probably the declaration is not right +static int exp_decode_pointer(void *ptr) +{ + dbgprintf("_decode_pointer (0x%08x)\n", ptr); + return 0; +} + struct exports { char name[64]; @@ -5247,6 +5265,17 @@ FF(PathFindFileNameA, -1) }; +struct exports exp_msvcr80[]={ + FF(_CIpow,-1) + FF(_CIsin,-1) + FF(_CIcos,-1) + FF(_CIsqrt,-1) + FF(memset,-1) + FF(_initterm_e, -1) + FF(_initterm, -1) + FF(_decode_pointer, -1) +}; + #define LL(X) \ {#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X}, @@ -5272,6 +5301,7 @@ #endif LL(comdlg32) LL(shlwapi) + LL(msvcr80) }; static WIN_BOOL WINAPI ext_stubs(void)