http://ftp.x.org/contrib/applications/xscreensaver-3.26.tar.gz
[xscreensaver] / utils / sgivideo.c
index 13fb7a3c28e16a3cae6d78a6c86967ccacb3733b..38b0c669e9b0a2249a717f20409652b4d3225d9c 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997, 1998 Jamie Zawinski <jwz@netscape.com>
+/* xscreensaver, Copyright (c) 1997, 1998 Jamie Zawinski <jwz@jwz.org>
  *
  * 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];