[Bug 15915] New: cinepak codec reportedly not installed, FourCC case mismatch
wine-bugs at winehq.org
wine-bugs at winehq.org
Wed Nov 5 10:48:49 CST 2008
http://bugs.winehq.org/show_bug.cgi?id=15915
Summary: cinepak codec reportedly not installed, FourCC case
mismatch
Product: Wine
Version: 1.1.7
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: msvfw32
AssignedTo: wine-bugs at winehq.org
ReportedBy: hoehle at users.sourceforge.net
CC: dmitry at codeweavers.com
The Alien Nations / Die Völker complains that the cinepak codec is not
installed.
The reason is a lower/upper case mismatch in a FourCC code.
Upper-case FourCC is being supplied, as the log reveals:
Call msvfw32.ICOpen(43444956,44495643,00000002) ret=00493baf
trace:msvideo:ICOpen (VIDC,CVID,0x00000002)
Call winmm.OpenDriver(0032fda8 L"VIDC.CVID", ...)
trace:driver:OpenDriver (L"VIDC.CVID", L"drivers32", ...);
But dlls/iccvid/iccvid.c implements the check
if (icinfo && icinfo->fccType != ICTYPE_VIDEO)
where ICTYPE_VIDEO refers to 'vidc', not VIDC.
The same check is in msvidc32/msvideo1.c and msrle32/msrle32.c
Probably a case-insensitive check is required? For instance,
msvfw32/msvideo_main.c:ICOpen() uses the case-insensitive helper
function compare_fourcc().
OTOH, after the case-insensitive check perhaps wine should fill in the
icopen.fccType and .fccHandler slots with the FourCC case it expects
(ICTYPE_VIDEO) rather than the argument it received? It seems reasonable to
commit to a known character case early on in the code and use that
consistently.
What is The Right Thing (TRT), i.e. what to store in fccType?
In any case, a case fix lets "Die Völker" work past this issue (and crash
later in ddraw, but that's another issue).
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list