Allow to display all builtin Wine video codecs in ICCompressorChoose

Dmitry Timoshkov dmitry at baikal.ru
Fri Nov 25 03:37:00 CST 2005


Hello,

I've run ICGetInfo test on my XP and got the following results:

0: fccType vidc, fccHandler cvid, description Cinepak Codec by Radius, driver C:\WINNT\System32\iccvid.dll, name Cinepak Codec, dwVersion 10000, dwVersionICM 0104
1: fccType vidc, fccHandler I420, description Intel 4:2:0 Video V2.50, driver C:\WINNT\System32\msh263.drv, name MS H.263, dwVersion 232a, dwVersionICM 0104
3: fccType vidc, fccHandler IV32, description Intel Indeo(R) Video R3.2, driver C:\WINNT\System32\ir32_32.dll, name IR32, dwVersion 0020, dwVersionICM 100000
4: fccType vidc, fccHandler IYUV, description Intel IYUV codec, driver C:\WINNT\System32\iyuv_32.dll, name IYUV codec, dwVersion 0000, dwVersionICM 0104
5: fccType vidc, fccHandler MRLE, description Microsoft RLE, driver C:\WINNT\System32\msrle32.dll, name MS-RLE, dwVersion 0104, dwVersionICM 0104
6: fccType vidc, fccHandler MSVC, description Microsoft Video 1, driver C:\WINNT\System32\msvidc32.dll, name MS-CRAM, dwVersion 10000, dwVersionICM 0104
11: fccType vidc, fccHandler M263, description Microsoft H.263 Video Codec, driver C:\WINNT\System32\msh263.drv, name MS H.263, dwVersion 232a, dwVersionICM 0104
12: fccType vidc, fccHandler M261, description Microsoft H.261 Video Codec, driver C:\WINNT\System32\msh261.drv, name MS H.261, dwVersion 232a, dwVersionICM 0104
13: fccType vidc, fccHandler DIVX, description DivX 5.0.5 Codec, driver C:\WINNT\System32\DivX.dll, name DivX codec, dwVersion 0000, dwVersionICM 0104

All the codecs except ir32_32 return dwVersionICM set to ICVERSION (0x0104),
so that looks like a common practice. However dwVersion field doesn't look
like a reasonably set at all. I decided to follow msrle32 and set to 0x0104
as well.

Please apply this patch after previous one.

Changelog:
    Dmitry Timoshkov <dmitry at codeweavers.com>
    Set both dwVersionICM and dwVersion to ICVERSION in Wine builtin codecs.

