# HG changeset patch # User rtogni # Date 1149532861 0 # Node ID d444160ee47cdec45a0007a89f24d81bd8a8f803 # Parent fc3f252780219a0c6e0487133b3d985c8308018f Support WVC1 decoding via dmo binary codec wvc1dmod.dll diff -r fc3f25278021 -r d444160ee47c etc/codecs.conf --- a/etc/codecs.conf Mon Jun 05 11:45:33 2006 +0000 +++ b/etc/codecs.conf Mon Jun 05 18:41:01 2006 +0000 @@ -777,6 +777,15 @@ out YUY2,UYVY ; out BGR32,BGR24,BGR16 ;,BGR15 +videocodec wmvvc1dmo + info "Windows Media Video (VC-1) Advanced Profile Decoder" + status working + fourcc WVC1 + driver dmo + dll "wvc1dmod.dll" + guid 0xc9bfbccf, 0xe60e, 0x4588, 0xa3, 0xdf, 0x5a, 0x03, 0xb1, 0xfd, 0x95, 0x85 + out YV12,YUY2 + videocodec wmsdmod info "Windows Media Screen Codec 2" status working diff -r fc3f25278021 -r d444160ee47c loader/win32.c --- a/loader/win32.c Mon Jun 05 11:45:33 2006 +0000 +++ b/loader/win32.c Mon Jun 05 18:41:01 2006 +0000 @@ -3750,6 +3750,16 @@ return 1; } +// Fake implementation: does nothing, but does it right :) +static WIN_BOOL WINAPI expSetProcessAffinityMask(HANDLE hProcess, + LPDWORD dwProcessAffinityMask) +{ + dbgprintf("SetProcessAffinityMask(0x%x, 0x%x) => 1\n", + hProcess, dwProcessAffinityMask); + + return 1; +}; + static int WINAPI expMulDiv(int nNumber, int nNumerator, int nDenominator) { static const long long max_int=0x7FFFFFFFLL; @@ -4778,6 +4788,14 @@ return sin(x); } +static double exp_CIsqrt(void) +{ + FPU_DOUBLE(x); + + dbgprintf("_CIsqrt(%lf)\n", x); + return sqrt(x); +} + /* Needed by rp8 sipr decoder */ static LPSTR WINAPI expCharNextA(LPCSTR ptr) { @@ -4786,6 +4804,13 @@ return (LPSTR)(ptr + 1); } +// Fake implementation, needed by wvc1dmod.dll +static int WINAPI expPropVariantClear(void *pvar) +{ +// dbgprintf("PropVariantclear (0x%08x), %s\n", ptr, ptr); + return 1; +} + struct exports { char name[64]; @@ -4957,6 +4982,7 @@ FF(ExitProcess,-1) {"LoadLibraryExA", -1, (void*)&LoadLibraryExA}, FF(SetThreadIdealProcessor,-1) + FF(SetProcessAffinityMask, -1) }; struct exports exp_msvcrt[]={ @@ -4999,6 +5025,7 @@ FF(_CIpow,-1) FF(_CIcos,-1) FF(_CIsin,-1) + FF(_CIsqrt,-1) FF(ldexp,-1) FF(frexp,-1) FF(sprintf,-1) @@ -5119,6 +5146,7 @@ FF(CoTaskMemAlloc, -1) FF(CoTaskMemFree, -1) FF(StringFromGUID2, -1) + FF(PropVariantClear, -1) }; // do we really need crtdll ??? // msvcrt is the correct place probably...