No subject
=3D?utf-8?q?J=3DC3=3DB6rg=3D20H=3DC3=3DB6hle?=3D
=3D?utf-8?q?J=3DC3=3DB6rg=3D20H=3DC3=3DB6hle?=3D
Tue Mar 17 14:04:44 CDT 2009
<hoehle at users.sourceforge.net>
Date: Wed, 1 Apr 2009 21:06:52 +0200
Subject: perform case-insensitive FOURCC comparison of known video =
codecs
---
dlls/iccvid/iccvid.c | 3 ++-
dlls/msrle32/msrle32.c | 4 +++-
dlls/msvfw32/tests/msvfw.c | 4 ++--
dlls/msvidc32/msvideo1.c | 3 ++-
4 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/iccvid/iccvid.c b/dlls/iccvid/iccvid.c
index 77328ea..3ed5abf 100644
--- a/dlls/iccvid/iccvid.c
+++ b/dlls/iccvid/iccvid.c
@@ -57,6 +57,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(iccvid);
static HINSTANCE ICCVID_hModule;
=20
#define ICCVID_MAGIC mmioFOURCC('c', 'v', 'i', 'd')
+#define compare_fourcc(fcc1, fcc2) (((fcc1)^(fcc2))&~0x20202020L)
=20
#define DBUG 0
#define MAX_STRIPS 32
@@ -975,7 +976,7 @@ LRESULT WINAPI ICCVID_DriverProc( DWORD_PTR =
dwDriverId, HDRVR hdrvr, UINT msg,
=20
TRACE("Opened\n");
=20
- if (icinfo && icinfo->fccType !=3D ICTYPE_VIDEO) return 0;
+ if (icinfo && compare_fourcc(icinfo->fccType, ICTYPE_VIDEO)) =
return 0;
=20
info =3D heap_alloc( sizeof (ICCVID_Info) );
if( info )
diff --git a/dlls/msrle32/msrle32.c b/dlls/msrle32/msrle32.c
index b0354b9..be10739 100644
--- a/dlls/msrle32/msrle32.c
+++ b/dlls/msrle32/msrle32.c
@@ -34,6 +34,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(msrle32);
=20
static HINSTANCE MSRLE32_hModule =3D 0;
=20
+#define compare_fourcc(fcc1, fcc2) (((fcc1)^(fcc2))&~0x20202020L)
+
#define ABS(a) ((a) < 0 ? -(a) : (a))
#define SQR(a) ((a) * (a))
=20
@@ -1114,7 +1116,7 @@ static CodecInfo* Open(LPICOPEN icinfo)
return (LPVOID)0xFFFF0000;
}
=20
- if (icinfo->fccType !=3D ICTYPE_VIDEO) return NULL;
+ if (compare_fourcc(icinfo->fccType, ICTYPE_VIDEO)) return NULL;
=20
TRACE("(%p =3D {%u,0x%08X(%4.4s),0x%08X(%4.4s),0x%X,0x%X,...})\n", =
icinfo,
icinfo->dwSize, icinfo->fccType, (char*)&icinfo->fccType,
diff --git a/dlls/msvfw32/tests/msvfw.c b/dlls/msvfw32/tests/msvfw.c
index 537c230..1082486 100644
--- a/dlls/msvfw32/tests/msvfw.c
+++ b/dlls/msvfw32/tests/msvfw.c
@@ -42,12 +42,12 @@ static void test_OpenCase(void)
ok(ICClose(h)=3D=3DICERR_OK,"ICClose failed\n");
}
h =3D =
ICOpen(mmioFOURCC('V','I','D','C'),mmioFOURCC('m','s','v','c'),ICMODE_DEC=
OMPRESS);
- todo_wine ok(0!=3Dh,"ICOpen(VIDC.msvc) failed\n");
+ ok(0!=3Dh,"ICOpen(VIDC.msvc) failed\n");
if (h) {
ok(ICClose(h)=3D=3DICERR_OK,"ICClose failed\n");
}
h =3D =
ICOpen(mmioFOURCC('V','I','D','C'),mmioFOURCC('M','S','V','C'),ICMODE_DEC=
OMPRESS);
- todo_wine ok(0!=3Dh,"ICOpen(VIDC.MSVC) failed\n");
+ ok(0!=3Dh,"ICOpen(VIDC.MSVC) failed\n");
if (h) {
ok(ICClose(h)=3D=3DICERR_OK,"ICClose failed\n");
}
diff --git a/dlls/msvidc32/msvideo1.c b/dlls/msvidc32/msvideo1.c
index 9de2a2d..c5dc24d 100644
--- a/dlls/msvidc32/msvideo1.c
+++ b/dlls/msvidc32/msvideo1.c
@@ -50,6 +50,7 @@ static HINSTANCE MSVIDC32_hModule;
#define CRAM_MAGIC mmioFOURCC('C', 'R', 'A', 'M')
#define MSVC_MAGIC mmioFOURCC('M', 'S', 'V', 'C')
#define WHAM_MAGIC mmioFOURCC('W', 'H', 'A', 'M')
+#define compare_fourcc(fcc1, fcc2) (((fcc1)^(fcc2))&~0x20202020L)
=20
#define PALETTE_COUNT 256
#define LE_16(x) ((((const uint8_t *)(x))[1] << 8) | ((const uint8_t =
*)(x))[0])
@@ -502,7 +503,7 @@ LRESULT WINAPI CRAM_DriverProc( DWORD_PTR =
dwDriverId, HDRVR hdrvr, UINT msg,
=20
TRACE("Opened\n");
=20
- if (icinfo && icinfo->fccType !=3D ICTYPE_VIDEO) return 0;
+ if (icinfo && compare_fourcc(icinfo->fccType, ICTYPE_VIDEO)) =
return 0;
=20
info =3D HeapAlloc( GetProcessHeap(), 0, sizeof =
(Msvideo1Context) );
if( info )
--=20
1.5.4.3
More information about the wine-patches
mailing list