VirtualDub cannot find its codecs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm not a computer geek but after some code chasing I found the reason why VirtualDub (and any other video compression engine, I suppose) could not find its video codecs. I am sending a patch that worked fine for me. I simply noticed the problem is in msvideo_main.c, function ICInfo, which is used to enumerate the installed codecs. The main loop in that function is going through the codecs listed in the System.ini file under drivers32 section. The problem is that the list returned by GetPrivateProfile show only the keys and not the expected key=value pairs. To fix that I simply removed the checking for an equal sign. Moreover, I noticed that it would stop enumerating at the first codec that failed to open. I found better to keep going down the list and just ignore the faulty codec, since I presume that is what Windows would do. Well there you are.

Enjoy,
Waldeck
Index: wine/dlls/msvideo/msvideo_main.c
===================================================================
RCS file: /home/wine/wine/dlls/msvideo/msvideo_main.c,v
retrieving revision 1.45
diff -r1.45 msvideo_main.c
81a82,83
>     // The "Case of the missing codecs"
>     // A fix proposed by Waldeck Schutzer <waldeck@dm.ufscar.br>
88c90,91
<             if (!strncasecmp((char*)&fccType, s, 4) && s[4] == '.' && s[9] == '=')
---
>             if (!strncasecmp((char*)&fccType, s, 4) && s[4] == '.' /* && s[9] == '=' */ )
>             // buf is a list of keys, not keys followed by their values!
97a101,103
> 			// Some bad codecs can make wine crash right here.
> 			// It would be nice to know why and to find ways
> 			// to preventing it from happening. I can't do it.
102c108,110
<                     return FALSE;
---
>                     // return FALSE;
> 		    // This one failed to open, but keep going down the list!
> 		    fccHandler++;

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux