msvfw32: Force lower-case 'vidc/vids/audc' etc. when opening new driver.

This commit is contained in:
Jörg Höhle 2011-04-19 07:18:23 +02:00 committed by Alexandre Julliard
parent b22b80019a
commit 0e566c5b64
1 changed files with 11 additions and 3 deletions

View File

@ -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);