[QCAP] Final patch

Maarten Lankhorst m.b.lankhorst at gmail.com
Fri May 20 08:20:28 CDT 2005


Dimi Paun wrote:

>On Fri, 2005-05-20 at 12:26 +0200, Maarten Lankhorst wrote:
>  
>
>>What do you suggest then ... fprintf(stderr?
>>    
>>
>
>Absolutely not. :) But there are other options available:
>TRACE/WARN/FIXME. There's also MESSAGE, but it should be
>used *very* little. Also remember that most people will
>not see MESSAGE()s anyway because they only go to console.
>  
>
Ah well, it doesn't matter much, wrote it so II could keep video contact 
in the first place

>>>>+   if (stat (device, &st) == -1) {
>>>>+      ERR("%s: %s\n", device, strerror(errno));
>>>>+      CoTaskMemFree(capBox);
>>>>+      return E_FAIL;
>>>>+   }
>>>>   
>>>>
>>>>        
>>>>
>>>Why is this a ERR()?
>>>      
>>>
>
>This is more like a WARN or MESSAGE.
>  
>
You are partially right, see below.

>>>>+
>>>>+   if (!S_ISCHR (st.st_mode)) {
>>>>+      ERR("%s: Not a device\n", device);
>>>>+      CoTaskMemFree(capBox);
>>>>+      return E_FAIL;
>>>>+   }
>>>>   
>>>>        
>>>>
>
>Same here.
>  
>
No, /dev/video* should never be an ordinary file, and see below.

>  
>
>>>>+
>>>>+   capBox->fd = open(device, O_RDWR | O_NONBLOCK);
>>>>+   if (capBox->fd == -1) {
>>>>+      ERR("%s: Failed to open: %s\n", device, strerror(errno));
>>>>+      CoTaskMemFree(capBox);
>>>>+      return E_FAIL;
>>>>+   }
>>>>   
>>>>
>>>>        
>>>>
>
>Ditto.
>  
>
Like I said before, it shouldn't fail at this point, if it fails it 
should be at *capgetdriverdescription*, because it executes the same 
stuff, only if that function succeeds it will try to open the device 
here, the only time I can imagine it fails here, is when using the 
builtin devenum, which only rescans when the registry key 
currentuser/microsoft/activemovie doesn't exist any more, the video 
class should be rescanned every time the constructor gets called, so if 
a webcam is plugged in and/or modprobed it will be found inmediately, 
and when it is disconnected/rmmod'd it will disappear inmediately, 
instead of trying to initialise it anyway.  Since for msn messenger I 
recommended to install Internet Explorer using winetools, the windows 
version of devenum and quartz will be used, so that these ERR's should 
never occur, and if they occur, it will be at avicap32, not here...

To be honest, I expected more arguments about my reading thread, since 
that doesn't do much error checking, and doesn't call ifiltergraph::stop 
if an error occurs... :/



More information about the wine-devel mailing list