{"id":2024,"url":"https://patchwork.libcamera.org/api/1.1/covers/2024/?format=json","web_url":"https://patchwork.libcamera.org/cover/2024/","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":"<20190927024417.725906-1-niklas.soderlund@ragnatech.se>","date":"2019-09-27T02:44:04","name":"[libcamera-devel,v3,00/13] libcamera: ipa: Add basic IPA support","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/1.1/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"mbox":"https://patchwork.libcamera.org/cover/2024/mbox/","series":[{"id":508,"url":"https://patchwork.libcamera.org/api/1.1/series/508/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=508","date":"2019-09-27T02:44:04","name":"libcamera: ipa: Add basic IPA support","version":3,"mbox":"https://patchwork.libcamera.org/series/508/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/2024/comments/","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["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 66AC561658\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 27 Sep 2019 04:45:24 +0200 (CEST)","from bismarck.berto.se (unknown [84.172.88.101])\n\tby bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid c2cad433-e0d0-11e9-bdc3-005056917a89;\n\tFri, 27 Sep 2019 04:44:58 +0200 (CEST)"],"X-Halon-ID":"c2cad433-e0d0-11e9-bdc3-005056917a89","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":"Fri, 27 Sep 2019 04:44:04 +0200","Message-Id":"<20190927024417.725906-1-niklas.soderlund@ragnatech.se>","X-Mailer":"git-send-email 2.23.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v3 00/13] libcamera: ipa: Add basic IPA\n\tsupport","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":"Fri, 27 Sep 2019 02:45:24 -0000"},"content":"Hi,\n\nThis series adds basic support for Image Processing Algorithms (IPA). It\nextends the pipeline handler framework to optionally allow an IPA plugin\nto prepare a parameters buffer and examine a statistics buffer as well\nas applying V4L2 controls on a sensor. It's not mandatory for a pipeline\nto have an IPA component, but if a pipeline handler supports an IPA it\nbecomes mandatory, if an IPA component can't be found that pipeline will\nnot register any cameras.\n\nThis series adds an Auto Exposure control and extends the rkisp1\npipeline with and IPA that implements a very basic control loop for\nexposure time and gain. The series compared to v2 have been merged with \nthe meta data series that was developed on top of this and now supports \nreporting meta data back to the application about the control loop \nstate.\n\nThe series do not make use of serialization or other patches floating \naround to make isolation of the IPA easer. Some care have been taken to \nmake the IPA interface simpler to \"carry\" over a C interface. But more \nwork is needed as that work becomes more mature. If this is done on top \nor in a next version of this series is an ordering of what is ready \nfirst.\n\nTo be able to test this series using qcam two timer patches for the Qt \nevent dispatcher posted separately. To test this series using cam no \nexternal patches are needed.\n\nThe series is more or less rewritten from v2 so a meaningful change log \nis hard to produce.\n\nNiklas Söderlund (13):\n  libcamera: pipeline: Move IPA from pipeline to camera data\n  libcamera: controls: Add AeEnable\n  libcamera: controls: Allow read only access to control values\n  libcamera: request: Allow read only access to controls\n  libcamera: request: Add IPAMetaData\n  libcamera: pipeline: Add helper to process meta data coming from IPA\n  libcamera: ipa: meson: Allow access to internal libcamera headers\n  libcamera: ipa: Extend to support IPA interactions\n  libcamera: timeline: Add a basic timeline implementation\n  test: Add timeline test\n  include: linux: Add rkisp1 kernel header and format definitions\n  libcamera: ipa: rkisp1: Add basic control of auto exposure\n  libcamera: pipeline: rkisp1: Attach to an IPA\n\n include/ipa/ipa_interface.h                |  21 +\n include/libcamera/control_ids.h            |   1 +\n include/libcamera/controls.h               |   1 +\n include/libcamera/request.h                |  13 +\n include/linux/rkisp1-config.h              | 816 +++++++++++++++++++++\n include/linux/videodev2.h                  |   4 +\n src/ipa/ipa_dummy.cpp                      |   6 +-\n src/ipa/ipa_rkisp1.cpp                     | 228 ++++++\n src/ipa/meson.build                        |  15 +-\n src/libcamera/controls.cpp                 |  52 +-\n src/libcamera/include/meson.build          |   1 +\n src/libcamera/include/pipeline_handler.h   |   7 +\n src/libcamera/include/timeline.h           |  71 ++\n src/libcamera/ipa_interface.cpp            | 106 +++\n src/libcamera/meson.build                  |   1 +\n src/libcamera/pipeline/rkisp1/meson.build  |   1 +\n src/libcamera/pipeline/rkisp1/rkisp1.cpp   | 263 ++++++-\n src/libcamera/pipeline/rkisp1/rkisp1.h     |  81 ++\n src/libcamera/pipeline/rkisp1/timeline.cpp |  56 ++\n src/libcamera/pipeline/vimc.cpp            |  17 +-\n src/libcamera/pipeline_handler.cpp         |  49 ++\n src/libcamera/proxy/ipa_proxy_linux.cpp    |  13 +-\n src/libcamera/request.cpp                  |  48 +-\n src/libcamera/timeline.cpp                 | 267 +++++++\n test/meson.build                           |   1 +\n test/timeline.cpp                          |  97 +++\n 26 files changed, 2202 insertions(+), 34 deletions(-)\n create mode 100644 include/linux/rkisp1-config.h\n create mode 100644 src/ipa/ipa_rkisp1.cpp\n create mode 100644 src/libcamera/include/timeline.h\n create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1.h\n create mode 100644 src/libcamera/pipeline/rkisp1/timeline.cpp\n create mode 100644 src/libcamera/timeline.cpp\n create mode 100644 test/timeline.cpp"}