Fix code review comments from https://gerrit.automotivelinux.org/gerrit/c/apps/camera... 89/27089/2 12.92.0 marlin/12.92.0 marlin_12.92.0
authorVasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
Sun, 16 Jan 2022 07:50:03 +0000 (08:50 +0100)
committerVasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
Mon, 17 Jan 2022 12:02:16 +0000 (13:02 +0100)
Bug-AGL: SPEC-4148
Change-Id: I18b3029eb91d4c693f1848c0e7eeedcdaae14e7f
Signed-off-by: Vasyl Vavrychuk <vasyl.vavrychuk@opensynergy.com>
app/main.cpp
app/utils.cpp
app/utils.h

index 67594bf..1acb70f 100644 (file)
@@ -669,7 +669,7 @@ int main(int argc, char *argv[])
 
        memset(pipeline_str, 0, sizeof(pipeline_str));
        snprintf(pipeline_str, sizeof(pipeline_str), "v4l2src device=%s ! video/x-raw,width=%d,height=%d ! waylandsink", 
-               get_camera_device(), WINDOW_WIDTH_SIZE, WINDOW_HEIGHT_SIZE);
+               get_first_camera_device(), WINDOW_WIDTH_SIZE, WINDOW_HEIGHT_SIZE);
        gst_init(&gargc, &gargv);
 
        setbuf(stdout, NULL);
index 1cf71f2..45fd4d7 100644 (file)
@@ -156,7 +156,7 @@ os_create_anonymous_file(off_t size)
 }
 
 const char*
-get_camera_device(void)
+get_first_camera_device(void)
 {
        DIR *dir = opendir("/dev");
        if (!dir) {
@@ -165,20 +165,22 @@ get_camera_device(void)
        }
 
        static char device[PATH_MAX];
+       struct dirent *dirent;
        bool found = false;
-       while (struct dirent *dirent = readdir(dir)) {
-               if (strncmp(dirent->d_name, "video", strlen("video")))
+       while ((dirent = readdir(dir)) != NULL) {
+               struct v4l2_capability vid_cap;
+               int fd;
+
+               if (strcmp(dirent->d_name, "video"))
                        continue;
-               if (!isdigit(dirent->d_name[strlen("video")]))
+               if (!isdigit(dirent->d_name[5]))
                        continue;
 
-               strcpy(device, "/dev/");
-               strncat(device, dirent->d_name, sizeof(device) - 1);
+               snprintf(device, sizeof(device), "/dev/%s", dirent->d_name);
 
-               int fd = open(device, O_RDWR);
+               fd = open(device, O_RDWR);
                if (fd == -1)
                        continue;
-               struct v4l2_capability vid_cap;
                if (ioctl(fd, VIDIOC_QUERYCAP, &vid_cap) < 0) {
                        close(fd);
                        continue;
index 8d6f0fd..0e77531 100644 (file)
@@ -9,7 +9,7 @@ int
 os_create_anonymous_file(off_t size);
 
 const char*
-get_camera_device(void);
+get_first_camera_device(void);
 
 #ifdef  __cplusplus
 }