diff options
author | zuxy <zuxy@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-04-12 18:29:57 +0000 |
---|---|---|
committer | zuxy <zuxy@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-04-12 18:29:57 +0000 |
commit | 339a79e1c30691834141e20b76642ce55ad14001 (patch) | |
tree | 699c57a8f32c01e0d9c76433457cd8f9840bf6bc /libmpcodecs/vd_realvid.c | |
parent | 8fd56cbb88ba849ff6cc6fe94b14cf0d5fe855ba (diff) | |
download | mpv-339a79e1c30691834141e20b76642ce55ad14001.tar.bz2 mpv-339a79e1c30691834141e20b76642ce55ad14001.tar.xz |
Dlls can be relocated when loading so rely on filename instead of absolute
address to check if it's drv43260.dll and hence needs patching.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26419 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs/vd_realvid.c')
-rw-r--r-- | libmpcodecs/vd_realvid.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/libmpcodecs/vd_realvid.c b/libmpcodecs/vd_realvid.c index ea03ba013f..b05c3bb9fe 100644 --- a/libmpcodecs/vd_realvid.c +++ b/libmpcodecs/vd_realvid.c @@ -204,8 +204,7 @@ static int load_syms_windows(char *path) { rv_handle = handle; #ifndef WIN32_LOADER { - // drv43260.dll - if (wrvyuv_transform == (void *)0x634114d0) { + if (strstr(path, "drv34260.dll")) { int patched; // patch away multithreaded decoding, it causes crashes static const uint8_t oldcode[13] = { @@ -215,7 +214,7 @@ static int load_syms_windows(char *path) { 0x31, 0xc0, 0x89, 0x83, 0xf8, 0x05, 0x00, 0x00, 0xe9, 0xd0, 0x00, 0x00, 0x00 }; - patched = patch_dll((void *)0x634132fa, oldcode, newcode, + patched = patch_dll((char*)wrvyuv_transform + 0x634132fa - 0x634114d0, oldcode, newcode, sizeof(oldcode)); if (!patched) mp_msg(MSGT_DECVIDEO, MSGL_WARN, "Could not patch Real codec, this might crash on multi-CPU systems\n"); |