how/where to implement case-insensitive fourcc check?

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Thu Mar 26 07:00:19 CDT 2009


Hi,

I'm looking for advice about how to properly implement the
case-insensitive fourcc check of video formats required by the
conformance test msvfw32, i.e. how to eliminate the 2 todo_wine
in http://test.winehq.org/data/tests/msvfw32:msvfw.html

This would allow the AppDB rating of the application "The Alien
Nations / Die Völker" to jump from garbage to silver.
Cf. http://bugs.winehq.org/show_bug.cgi?id=15915
http://source.winehq.org/git/wine.git/?a=blob;f=dlls/msvfw32/tests/msvfw.c;hb=HEAD

The quick and dirty hack (to make the game run) is to change
-	if (icinfo && icinfo->fccType != ICTYPE_VIDEO)
into
+	if (icinfo && icinfo->fccType != ICTYPE_VIDEO && icinfo->fccType != mmioFOURCC('V', 'I', 'D', 'C'))
in files dlls/iccvid/iccvid.c, likewise
in msvidc32/msvideo1.c and msrle32/msrle32.c

But I wouldn't even think of submiting that to wine-patches.

Somehow a case-insensitive check is required. For instance,
msvfw32/msvideo_main.c:ICOpen() uses the case-insensitive helper
function compare_fourcc(). But the above may not be the correct place
for this check. Any suggestions?

Thanks for your help,
       Jörg Höhle



More information about the wine-devel mailing list