Cover Letter Detail
Show a cover letter.
GET /api/covers/8442/?format=api
{ "id": 8442, "url": "https://patchwork.libcamera.org/api/covers/8442/?format=api", "web_url": "https://patchwork.libcamera.org/cover/8442/", "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": "<20200627030043.2088585-1-niklas.soderlund@ragnatech.se>", "date": "2020-06-27T03:00:30", "name": "[libcamera-devel,00/13] libcamera: ipu3: Refactoring of ImgU", "submitter": { "id": 5, "url": "https://patchwork.libcamera.org/api/people/5/?format=api", "name": "Niklas Söderlund", "email": "niklas.soderlund@ragnatech.se" }, "mbox": "https://patchwork.libcamera.org/cover/8442/mbox/", "series": [ { "id": 1046, "url": "https://patchwork.libcamera.org/api/series/1046/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1046", "date": "2020-06-27T03:00:30", "name": "libcamera: ipu3: Refactoring of ImgU", "version": 1, "mbox": "https://patchwork.libcamera.org/series/1046/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/8442/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 0D3BDC2E66\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 27 Jun 2020 03:00:51 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 53432609DF;\n\tSat, 27 Jun 2020 05:00:50 +0200 (CEST)", "from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8CB6C609A5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 27 Jun 2020 05:00:49 +0200 (CEST)", "from bismarck.berto.se (p4fca2eca.dip0.t-ipconnect.de\n\t[79.202.46.202]) by bin-vsp-out-03.atm.binero.net (Halon) with ESMTPA\n\tid 51860843-b822-11ea-86ee-0050569116f7;\n\tSat, 27 Jun 2020 05:00:15 +0200 (CEST)" ], "X-Halon-ID": "51860843-b822-11ea-86ee-0050569116f7", "Authorized-sender": "niklas@soderlund.pp.se", "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Sat, 27 Jun 2020 05:00:30 +0200", "Message-Id": "<20200627030043.2088585-1-niklas.soderlund@ragnatech.se>", "X-Mailer": "git-send-email 2.27.0", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH 00/13] libcamera: ipu3: Refactoring of ImgU", "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>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Hi,\n\nThis series do some cleanup of the IPU3 pipeline. It removes dead or \nalmost dead code, replacing it with something more coherent to what is \ndone elsewhere in the pipeline. It breaks out the ImgU to a separate cpp \nand h file.\n\nIt reworks a bit how the streams are identified and handled inside the \npipeline. When the pipeline was first developed only the output and \nviewfinder streams where available, now we have a RAW stream in addition \nto this. Some of the abstraction around streams and which hardware \nresource they are backed by made sens in the earlier context but not so \nmuch once RAW is added to the mix. The biggest difference in this rework \nis that the ImgUDevice gets explicit functions to configure each of its \nsink instead of having a generic one which depends which pointer is \npassed to it. This makes reading code where RAW and ImgU stremas are \nmixed much nicer IMHO.\n\nLastly some assumptions that buffers must be allocated at video nodes \nthat are not involved in the capture session are being challenged. This \nwas true a year ago but not any more it seems. Chancing this simplifies \nthe driver enormously and saves on memory that otherwise would be \nwasted. I have really tried to force the end result to failed by \nresetting the hardware between each test so that no video node \nconfiguration from a previous sessions saves the day.\n\nI have for both sensors reset the hardware and then tested the following \ncapture combinations successfully. After the first capture session for \neach one in the list that was done after a power cycle all the other \ncaptures where tried in a semi random order and always succeeded.\n\n cam -c 1 -s role=viewfinder -C\n cam -c 1 -s role=still -C\n cam -c 1 -s role=still -s role=viewfinder -C\n cam -c 1 -s role=still -s role=viewfinder -s role=stillraw -C\n cam -c 1 -s role=stillraw -C\n\nI have also played a bit with qcam and it works as expected and the \nresulting normal och raw frames are generated and contains the expected \ndata.\n\nNiklas Söderlund (13):\n libcamera: ipu3: Remove unused name_ filed from IPU3Stream\n libcamera: ipu3: Import instead of allocate statistic buffers\n libcamera: ipu3: Always import buffers for ImgU sinks\n libcamera: ipu3: Remove usage of IPU3CameraData from ImgUDevice\n libcamera: ipu3: imgu: Move the ImgUDevice class to separate files\n libcamera: ipu3: imgu: Do not cache index\n libcamera: ipu3: imgu: Mark things that are internal as private\n libcamera: ipu3: imgu: Use specific functions to configure each sink\n libcamera: ipu3: Do not duplicate data in IPU3Stream\n libcamera: ipu3: Remove the active flag from IPU3Stream\n libcamera: ipu3: Remove IPU3Stream\n libcamera: ipu3: Align how CIO2 and ImgU are stored in CameraData\n libcamera: ipu3: imgu: Remove ImgUOutput\n\n src/libcamera/pipeline/ipu3/imgu.cpp | 351 ++++++++++++++\n src/libcamera/pipeline/ipu3/imgu.h | 87 ++++\n src/libcamera/pipeline/ipu3/ipu3.cpp | 581 ++++--------------------\n src/libcamera/pipeline/ipu3/meson.build | 1 +\n 4 files changed, 515 insertions(+), 505 deletions(-)\n create mode 100644 src/libcamera/pipeline/ipu3/imgu.cpp\n create mode 100644 src/libcamera/pipeline/ipu3/imgu.h" }