Cover Letter Detail
Show a cover letter.
GET /api/covers/13596/?format=api
{ "id": 13596, "url": "https://patchwork.libcamera.org/api/covers/13596/?format=api", "web_url": "https://patchwork.libcamera.org/cover/13596/", "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": "<20210902042303.2254-1-laurent.pinchart@ideasonboard.com>", "date": "2021-09-02T04:22:51", "name": "[libcamera-devel,RFC,v1,00/12] libcamera: Handle fallout of FrameBuffer offset support", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/13596/mbox/", "series": [ { "id": 2435, "url": "https://patchwork.libcamera.org/api/series/2435/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2435", "date": "2021-09-02T04:22:51", "name": "libcamera: Handle fallout of FrameBuffer offset support", "version": 1, "mbox": "https://patchwork.libcamera.org/series/2435/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/13596/comments/", "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id DD00ABDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 2 Sep 2021 04:23:25 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 24F6969170;\n\tThu, 2 Sep 2021 06:23:25 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4D4D960503\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 2 Sep 2021 06:23:23 +0200 (CEST)", "from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9E6DA45E;\n\tThu, 2 Sep 2021 06:23:22 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"N0BiOWUa\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630556602;\n\tbh=lYELlp6iuNX7sxL7l7C117ol1MoJZLImC+l1KHfBhWA=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=N0BiOWUa8/FJBeVh6KHk+TvSmevaqEXDr/oikCif12Xe/sL37XCRVT9uXRhSFx1Aj\n\tdOaUbNMRD3XU4/0j5UNZazJgmNXeThfPiSH68HeXjo6mS2GMwaGhIpZqd8rQRc7Ohb\n\t2Fl02/sqhyiF4rjwi7pGWrKfPVuEHf5HnvEPMg1w=", "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Thu, 2 Sep 2021 07:22:51 +0300", "Message-Id": "<20210902042303.2254-1-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.31.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [RFC PATCH v1 00/12] libcamera: Handle fallout of\n\tFrameBuffer offset support", "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>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Hello everybody,\n\nThis patch series started as an investigation of a qcam failure with\nIPU3 after the merge of the FrameBuffer offset support. While a hack in\nqcam would be possible, I decided to instead address the core issue and\nfix it in V4L2VideoDevice.\n\nThe series only covers the changes needed in the libcamera core. qcam is\nstill broken, and this actually introduces a breakage with cam as well.\nI wouldn't be surprised if the adaptation layers (Android, GStreamer and\nV4L2) were also broken somehow by this series when the camera produces\nmulti-planar formats. I will address that as a next step, but I'd like\nfeedback on the changes in the core first as they will have an impact on\nthe applications and adaptation layers.\n\nThe most important change is in patches 10/12 and 11/12, which translate\nbetween V4L2 buffers and libcamera FrameBuffer to handle the case where\na multi-planar frame buffer is used with the V4L2 single-planar API.\nIt's working more or less by chance at the moment (except in qcam where\nit's broken, and possibly in other places I haven't tested). Patches\n01/12 to 09/12 are cleanups and additions to prepare for the work in\nV4L2VideoDevice, and patch 12/12 is a small cleanup on top.\n\nThis series doesn't break any unit test, as vimc doesn't support NV12.\nAddition of NV12 support to the vimc kernel driver would be very nice,\nin order to test multi-planar support in our unit tests. Volunteers are\nwelcome ;-)\n\nLaurent Pinchart (12):\n libcamera: base: utils: Use size_t for index in utils::enumerate()\n libcamera: file_descriptor: Add a function to retrieve the inode\n libcamera: formats: Add planeSize() helpers to PixelFormatInfo\n libcamera: formats: Support V4L2 non-contiguous formats\n libcamera: framebuffer: Move planes check to constructor\n libcamera: framebuffer: Add a function to check if planes are\n contiguous\n libcamera: framebuffer: Allocate metadata planes at construction time\n libcamera: framebuffer: Prevent modifying the number of metadata\n planes\n libcamera: v4l2_videodevice: Cache PixelFormatInfo\n libcamera: v4l2_videodevice: Coalesce planes when queuing buffer\n libcamera: v4l2_videodevice: Split planes when dequeuing buffer\n libcamera: v4l2_videodevice: Use utils::enumerate()\n\n include/libcamera/base/utils.h | 4 +-\n include/libcamera/file_descriptor.h | 3 +\n include/libcamera/framebuffer.h | 19 +-\n include/libcamera/internal/formats.h | 6 +-\n include/libcamera/internal/framebuffer.h | 2 +\n include/libcamera/internal/v4l2_videodevice.h | 1 +\n src/android/mm/generic_camera_buffer.cpp | 11 +-\n src/android/yuv/post_processor_yuv.cpp | 10 +-\n src/cam/camera_session.cpp | 4 +-\n src/cam/file_sink.cpp | 2 +-\n src/libcamera/file_descriptor.cpp | 22 ++\n src/libcamera/formats.cpp | 223 ++++++++++++------\n src/libcamera/framebuffer.cpp | 60 ++++-\n src/libcamera/pipeline/ipu3/cio2.cpp | 2 +-\n src/libcamera/v4l2_pixelformat.cpp | 11 +-\n src/libcamera/v4l2_videodevice.cpp | 148 +++++++++---\n src/qcam/main_window.cpp | 2 +-\n src/qcam/viewfinder_gl.cpp | 2 +-\n src/qcam/viewfinder_qt.cpp | 2 +-\n src/v4l2/v4l2_camera_proxy.cpp | 8 +-\n test/utils.cpp | 10 +-\n 21 files changed, 402 insertions(+), 150 deletions(-)" }