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