diff options
author | rtogni <rtogni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-04-20 16:06:41 +0000 |
---|---|---|
committer | rtogni <rtogni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-04-20 16:06:41 +0000 |
commit | 8f569304588990eeed1791d1501011f49af4fd79 (patch) | |
tree | d1047a0e984e1a2b8b756b6ef8553ef5fb309014 | |
parent | 6a11c2c303355d3e32157bdaf875b3518c33f348 (diff) | |
download | mpv-8f569304588990eeed1791d1501011f49af4fd79.tar.bz2 mpv-8f569304588990eeed1791d1501011f49af4fd79.tar.xz |
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
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26473 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | etc/codecs.conf | 7 | ||||
-rw-r--r-- | loader/win32.c | 30 |
2 files changed, 37 insertions, 0 deletions
diff --git a/etc/codecs.conf b/etc/codecs.conf index 8d53e654f9..7d78465e9b 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -3319,3 +3319,10 @@ audiocodec hwmpa 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 --git a/loader/win32.c b/loader/win32.c index 712e24d0ab..2533d45ac5 100644 --- a/loader/win32.c +++ b/loader/win32.c @@ -4046,6 +4046,16 @@ static int exp_initterm(INITTERMFUNC *start, INITTERMFUNC *end) } #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 @@ static WIN_BOOL WINAPI expEnumDisplaySettingsA(LPCSTR name ,DWORD n, 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 @@ struct exports exp_shlwapi[]={ 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 @@ struct libs libraries[]={ #endif LL(comdlg32) LL(shlwapi) + LL(msvcr80) }; static WIN_BOOL WINAPI ext_stubs(void) |