{"id":18111,"url":"https://patchwork.libcamera.org/api/1.1/covers/18111/?format=json","web_url":"https://patchwork.libcamera.org/cover/18111/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20230114194712.23272-1-jacopo.mondi@ideasonboard.com>","date":"2023-01-14T19:47:07","name":"[libcamera-devel,v2,0/5] libcamera: camera_sensor: Centralize flips handling","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/1.1/people/143/?format=json","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/18111/mbox/","series":[{"id":3711,"url":"https://patchwork.libcamera.org/api/1.1/series/3711/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3711","date":"2023-01-14T19:47:07","name":"libcamera: camera_sensor: Centralize flips handling","version":2,"mbox":"https://patchwork.libcamera.org/series/3711/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/18111/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 C6939C3240\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 14 Jan 2023 19:47:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CE517625ED;\n\tSat, 14 Jan 2023 20:47:26 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4AD8C625D0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 14 Jan 2023 20:47:24 +0100 (CET)","from uno.LocalDomain (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 61AB44D4;\n\tSat, 14 Jan 2023 20:47:23 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1673725646;\n\tbh=GU3R3jauzVZ5xdq3G0R5rx6X72Z/CzVZMHD+2HMEzls=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:Cc:From;\n\tb=wlY44gXEnW5UfugjX8qMotsEvPEF5oOWgeYHn0itqwoazfGp4/f/4zqCruY9bYXhi\n\tO2riqTviSGu+jFbZ+jKy0m6g6pWZSNr7kMGDzAbQqXc2nXWEMP80R85Sc2azCBI7e3\n\tUmkg2MM6bkEBTR3sg2hA7Un650/Pn02znVVegksUhg1rymtQcZxGjeprYo6wetWkS/\n\tka6RiEF00pmFUqohwf8JPhhTtSztk0mX56gWWy/2+rlDW56zIt+EDsPTffH8Vn1vx2\n\tx8CCs36YG0e/JxYFjdIvczoVGL9muLcxD4a9dhu7q/aXhs7Na2AX6Z1XHfc0Aovmkm\n\t7x12pE+/xWN+Q==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1673725643;\n\tbh=GU3R3jauzVZ5xdq3G0R5rx6X72Z/CzVZMHD+2HMEzls=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=Y93uRU+gp4JsHw2Nv6SQtEo5ebS2a3uhxoasyBDF5a/ViELQtZbzqWnc4CuZHl+Ua\n\t0PwviL1mVWFgINsbgx/vjmQ2pX8FgcesPMMPseGhGOK/P858UWeMMC0qQtvZlkMbFP\n\tNcZMa8eDxJxNNW7kEl2SOLxhxYp0qaYDrToX/M+0="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Y93uRU+g\"; dkim-atps=neutral","To":"libcamera-devel@lists.libcamera.org","Date":"Sat, 14 Jan 2023 20:47:07 +0100","Message-Id":"<20230114194712.23272-1-jacopo.mondi@ideasonboard.com>","X-Mailer":"git-send-email 2.39.0","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 0/5] libcamera: camera_sensor:\n\tCentralize flips handling","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>","From":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"As the previous series\n[PATCH 0/9] libcamera: camera_sensor: Centralize flips handling\n\nas still some pending issue on the semantic of the rotation handling, I decided\nto centralize the sensor's flips handling, so whatever decision is made, it will\nhave to be implemented in one place only (at least initially).\n\nAs a bonus point (which is where I actually started from) add support for\nTransform to the RkISP1 pipeline handler.\n\nAn extrac from the previous cover letter\n\nThe CameraSensor class is extended with:\n\n1) Validate Transform:\n   The same logic as implemented in the IPU3/RPi PH is moved in the CameraSensor\n   class.\n\n2) Apply flips at CameraSensor::setFormat() time\n   Before applying a format, flips are operated according to the requested\n   Transform. Applying flips before setting a format is crucial to obtain an\n   up to data Bayer pattern order. In order to simplify setting a Transform\n   on the camera sensor, a new \"transform\" member is added to\n   V4L2SubdeviceFormat.\n\nNo functional changes intended for the RPi and the IPU3 pipeline handlers.\n\nJacopo Mondi (5):\n  libcamera: camera_sensor: Verify flips support\n  libcamera: camera_sensor: Validate Transform\n  libcamera: camera_sensor: Apply flips at setFormat()\n  libcamera: rkisp1: Add support for Transform\n  documentation: sensor_drivers: Document H/V flip\n\n Documentation/sensor_driver_requirements.rst  |  12 ++\n include/libcamera/internal/camera_sensor.h    |   5 +\n include/libcamera/internal/v4l2_subdevice.h   |   2 +\n src/libcamera/camera_sensor.cpp               | 106 +++++++++++++++++-\n src/libcamera/pipeline/ipu3/cio2.cpp          |   6 +-\n src/libcamera/pipeline/ipu3/cio2.h            |   4 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp          |  73 ++----------\n .../pipeline/raspberrypi/raspberrypi.cpp      |  86 +++-----------\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  16 ++-\n src/libcamera/v4l2_subdevice.cpp              |   7 ++\n 10 files changed, 172 insertions(+), 145 deletions(-)\n\n--\n2.39.0"}