{"id":2485,"url":"https://patchwork.libcamera.org/api/covers/2485/?format=json","web_url":"https://patchwork.libcamera.org/cover/2485/","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":"<20200103054120.30979-1-paul.elder@ideasonboard.com>","date":"2020-01-03T05:41:16","name":"[libcamera-devel,v5,0/4] 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/2485/mbox/","series":[{"id":598,"url":"https://patchwork.libcamera.org/api/series/598/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=598","date":"2020-01-03T05:41:16","name":"V4L2 compatibility layer","version":5,"mbox":"https://patchwork.libcamera.org/series/598/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/2485/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 0821C60462\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  3 Jan 2020 06:41:28 +0100 (CET)","from neptunite.amanokami.net (unknown [96.44.9.94])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4008430F;\n\tFri,  3 Jan 2020 06:41:27 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1578030087;\n\tbh=o46u+7gjgGb1CB3HQiSgrzH4yq5NdJ5qmK8KAIDIAQY=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=qYadWVyaTd1Z9w2ZSfRYLAfBRQ/qA0sv5E6Be91JVi28ZFKPm5SUn1KvNJOLznTVs\n\twfNDGx86mer75jHUR1GwBh+cQNh1cBiwgW1NI4Wivg94SW2j7uFOujPT5C7GbNo0bs\n\ty77S1DVUzfGYyDvLkb7/Abz009i4nIDuErFRjv1o=","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Fri,  3 Jan 2020 00:41:16 -0500","Message-Id":"<20200103054120.30979-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 v5 0/4] 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":"Fri, 03 Jan 2020 05:41:28 -0000"},"content":"Implement the initial version of the V4L2 compatibility layer.\n\nPatch 2/4 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 3/4 implements the mapping assignment for the\nuvcvideo pipeline handler.\n\nPatch 4/4 is the complete implementation of the V4L2 compatibility\nlayer.\n\nIn v5, we now depend on the following two patches:\n3/4 - libcamera: pipeline: uvcvideo: Fix crash when default entity is\n      not found\n4/4 - libcamera: object: Support reference arguments in invokeMethod()\n\nPaul Elder (4):\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/pipeline/uvcvideo.cpp      |   6 +-\n src/libcamera/pipeline_handler.cpp       |  13 +-\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                 | 228 ++++++++\n src/v4l2/v4l2_camera.h                   |  85 +++\n src/v4l2/v4l2_camera_proxy.cpp           | 654 +++++++++++++++++++++++\n src/v4l2/v4l2_camera_proxy.h             |  82 +++\n src/v4l2/v4l2_compat.cpp                 |  80 +++\n src/v4l2/v4l2_compat_manager.cpp         | 257 +++++++++\n src/v4l2/v4l2_compat_manager.h           |  77 +++\n 17 files changed, 1582 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"}