[{"id":1174,"web_url":"https://patchwork.libcamera.org/comment/1174/","msgid":"<20190402090420.5afkh7n7vbe5ctdl@uno.localdomain>","date":"2019-04-02T09:04:20","subject":"Re: [libcamera-devel] [PATCH v5 00/19] libcamera: ipu3: Add ImgU\n\tsupport","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hello,\n\nOn Tue, Mar 26, 2019 at 09:38:43AM +0100, Jacopo Mondi wrote:\n> Hello,\n>    patch count reduced a bit, from the 31 of v4+multiple-stream to this\n> 19 for v5 of ImgU support series only.\n>\n> Quite some changes compared to v4 mostly suggested by Laurent during review:\n> - Made CIO2Device and ImgUDevice classes and moved most of the code in class\n>   methods. The pipeline handler code now mostly interacts with a 'cio2' and\n>   an 'imgu' objects, and call methods on them to perform format configuration,\n>   memory allocation and start/stop of video devices.\n> - Removed buffer queueing from viewfinder and stat: the nodes need to be linked\n>   and configured but buffers might not be queued there.\n> - Profiled buffer sharing between CIO2 and ImgU input: requests for output\n>   buffers can be queued asynchronously without stalling the pipeline\n> - Cache camera sizes and format at camera creation time\n> - Add a few patches for geometry and v4l2_subdevice, to generalize helpers\n>   methods previously implemented for IPU3 pipeline only\n>\n> Two points remain to be clarified:\n> - It is not yet clear to me how to calculate the sizes in the capture pipeline\n>   based on the requested output resolutions. Upstream pointed us to an XML\n>   file with all sizes hardcoded, which is an unacceptable solution as sizes\n>   have to be calculated dynamically based on requested stream configurations.\n>   -> upstream will provide a programmatic way to do so\n> - When operating on one of the two ImgU pipes, if the other one is still linked\n>   from a previous capture operation, the whole ImgU unit stall.\n>   Please see 19/19 I try to explain the issue in a lengthy comment.\n>   -> to be notified to upstream\n>\n> I will send multiple stream support separately, to ease integration of ImgU\n> support first.\n>\n> Thanks\n>    j\n>\n> Jacopo Mondi (19):\n>   libcamera: formats: Add toString() methods\n>   libcamera: formats: Define FormatEnum type\n>   libcamera: geometry: Add toString to Rectangle\n>   libcamera: v4l2_subdevice: Rename deviceName() method\n>   libcamera: v4l2_device: Create device from entity name\n>   libcamera: v4l2_subdevice:  Create device from entity name\n\nI have now pushed these ^ patches which have received review tags to\nslim down the forthcoming v6 of this series.\n\nThanks\n  j\n\n>   libcamera: geometry: Add 0-initialized SizeRange constructor\n>   libcamera: ipu3: Cache the camera sizes\n>   libcamera: ipu3: Set stream configuration from sensor\n>   libcamera: ipu3: Create CIO2Device class\n>   libcamera: ipu3: Create ImgUDevice class\n>   libcamera: ipu3: Apply image format to the pipeline\n>   libcamera: ipu3: Implement memory handling\n>   libcamera: ipu3: Implement camera start/stop\n>   libcamera: ipu3: Queue requests to ImgU\n>   libcamera: ipu3: Connect CIO2 and ImgU bufferReady signals\n>   libcamera: ipu3: Use NV12 as default image format\n>   libcamera: ipu3: Limit resolution to 2560x1920\n>   libcamera: ipu3: Enable ImgU media links\n>\n>  src/libcamera/formats.cpp              |   27 +\n>  src/libcamera/geometry.cpp             |   27 +-\n>  src/libcamera/include/formats.h        |   22 +\n>  src/libcamera/include/geometry.h       |   13 +-\n>  src/libcamera/include/v4l2_device.h    |    6 +\n>  src/libcamera/include/v4l2_subdevice.h |   15 +-\n>  src/libcamera/meson.build              |    1 +\n>  src/libcamera/pipeline/ipu3/ipu3.cpp   | 1183 ++++++++++++++++++++----\n>  src/libcamera/v4l2_device.cpp          |   40 +\n>  src/libcamera/v4l2_subdevice.cpp       |   49 +-\n>  test/v4l2_subdevice/list_formats.cpp   |    6 +-\n>  11 files changed, 1203 insertions(+), 186 deletions(-)\n>  create mode 100644 src/libcamera/formats.cpp\n>  create mode 100644 src/libcamera/include/formats.h\n>\n> --\n> 2.21.0\n>","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[217.70.183.199])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 988BA600FD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Apr 2019 11:03:35 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 4E199FF814\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Apr 2019 09:03:35 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Tue, 2 Apr 2019 11:04:20 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190402090420.5afkh7n7vbe5ctdl@uno.localdomain>","References":"<20190326083902.26121-1-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"sandyobnf52wqx2h\"","Content-Disposition":"inline","In-Reply-To":"<20190326083902.26121-1-jacopo@jmondi.org>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH v5 00/19] libcamera: ipu3: Add ImgU\n\tsupport","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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":"Tue, 02 Apr 2019 09:03:35 -0000"}}]