diff -up cvs/hq/wine/dlls/iccvid/iccvid.c wine/dlls/iccvid/iccvid.c
--- cvs/hq/wine/dlls/iccvid/iccvid.c	2005-11-25 15:46:44.000000000 +0800
+++ wine/dlls/iccvid/iccvid.c	2005-11-25 15:52:17.000000000 +0800
@@ -921,8 +921,8 @@ static LRESULT ICCVID_GetInfo( ICCVID_In
     icinfo->fccType = ICTYPE_VIDEO;
     icinfo->fccHandler = info ? info->dwMagic : ICCVID_MAGIC;
     icinfo->dwFlags = 0;
-    icinfo->dwVersion = 0x00010000; /* Version 1.0 build 0 */
-    icinfo->dwVersionICM = 0x01040000; /* Version 1.4 build 0 */
+    icinfo->dwVersion = ICVERSION;
+    icinfo->dwVersionICM = ICVERSION;
 
     LoadStringW(ICCVID_hModule, IDS_NAME, icinfo->szName, sizeof(icinfo->szName)/sizeof(WCHAR));
     LoadStringW(ICCVID_hModule, IDS_DESCRIPTION, icinfo->szDescription, sizeof(icinfo->szDescription)/sizeof(WCHAR));
diff -up cvs/hq/wine/dlls/msrle32/msrle32.c wine/dlls/msrle32/msrle32.c
--- cvs/hq/wine/dlls/msrle32/msrle32.c	2005-11-25 15:46:45.000000000 +0800
+++ wine/dlls/msrle32/msrle32.c	2005-11-25 15:51:35.000000000 +0800
@@ -1167,8 +1167,8 @@ static LRESULT GetInfo(CodecInfo *pi, IC
   icinfo->fccType      = ICTYPE_VIDEO;
   icinfo->fccHandler   = (pi != NULL ? pi->fccHandler : FOURCC_MRLE);
   icinfo->dwFlags      = VIDCF_QUALITY | VIDCF_TEMPORAL | VIDCF_CRUNCH | VIDCF_FASTTEMPORALC;
-  icinfo->dwVersion    = MSRLE32_VERSION;
-  icinfo->dwVersionICM = 0x01040000; /* Version 1.4 build 0 */
+  icinfo->dwVersion    = ICVERSION;
+  icinfo->dwVersionICM = ICVERSION;
 
   LoadStringW(MSRLE32_hModule, IDS_NAME, icinfo->szName, sizeof(icinfo->szName)/sizeof(WCHAR));
   LoadStringW(MSRLE32_hModule, IDS_DESCRIPTION, icinfo->szDescription, sizeof(icinfo->szDescription)/sizeof(WCHAR));
diff -up cvs/hq/wine/dlls/msrle32/msrle_private.h wine/dlls/msrle32/msrle_private.h
--- cvs/hq/wine/dlls/msrle32/msrle_private.h	2004-02-28 05:51:13.000000000 +0800
+++ wine/dlls/msrle32/msrle_private.h	2005-11-25 15:51:51.000000000 +0800
@@ -35,7 +35,6 @@
 #define IDS_DESCRIPTION 101
 #define IDS_ABOUT       102
 
-#define MSRLE32_VERSION  0x00010000 /* Version 1.0 build 0 */
 #define MSRLE32_DEFAULTQUALITY (75 * ICQUALITY_HIGH) / 100
 
 #define FOURCC_RLE   mmioFOURCC('R','L','E',' ')
diff -up cvs/hq/wine/dlls/msvidc32/msvideo1.c wine/dlls/msvidc32/msvideo1.c
--- cvs/hq/wine/dlls/msvidc32/msvideo1.c	2005-11-25 15:46:45.000000000 +0800
+++ wine/dlls/msvidc32/msvideo1.c	2005-11-25 15:51:03.000000000 +0800
@@ -465,8 +465,8 @@ static LRESULT CRAM_GetInfo( Msvideo1Con
     icinfo->fccType = ICTYPE_VIDEO;
     icinfo->fccHandler = info ? info->dwMagic : CRAM_MAGIC;
     icinfo->dwFlags = 0;
-    icinfo->dwVersion = 0x00010000; /* Version 1.0 build 0 */
-    icinfo->dwVersionICM = 0x01040000; /* Version 1.4 build 0 */
+    icinfo->dwVersion = ICVERSION;
+    icinfo->dwVersionICM = ICVERSION;
 
     LoadStringW(MSVIDC32_hModule, IDS_NAME, icinfo->szName, sizeof(icinfo->szName)/sizeof(WCHAR));
     LoadStringW(MSVIDC32_hModule, IDS_DESCRIPTION, icinfo->szDescription, sizeof(icinfo->szDescription)/sizeof(WCHAR));
diff -up cvs/hq/wine/dlls/msvideo/msvideo_main.c wine/dlls/msvideo/msvideo_main.c
--- cvs/hq/wine/dlls/msvideo/msvideo_main.c	2005-11-25 15:46:45.000000000 +0800
+++ wine/dlls/msvideo/msvideo_main.c	2005-11-25 15:49:59.000000000 +0800
@@ -185,7 +185,7 @@ static BOOL ICInfo_enum_handler(const ch
     lpicinfo->fccHandler = fccHandler;
     lpicinfo->dwFlags = 0;
     lpicinfo->dwVersion = 0;
-    lpicinfo->dwVersionICM = 0x104;
+    lpicinfo->dwVersionICM = ICVERSION;
     lpicinfo->szName[0] = 0;
     lpicinfo->szDescription[0] = 0;
     MultiByteToWideChar(CP_ACP, 0, drv + 10, -1, lpicinfo->szDriver, 
diff -up cvs/hq/wine/include/vfw.h wine/include/vfw.h
--- cvs/hq/wine/include/vfw.h	2005-09-27 22:39:15.000000000 +0900
+++ wine/include/vfw.h	2005-11-25 15:49:20.000000000 +0800
@@ -42,6 +42,8 @@ typedef struct IAVIEditStream *PAVIEDITS
 
 /* Installable Compressor Manager */
 
+#define ICVERSION 0x0104
+
 DECLARE_HANDLE(HIC);
 
 /* error return codes */






More information about the wine-patches mailing list