mirror of https://github.com/mpv-player/mpv
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. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16339 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
9315260e76
commit
1e1ee8b7b0
|
@ -1342,6 +1342,15 @@ videocodec vp6
|
||||||
out YUY2
|
out YUY2
|
||||||
out BGR32,BGR24
|
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
|
videocodec mwv1
|
||||||
info "Motion Wavelets"
|
info "Motion Wavelets"
|
||||||
status working
|
status working
|
||||||
|
|
|
@ -4690,6 +4690,10 @@ static int WINAPI expDialogBoxParamA(void *inst, const char *name,
|
||||||
return 0x42424242;
|
return 0x42424242;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void WINAPI expRegisterClipboardFormatA(const char *name) {
|
||||||
|
dbgprintf("RegisterClipboardFormatA(0x%x = %s)\n", name, name);
|
||||||
|
}
|
||||||
|
|
||||||
/* needed by imagepower mjpeg2k */
|
/* needed by imagepower mjpeg2k */
|
||||||
static void *exprealloc(void *ptr, size_t size)
|
static void *exprealloc(void *ptr, size_t size)
|
||||||
{
|
{
|
||||||
|
@ -4706,6 +4710,32 @@ static WIN_BOOL WINAPI expGetOpenFileNameA(/*LPOPENFILENAMEA*/ void* lpfn)
|
||||||
return 1;
|
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)
|
static double expfloor(double x)
|
||||||
{
|
{
|
||||||
dbgprintf("floor(%lf)\n", x);
|
dbgprintf("floor(%lf)\n", x);
|
||||||
|
@ -5024,6 +5054,7 @@ struct exports exp_user32[]={
|
||||||
#endif
|
#endif
|
||||||
FF(MessageBeep, -1)
|
FF(MessageBeep, -1)
|
||||||
FF(DialogBoxParamA, -1)
|
FF(DialogBoxParamA, -1)
|
||||||
|
FF(RegisterClipboardFormatA, -1)
|
||||||
};
|
};
|
||||||
struct exports exp_advapi32[]={
|
struct exports exp_advapi32[]={
|
||||||
FF(RegCloseKey, -1)
|
FF(RegCloseKey, -1)
|
||||||
|
@ -5137,6 +5168,11 @@ struct exports exp_comdlg32[]={
|
||||||
FF(GetOpenFileNameA, -1)
|
FF(GetOpenFileNameA, -1)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct exports exp_shlwapi[]={
|
||||||
|
FF(PathFindExtensionA, -1)
|
||||||
|
FF(PathFindFileNameA, -1)
|
||||||
|
};
|
||||||
|
|
||||||
#define LL(X) \
|
#define LL(X) \
|
||||||
{#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X},
|
{#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X},
|
||||||
|
|
||||||
|
@ -5161,6 +5197,7 @@ struct libs libraries[]={
|
||||||
LL(ddraw)
|
LL(ddraw)
|
||||||
#endif
|
#endif
|
||||||
LL(comdlg32)
|
LL(comdlg32)
|
||||||
|
LL(shlwapi)
|
||||||
};
|
};
|
||||||
|
|
||||||
static void ext_stubs(void)
|
static void ext_stubs(void)
|
||||||
|
|
Loading…
Reference in New Issue