summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Stembridge <jstembridge@users.sourceforge.net>2004-08-08 16:34:32 +0000
committerJames Stembridge <jstembridge@users.sourceforge.net>2004-08-08 16:34:32 +0000
commit7b6a71781f181c073eb26b0c9d10d66852260fc0 (patch)
treeae92d2c8922382e8e78fff1b2ba8ce0dbc484eff
parent3d1a29736bd6f8197b4e10d54603797f271d3bbc (diff)
downloadxine-lib-7b6a71781f181c073eb26b0c9d10d66852260fc0.tar.gz
xine-lib-7b6a71781f181c073eb26b0c9d10d66852260fc0.tar.bz2
Support newer DLLs
CVS patchset: 6879 CVS date: 2004/08/08 16:34:32
-rw-r--r--ChangeLog3
-rw-r--r--src/libw32dll/wine/module.c14
2 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 26f6137ce..ab1440fc1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,7 +20,8 @@ xine-lib (1-rc6)
* another win32 dll crash fix (after playing several files)
* configure option for building xine with external ffmpeg library
* added api for finer playback speed control (requires frontend support)
-
+ * support QuickTime 6.3 DLLs
+
xine-lib (1-rc5)
* add support for ejecting removable media on Solaris
* fix stuttering playback of some realmedia streams
diff --git a/src/libw32dll/wine/module.c b/src/libw32dll/wine/module.c
index 6e97548b6..052aece0f 100644
--- a/src/libw32dll/wine/module.c
+++ b/src/libw32dll/wine/module.c
@@ -448,6 +448,11 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags)
for (i=0;i<6;i++) ((char*)0x10007688)[i]=0x90;
for (i=0;i<6;i++) ((char*)0x100082c3)[i]=0x90;
for (i=0;i<6;i++) ((char*)0x100084aa)[i]=0x90;
+ } else if (PE_FindExportedFunction(wm, "DriverProc", TRUE)==(void*)0x10003e70) {
+ // looks like VP 6.0.7.3
+ for (i=0;i<6;i++) ((char*)0x10007559)[i]=0x90;
+ for (i=0;i<6;i++) ((char*)0x100081c3)[i]=0x90;
+ for (i=0;i<6;i++) ((char*)0x1000839e)[i]=0x90;
} else {
printf("wine/module: Unsupported VP6 version\n");
return 0;
@@ -499,6 +504,15 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags)
for (i=0;i<5;i++) ((char *)0x66a73122)[i]=0x90; // jmp_to_call_loadbitmap
for (i=0;i<9;i++) ((char *)0x66a73131)[i]=0x90; // call__calls_OLE_shit
for (i=0;i<96;i++) ((char *)0x66aac852)[i]=0x90; // disable threads
+ } else if (dispatch_addr == (void *)0x6693c3e0)
+ {
+ printf ("wine/module: QuickTime6.3 DLLs found\n");
+ ptr = (void **)0x66bca01c; // dispatcher_ptr
+ for (i=0;i<5;i++) ((char *)0x66a68f6c)[i]=0x90; // make_new_region
+ for (i=0;i<28;i++) ((char *)0x66a68f97)[i]=0x90; // call__call_CreateCompatibleDC
+ for (i=0;i<5;i++) ((char *)0x66a68fc2)[i]=0x90; // jmp_to_call_loadbitmap
+ for (i=0;i<9;i++) ((char *)0x66a68fd1)[i]=0x90; // call__calls_OLE_shit
+ for (i=0;i<96;i++) ((char *)0x66ab4722)[i]=0x90; // disable threads
} else
{
printf ("wine/module: Unsupported QuickTime version (%p)\n",