summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/codecs.conf9
-rw-r--r--loader/win32.c28
2 files changed, 37 insertions, 0 deletions
diff --git a/etc/codecs.conf b/etc/codecs.conf
index 75e2462f55..7b78214ed6 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -777,6 +777,15 @@ videocodec wmvadmo
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 --git a/loader/win32.c b/loader/win32.c
index e756d1e4bc..2b11c2a158 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -3750,6 +3750,16 @@ static WIN_BOOL WINAPI expGetProcessAffinityMask(HANDLE hProcess,
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 @@ static double exp_CIsin(void)
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 @@ static LPSTR WINAPI expCharNextA(LPCSTR ptr)
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 @@ struct exports exp_kernel32[]=
FF(ExitProcess,-1)
{"LoadLibraryExA", -1, (void*)&LoadLibraryExA},
FF(SetThreadIdealProcessor,-1)
+ FF(SetProcessAffinityMask, -1)
};
struct exports exp_msvcrt[]={
@@ -4999,6 +5025,7 @@ struct exports exp_msvcrt[]={
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 @@ struct exports exp_ole32[]={
FF(CoTaskMemAlloc, -1)
FF(CoTaskMemFree, -1)
FF(StringFromGUID2, -1)
+ FF(PropVariantClear, -1)
};
// do we really need crtdll ???
// msvcrt is the correct place probably...