summaryrefslogtreecommitdiffstats
path: root/loader/qtx
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-10 18:06:47 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-10 18:06:47 +0000
commit67ebcf2aafe5cc63111497be3eea8162c41a7b15 (patch)
treeeba6993f4cb1d6bbe62ad5e7f6b5983b15ac168a /loader/qtx
parent34dcb46be7719d376ef2d92e1f1a95803f8bcb6a (diff)
downloadmpv-67ebcf2aafe5cc63111497be3eea8162c41a7b15.tar.bz2
mpv-67ebcf2aafe5cc63111497be3eea8162c41a7b15.tar.xz
still sig11
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2797 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader/qtx')
-rw-r--r--loader/qtx/qtxload.c95
1 files changed, 53 insertions, 42 deletions
diff --git a/loader/qtx/qtxload.c b/loader/qtx/qtxload.c
index 29cfedc616..846389981f 100644
--- a/loader/qtx/qtxload.c
+++ b/loader/qtx/qtxload.c
@@ -1,6 +1,9 @@
/* to compile: gcc -o qtxload qtxload.c ../libloader.a -lpthread -ldl -ggdb ../../cpudetect.o */
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "qtxsdk/components.h"
#include "qtxsdk/select.h"
@@ -19,55 +22,63 @@ ComponentResult ComponentDummy(
return(0);
}
-char *get_path()
-{
- return(".");
-}
+char *get_path(char* x){ return strdup(x);}
-main(int argc, char *argv[])
-{
+void* expLoadLibraryA(char* name);
+void* GetProcAddress(void* handle,char* func);
+
+#define __stdcall __attribute__((__stdcall__))
+#define __cdecl __attribute__((__cdecl__))
+#define APIENTRY
+
+int main(int argc, char *argv[]){
void *handler;
- ComponentResult (*
-dispatcher)(ComponentParameters *params, void* glob);
+ ComponentResult (APIENTRY *
+dispatcher)(ComponentParameters *params, Globals glob);
+ ComponentResult ret;
+ ComponentParameters *params;
+ ComponentDescription desc;
+ void *globals=NULL;
+ unsigned int esp=0;
Setup_LDT_Keeper();
-
handler = expLoadLibraryA("/usr/lib/win32/QuickTime.qts");
dispatcher = GetProcAddress(handler, "SorensonYUV9Dispatcher");
+// handler = expLoadLibraryA("/usr/lib/win32/On2_VP3.qtx");
+// dispatcher = GetProcAddress(handler, "CDComponentDispatcher");
printf("handler: %p, dispatcher: %p\n", handler, dispatcher);
+
+ desc.componentType=0;
+ desc.componentSubType=0;
+ desc.componentManufacturer=0;
+ desc.componentFlags=0;
+ desc.componentFlagsMask=0;
- {
- ComponentResult ret;
- ComponentParameters *params;
- void *globals;
-
- globals = malloc(sizeof(long));
- (long)*(void **)globals = 0x2001;
-
- params = malloc(sizeof(ComponentParameters));
-
- params->flags = 0;
- params->paramSize = sizeof(params);
- params->what = kComponentVersionSelect;
- // params->what = kComponentRegisterSelect;
- // params->what = kComponentOpenSelect;
- // params->what = -5; //atoi(argv[1]);
-
- params->params[0] = 0x1984;
-
- printf("params: flags: %d, paramSize: %d, what: %d\n",
- params->flags, params->paramSize, params->what);
- printf("params[0] = %x\n", params->params[0]);
-
- ret = dispatcher(params, globals);
-
- printf("!!! CDComponentDispatch() => %x\n",ret);
-
-// printf("!!! CDComponentDispatch(%p, %p) => %x\n",
-// &params, globals, ret);
-// free(globals);
-// free(params);
- }
+ params = malloc(sizeof(ComponentParameters)+2048);
+
+ params->flags = 0;
+ params->paramSize = sizeof(params->params[0]);
+ params->params[0] = 0x12345678;
+
+ // params->what = kComponentVersionSelect;
+ // params->what = kComponentRegisterSelect;
+ params->what = kComponentOpenSelect;
+ // params->what = kComponentCanDoSelect;
+
+ printf("params: flags: %d, paramSize: %d, what: %d, params[0] = %x\n",
+ params->flags, params->paramSize, params->what, params->params[0]);
+
+ __asm__ __volatile__ ("movl %%esp, %0\n\t" : "=a" (esp) :: "memory" );
+ printf("ESP=%p\n",esp);
+
+ ret = dispatcher(params, &globals);
+
+ __asm__ __volatile__ ("movl %%esp, %0\n\t" : "=a" (esp) :: "memory" );
+ printf("ESP=%p\n",esp);
+
+ printf("!!! CDComponentDispatch() => 0x%X glob=%p\n",ret,globals);
-// Restore_LDT_Keeper();
+ Restore_LDT_Keeper();
+ exit(0);
+ //return 0;
}