changeset 16338:cbd034008ee0

Support On2 VP7 via binary decoder by implementing USER32.RegisterClipboardFormatA, SHLWAPI.PathFindExtensionA and SHLWAPI.PathFindFileNameA. Tested with http://www.on2.com/vp7_samples/potter-40.vp7.
author reimar
date Thu, 01 Sep 2005 20:42:13 +0000
parents 7252d024193b
children 9d772123c27d
files etc/codecs.conf loader/win32.c
diffstat 2 files changed, 46 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/etc/codecs.conf	Thu Sep 01 15:59:55 2005 +0000
+++ b/etc/codecs.conf	Thu Sep 01 20:42:13 2005 +0000
@@ -1342,6 +1342,15 @@
   out YUY2
   out BGR32,BGR24
 
+videocodec vp7
+  info "On2 VP7 Personal Codec"
+  status working
+  fourcc VP70
+  driver vfwex
+  dll "vp7vfw.dll"
+  out YUY2
+  out BGR32,BGR24
+
 videocodec mwv1
   info "Motion Wavelets"
   status working
--- a/loader/win32.c	Thu Sep 01 15:59:55 2005 +0000
+++ b/loader/win32.c	Thu Sep 01 20:42:13 2005 +0000
@@ -4690,6 +4690,10 @@
     return 0x42424242;
 }
 
+static void WINAPI expRegisterClipboardFormatA(const char *name) {
+    dbgprintf("RegisterClipboardFormatA(0x%x = %s)\n", name, name);
+}
+
 /* needed by imagepower mjpeg2k */
 static void *exprealloc(void *ptr, size_t size)
 {
@@ -4706,6 +4710,32 @@
     return 1;
 }
 
+static char * WINAPI expPathFindExtensionA(const char *path) {
+  char *ext;
+  if (!path)
+    ext = NULL;
+  else {
+    ext = strrchr(path, '.');
+    if (!ext)
+      ext = &path[strlen(path)];
+  }
+  dbgprintf("PathFindExtensionA(0x%x = %s) => 0x%x, %s\n", path, path, ext, ext);
+  return ext;
+}
+
+static char * WINAPI expPathFindFileNameA(const char *path) {
+  char *name;
+  if (!path || strlen(path) < 2)
+    name = path;
+  else {
+    name = strrchr(path - 1, '\\');
+    if (!name)
+      name = path;
+  }
+  dbgprintf("PathFindFileNameA(0x%x = %s) => 0x%x, %s\n", path, path, name, name);
+  return name;
+}
+
 static double expfloor(double x)
 {
     dbgprintf("floor(%lf)\n", x);
@@ -5024,6 +5054,7 @@
 #endif
     FF(MessageBeep, -1)
     FF(DialogBoxParamA, -1)
+    FF(RegisterClipboardFormatA, -1)
 };
 struct exports exp_advapi32[]={
     FF(RegCloseKey, -1)
@@ -5137,6 +5168,11 @@
     FF(GetOpenFileNameA, -1)
 };
 
+struct exports exp_shlwapi[]={
+    FF(PathFindExtensionA, -1)
+    FF(PathFindFileNameA, -1)
+};
+
 #define LL(X) \
     {#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X},
 
@@ -5161,6 +5197,7 @@
     LL(ddraw)
 #endif
     LL(comdlg32)
+    LL(shlwapi)
 };
 
 static void ext_stubs(void)