Vladdy Impaler wrote:
RIght now I'm working on a patch so I can use my webcam under wine without having to switch to unix or use non-working solutions..MultiMedia streams (amstream.dll) use a special filter that will need pins too so we may consider sharing them (as well as common Direct Show stuff) in a separate lib.
Right now there are 2 patches needed to get MSN to connect to the internet: first is to disable SSL, second strcpy's a value at urlmon getuseragent or something
To get this to work, a few modifications to existing files are needed:
First of all, if the catagory exists, let devenum return all from videoinput catagory:
diff -Nru /root/wine-20050211/dlls/devenum/createdevenum.c wine-20050211/dlls/devenum/createdevenum.c
--- /root/wine-20050211/dlls/devenum/createdevenum.c 2005-01-25 11:56:39.000000000 +0100
+++ wine-20050211/dlls/devenum/createdevenum.c 2005-03-15 00:15:47.000000000 +0100
@@ -117,7 +117,8 @@
if (IsEqualGUID(clsidDeviceClass, &CLSID_AudioRendererCategory) || IsEqualGUID(clsidDeviceClass, &CLSID_AudioInputDeviceCategory) || - IsEqualGUID(clsidDeviceClass, &CLSID_MidiRendererCategory)) + IsEqualGUID(clsidDeviceClass, &CLSID_MidiRendererCategory) || + IsEqualGUID(clsidDeviceClass, &CLSID_VideoInputDeviceCategory)) { hbasekey = HKEY_CURRENT_USER; strcpyW(wszRegKey, wszActiveMovieKey);
and a few other patches to devenum main (Not sure if those are needed)
diff -Nru /root/wine-20050211/dlls/devenum/devenum_main.c wine-20050211/dlls/devenum/devenum_main.c
--- /root/wine-20050211/dlls/devenum/devenum_main.c 2004-12-07 15:37:11.000000000 +0100
+++ wine-20050211/dlls/devenum/devenum_main.c 2005-03-15 00:15:47.000000000 +0100
@@ -122,7 +122,7 @@
{&CLSID_AudioCompressorCategory, acmcat, TRUE},
{&CLSID_VideoCompressorCategory, vidcat, TRUE},
{&CLSID_LegacyAmFilterCategory, filtcat, TRUE},
- {&CLSID_VideoInputDeviceCategory, vfwcat, FALSE},
+ {&CLSID_VideoInputDeviceCategory, vfwcat, TRUE},
{&CLSID_AudioInputDeviceCategory, wavein, FALSE},
{&CLSID_AudioRendererCategory, waveout, FALSE},
{&CLSID_MidiRendererCategory, midiout, FALSE},
@@ -156,7 +156,7 @@
pMapper = (IFilterMapper2*)mapvptr;
- IFilterMapper2_CreateCategory(pMapper, &CLSID_VideoInputDeviceCategory, MERIT_DO_NOT_USE, friendlyvidcap);
+ IFilterMapper2_CreateCategory(pMapper, &CLSID_VideoInputDeviceCategory, MERIT_NORMAL, friendlyvidcap);
IFilterMapper2_CreateCategory(pMapper, &CLSID_LegacyAmFilterCategory, MERIT_NORMAL, friendlydshow);
IFilterMapper2_CreateCategory(pMapper, &CLSID_VideoCompressorCategory, MERIT_DO_NOT_USE, friendlyvidcomp);
IFilterMapper2_CreateCategory(pMapper, &CLSID_AudioInputDeviceCategory, MERIT_DO_NOT_USE, friendlyaudcap);
I wanted to put all custom code into qcap, but because of the pins that's not possible.
I think Alexandre will not like it but I don't see other solution to prevent this code duplication.
Christian