Cover Letter Detail
Show a cover letter.
GET /api/covers/8398/?format=api
{ "id": 8398, "url": "https://patchwork.libcamera.org/api/covers/8398/?format=api", "web_url": "https://patchwork.libcamera.org/cover/8398/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20200624145256.48266-1-paul.elder@ideasonboard.com>", "date": "2020-06-24T14:52:34", "name": "[libcamera-devel,v4,00/22] Support v4l2-compliance", "submitter": { "id": 17, "url": "https://patchwork.libcamera.org/api/people/17/?format=api", "name": "Paul Elder", "email": "paul.elder@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/8398/mbox/", "series": [ { "id": 1041, "url": "https://patchwork.libcamera.org/api/series/1041/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1041", "date": "2020-06-24T14:52:34", "name": "Support v4l2-compliance", "version": 4, "mbox": "https://patchwork.libcamera.org/series/1041/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/8398/comments/", "headers": { "Return-Path": "<paul.elder@ideasonboard.com>", "Received": [ "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AC64F60103\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 24 Jun 2020 16:53:15 +0200 (CEST)", "from jade.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:8147:f2a2:a8c6:9087])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 11DCD2A8;\n\tWed, 24 Jun 2020 16:53:13 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"vJswO8JO\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1593010395;\n\tbh=Ah/Kga12yTFaWZTfajutp60GefsEU5UkpBKnxtD90Lg=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=vJswO8JOZRXJwRsipgPUIx4pbMtsUHqm9oBk8UAvUIZK8dhbXNWSgOLeREdeM90l5\n\tf8QLBvsfXNJIqyi5itBEhYzpbhIAOz3G5UGQAsJVubAVi2QS7Yq+jFHNPVp+o9ZJHi\n\tv1rfk96kZHByCvB4/U6OiJPLDIfLyuQKVhnYE6HY=", "From": "Paul Elder <paul.elder@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Wed, 24 Jun 2020 23:52:34 +0900", "Message-Id": "<20200624145256.48266-1-paul.elder@ideasonboard.com>", "X-Mailer": "git-send-email 2.27.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v4 00/22] Support v4l2-compliance", "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": "Wed, 24 Jun 2020 14:53:15 -0000" }, "content": "This patchset makes the V4L2 compatibility layer comply with\nv4l2-compliance, and v4l2-compliance -s. I have gotten zero failues and\n2 warnings with a uvcvideo libcamera camera. The two warnings are that\nVIDIOC_S_FMT doesn't work from a second fd (after a different fd has\nalready called it), and that VIDIOC_CREATEBUFS is not supported, which I\nthink are fair to not support.\n\nThe v4l2-compliance used for this test only adds libcamera to businfo\nprefixes with respect to master.\n\nNote that there are a couple failues when using a vimc libcamera camera,\nas these cameras doesn't support setting frame sizes that are not\nmultiples of 3.\n\nAlso, while trying to comply with v4l2-compliance I lost support for\nfirefox. It's v4 and I still haven't gotten around to it. qv4l2 still\nworks, though.\n\n* Changes in v4\n- cosmetic changes and minor code polishing\n\n* Changes in v3:\n\n- replace exclusive locking of the camera proxy with a concept of\n ownership\n- implement v4l2 priority to actually lock the camera similar to v4l2 in\n the kernel, alongside implicit ownership of the camera\n- made the compat layer thread-safe by serializing accesses to the\n camera proxy\n- split conglomerate v4l2-compliance fix patches into separate small\n patches\n\n* Changes in v2:\n\nThe biggest change in v2 was adding V4L2CameraFile to contain all the\ninformation related to the open file instance, instead of containing\nmaps for them within V4L2CameraProxy. dup is handled solely in\nV4L2CompatManager, by adding another fd -> V4L2CameraFile map. The\nV4L2CameraFile recount is handled automatically by V4L2CompatManager\nwith shared pointers, while V4L2CameraProxy recount is handled manually,\nsince it is not constructed and deconstructed but rather is open()ed and\nclose()d.\n\nThe other changes are minor in comparison. One is consolidating the null\narg checks in the ioctl handlerrs. Another is splitting all the\nv4l2-compliance streaming test fixes to their own patches.\n\nPaul Elder (17):\n v4l2: v4l2_camera_file: Add V4L2CameraFile to model the opened camera\n file\n v4l2: v4l2_compat: Support multiple open\n v4l2: v4l2_camera_proxy: Check for null arg values in main ioctl\n handler\n v4l2: v4l2_camera_proxy: Fix v4l2-compliance support for extended\n formats\n v4l2: v4l2_camera_proxy: Implement VIDIOC_G/S_PRIORITY\n v4l2: v4l2_camera_proxy: Implement VIDIOC_ENUMINPUT, VIDIOC_G/S_INPUT\n v4l2: v4l2_camera_proxy: Implement VIDIOC_ENUM_FRAMESIZES\n v4l2: v4l2_camera: Add isRunning()\n v4l2: v4l2_camera_proxy: Disallow dqbuf when not streaming\n v4l2: v4l2_camera_proxy: noop if streamon when stream is already on\n v4l2: v4l2_camera_proxy: Reset buffer flags on reqbufs 0\n v4l2: v4l2_camera: Don't use libcamera::Semaphore for available\n buffers\n v4l2: v4l2_camera: Clear pending requests on freeBuffers and streamOff\n v4l2: v4l2_camera_proxy: Check arg->index bounds for querybuf, qbuf,\n dqbuf\n v4l2: v4l2_camera_proxy: Don't allow streamon if no buffers have been\n requested\n v4l2: v4l2_camera_proxy: Don't allow buffers to be freed if still\n mmaped\n v4l2: v4l2_camera_proxy: Fix buffer flags related to queueing\n\n src/v4l2/meson.build | 1 +\n src/v4l2/v4l2_camera.cpp | 44 +++-\n src/v4l2/v4l2_camera.h | 10 +-\n src/v4l2/v4l2_camera_file.cpp | 45 ++++\n src/v4l2/v4l2_camera_file.h | 35 +++\n src/v4l2/v4l2_camera_proxy.cpp | 402 +++++++++++++++++++++++++------\n src/v4l2/v4l2_camera_proxy.h | 57 +++--\n src/v4l2/v4l2_compat_manager.cpp | 71 +++---\n src/v4l2/v4l2_compat_manager.h | 4 +-\n 9 files changed, 539 insertions(+), 130 deletions(-)\n create mode 100644 src/v4l2/v4l2_camera_file.cpp\n create mode 100644 src/v4l2/v4l2_camera_file.h" }