{"id":2490,"url":"https://patchwork.libcamera.org/api/covers/2490/?format=json","web_url":"https://patchwork.libcamera.org/cover/2490/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200104001414.12755-1-paul.elder@ideasonboard.com>","date":"2020-01-04T00:14:08","name":"[libcamera-devel,v6,0/5] V4L2 compatibility layer","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/?format=json","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/2490/mbox/","series":[{"id":599,"url":"https://patchwork.libcamera.org/api/series/599/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=599","date":"2020-01-04T00:14:08","name":"V4L2 compatibility layer","version":6,"mbox":"https://patchwork.libcamera.org/series/599/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/2490/comments/","headers":{"Return-Path":"<paul.elder@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 27159605CD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  4 Jan 2020 01:14:21 +0100 (CET)","from neptunite.amanokami.net (unknown [96.44.9.94])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5E92830F;\n\tSat,  4 Jan 2020 01:14:20 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1578096860;\n\tbh=oSHGlUGIdbXZlB2kl9csuNkTlAo3EPpQrQ/xE0VgT4s=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=h+/mhxBYsrKexJG4sq926RJAnQN6c9bBQB36E6l0GWK7Wr4jZL7Mk/0FZQANRFAM2\n\tlLS0D6kEnCQdLQeR1tQrVqq5o0To1KJQuJdENel3RLFCuuYYWJdHmHuPFtkuPI8PJy\n\tCtM/P6YFqEJCeUNs3jrP4oggj1pCt1RefOI9cexU=","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Fri,  3 Jan 2020 19:14:08 -0500","Message-Id":"<20200104001414.12755-1-paul.elder@ideasonboard.com>","X-Mailer":"git-send-email 2.24.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v6 0/5] V4L2 compatibility layer","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Sat, 04 Jan 2020 00:14:21 -0000"},"content":"Implement the initial version of the V4L2 compatibility layer.\n\nPatch 1/5 (new addition) implements strlcpy that we use in the V4L2\ncompability later implementation instead of memcpying char arrays.\n\nPatch 3/5 implements the infrastructure for the pipeline handler to\noptionally assign a device number to each camera that it adds to the\ncamera manager, to allow the V4L2 comptibility layer to map device nodes\nto libcamera cameras. Patch 4/5 implements the mapping assignment for the\nuvcvideo pipeline handler.\n\nPatch 5/5 is the complete implementation of the V4L2 compatibility\nlayer.\n\nv6 is mostly cosmetic changes and minor fixes.\n\n6th time's a charm :)\n\nPaul Elder (5):\n  libcamera: utils: Add strlcpy\n  libcamera: v4l2_device, v4l2_videodevice: call open system call\n    directly\n  libcamera: camera_manager, pipeline_handler: allow retrieving cameras\n    by device numbers\n  libcamera: pipeline_handler: uvcvideo: register all Cameras along with\n    a devnum\n  v4l2: v4l2_compat: Add V4L2 compatibility layer\n\n include/libcamera/camera_manager.h       |   6 +-\n meson_options.txt                        |   5 +\n src/libcamera/camera_manager.cpp         |  61 ++-\n src/libcamera/include/pipeline_handler.h |   3 +-\n src/libcamera/include/utils.h            |   3 +\n src/libcamera/pipeline/uvcvideo.cpp      |   5 +-\n src/libcamera/pipeline_handler.cpp       |  13 +-\n src/libcamera/utils.cpp                  |  19 +\n src/libcamera/v4l2_device.cpp            |   3 +-\n src/libcamera/v4l2_videodevice.cpp       |   4 +-\n src/meson.build                          |   4 +\n src/v4l2/meson.build                     |  31 ++\n src/v4l2/v4l2_camera.cpp                 | 224 ++++++++\n src/v4l2/v4l2_camera.h                   |  85 +++\n src/v4l2/v4l2_camera_proxy.cpp           | 644 +++++++++++++++++++++++\n src/v4l2/v4l2_camera_proxy.h             |  81 +++\n src/v4l2/v4l2_compat.cpp                 |  85 +++\n src/v4l2/v4l2_compat_manager.cpp         | 250 +++++++++\n src/v4l2/v4l2_compat_manager.h           |  77 +++\n 19 files changed, 1586 insertions(+), 17 deletions(-)\n create mode 100644 src/v4l2/meson.build\n create mode 100644 src/v4l2/v4l2_camera.cpp\n create mode 100644 src/v4l2/v4l2_camera.h\n create mode 100644 src/v4l2/v4l2_camera_proxy.cpp\n create mode 100644 src/v4l2/v4l2_camera_proxy.h\n create mode 100644 src/v4l2/v4l2_compat.cpp\n create mode 100644 src/v4l2/v4l2_compat_manager.cpp\n create mode 100644 src/v4l2/v4l2_compat_manager.h\n\n--"}