X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=utils%2Fsgivideo.c;h=38b0c669e9b0a2249a717f20409652b4d3225d9c;hp=9fc0b781eacdc53af22fb36349858bcd5a9d572f;hb=14627f4038ada5d11456f3770090f3c39740d70f;hpb=93f25dc6827112d98b8b855ea85c8f5eb8123086 diff --git a/utils/sgivideo.c b/utils/sgivideo.c index 9fc0b781..38b0c669 100644 --- a/utils/sgivideo.c +++ b/utils/sgivideo.c @@ -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];