X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utils%2Fsgivideo.c;h=38b0c669e9b0a2249a717f20409652b4d3225d9c;hb=14627f4038ada5d11456f3770090f3c39740d70f;hp=13fb7a3c28e16a3cae6d78a6c86967ccacb3733b;hpb=6bb727f03bff0389fbb1349d7df4c9d8d7532959;p=xscreensaver diff --git a/utils/sgivideo.c b/utils/sgivideo.c index 13fb7a3c..38b0c669 100644 --- a/utils/sgivideo.c +++ b/utils/sgivideo.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1997, 1998 Jamie Zawinski +/* xscreensaver, Copyright (c) 1997, 1998 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -318,13 +318,19 @@ grab_video_frame(Screen *screen, Visual *visual, Drawable dest) { int i; VLServer server = vlOpenVideo (NULL); + + if (!server) return False; + for (i = 0; i < 5; i++) /* if we get all black images, retry up to five times. */ { VLDevList dl; int j; - vlGetDeviceList(server, &dl); - vlCloseVideo(server); + + j = vlGetDeviceList(server, &dl); + vlCloseVideo(server); + if (j < 0) return False; + for (j = 0; j < dl.numDevices; j++) { VLDevice *d = &dl.devices[j];