mirror of https://github.com/mpv-player/mpv
Support for vp5 and vp6 dll decoders
Patch by Reimar Doeffinger git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12043 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
e8a1b37130
commit
1fac9f9861
|
@ -1147,6 +1147,24 @@ videocodec vp4
|
|||
out YUY2
|
||||
out BGR32,BGR24
|
||||
|
||||
videocodec vp5
|
||||
info "On2 VP5 Personal Codec"
|
||||
status working
|
||||
fourcc VP50
|
||||
driver vfwex
|
||||
dll "vp5vfw.dll"
|
||||
out YUY2
|
||||
out BGR32,BGR24
|
||||
|
||||
videocodec vp6
|
||||
info "On2 VP6 Personal Codec"
|
||||
status working
|
||||
fourcc VP60,VP61,VP62
|
||||
driver vfwex
|
||||
dll "vp6vfw.dll"
|
||||
out YUY2
|
||||
out BGR32,BGR24
|
||||
|
||||
videocodec mwv1
|
||||
info "Motion Wavelets"
|
||||
status working
|
||||
|
|
|
@ -422,6 +422,39 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags)
|
|||
if (!wm)
|
||||
printf("Win32 LoadLibrary failed to load: %s\n", checked);
|
||||
|
||||
// remove a few divs in the VP codecs that make trouble
|
||||
if (strstr(libname,"vp5vfw.dll") && wm)
|
||||
{
|
||||
int i;
|
||||
if (PE_FindExportedFunction(wm, "DriverProc", TRUE)==(void*)0x10003930) {
|
||||
for (i=0;i<3;i++) ((char*)0x10004e86)[i]=0x90;
|
||||
for (i=0;i<3;i++) ((char*)0x10005a23)[i]=0x90;
|
||||
for (i=0;i<3;i++) ((char*)0x10005bff)[i]=0x90;
|
||||
} else {
|
||||
fprintf(stderr, "Unsupported VP5 version\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (strstr(libname,"vp6vfw.dll") && wm)
|
||||
{
|
||||
int i;
|
||||
if (PE_FindExportedFunction(wm, "DriverProc", TRUE)==(void*)0x10003ef0) {
|
||||
// looks like VP 6.1.0.2
|
||||
for (i=0;i<6;i++) ((char*)0x10007268)[i]=0x90;
|
||||
for (i=0;i<6;i++) ((char*)0x10007e83)[i]=0x90;
|
||||
for (i=0;i<6;i++) ((char*)0x1000806a)[i]=0x90;
|
||||
} else if (PE_FindExportedFunction(wm, "DriverProc", TRUE)==(void*)0x10004120) {
|
||||
// looks like VP 6.2.0.10
|
||||
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 {
|
||||
fprintf(stderr, "Unsupported VP6 version\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (strstr(libname,"QuickTime.qts") && wm)
|
||||
{
|
||||
void** ptr;
|
||||
|
|
Loading…
Reference in New Issue