summaryrefslogtreecommitdiffstats
path: root/x11vnc/v4l.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/v4l.c')
-rw-r--r--x11vnc/v4l.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/x11vnc/v4l.c b/x11vnc/v4l.c
index 7dc7889..b4f3de8 100644
--- a/x11vnc/v4l.c
+++ b/x11vnc/v4l.c
@@ -1287,12 +1287,24 @@ static void parse_str(char *str, char **dev, char **settings, char **atparms) {
}
if (*dev == NULL) {
- s = (char *) malloc(strlen("/dev/") + strlen(str) + 1);
+ struct stat sbuf;
+ s = (char *) malloc(strlen("/dev/") + strlen(str) + 2);
if (strstr(str, "/dev/") == str) {
sprintf(s, "%s", str);
} else {
sprintf(s, "/dev/%s", str);
+ }
+ rfbLog("Checking existence of '%s'\n", s);
+ if (stat(s, &sbuf) != 0) {
+ rfbLogPerror("stat");
+ strcat(s, "0");
+ rfbLog("switching to '%s'\n", s);
}
+ if (stat(s, &sbuf) != 0) {
+ rfbLogPerror("stat");
+ rfbLog("You will need to specify the video device more explicity.\n");
+ }
+
*dev = s;
rfbLog("set video device to: '%s'\n", *dev);
}