From 0e566c5b645572d6ce17cc05a1e815a93838a7f3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rg=20H=C3=B6hle?= Date: Tue, 19 Apr 2011 07:18:23 +0200 Subject: [PATCH] msvfw32: Force lower-case 'vidc/vids/audc' etc. when opening new driver. --- dlls/msvfw32/msvideo_main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/dlls/msvfw32/msvideo_main.c b/dlls/msvfw32/msvideo_main.c index c5b404d0482..f27d3ec4f3a 100644 --- a/dlls/msvfw32/msvideo_main.c +++ b/dlls/msvfw32/msvideo_main.c @@ -403,9 +403,11 @@ HIC VFWAPI ICOpen(DWORD fccType, DWORD fccHandler, UINT wMode) driver = reg_driver_list; while(driver) if (!compare_fourcc(fccType, driver->fccType) && - !compare_fourcc(fccHandler, driver->fccHandler)) + !compare_fourcc(fccHandler, driver->fccHandler)) { + fccType = driver->fccType; + fccHandler = driver->fccHandler; break; - else + } else driver = driver->next; if (driver && driver->proc) @@ -426,7 +428,13 @@ HIC VFWAPI ICOpen(DWORD fccType, DWORD fccHandler, UINT wMode) icopen.dnDevNode = 0; /* FIXME */ if (!driver) { - /* The driver is registered in the registry */ + /* normalize to lower case as in 'vidc' */ + ((char*)&fccType)[0] = tolower(((char*)&fccType)[0]); + ((char*)&fccType)[1] = tolower(((char*)&fccType)[1]); + ((char*)&fccType)[2] = tolower(((char*)&fccType)[2]); + ((char*)&fccType)[3] = tolower(((char*)&fccType)[3]); + icopen.fccType = fccType; + /* Seek the driver in the registry */ fourcc_to_string(codecname, fccType); codecname[4] = '.'; fourcc_to_string(codecname + 5, fccHandler); -- 2.11.4.GIT