{"id":21612,"url":"https://patchwork.libcamera.org/api/covers/21612/?format=json","web_url":"https://patchwork.libcamera.org/cover/21612/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/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":"<20241014095937.24924-1-jacopo.mondi@ideasonboard.com>","date":"2024-10-14T09:59:32","name":"[RFC,0/4] libcamera: Implement YamlEmitter","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/?format=json","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/21612/mbox/","series":[{"id":4695,"url":"https://patchwork.libcamera.org/api/series/4695/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4695","date":"2024-10-14T09:59:32","name":"libcamera: Implement YamlEmitter","version":1,"mbox":"https://patchwork.libcamera.org/series/4695/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/21612/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 E7775C326C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 14 Oct 2024 10:00:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 36D7C6537F;\n\tMon, 14 Oct 2024 11:59:59 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1206B65369\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 14 Oct 2024 11:59:57 +0200 (CEST)","from ideasonboard.com (unknown [5.77.95.224])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 006C18BE;\n\tMon, 14 Oct 2024 11:58:05 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"HTG6Idaq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1728899896;\n\tbh=BywZRjeFh5VkKTS/NDCoEhZ4TznJoSDSH/wwvLNy5Go=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=HTG6IdaqATNhEadFzBEI8I2igpFTg0tOKcU5dHcDtgHzWRVEle+JS1mCzAPoYMm6t\n\tUfoNsdXIXByPavVPMBGx5lowZUOkxB0ceXr3OGJQXz83SzkUMyzSD1WA8CTmN44vLE\n\tU1vgXDvsvHRX8Waa/elCBy2Uj7/JZfUZveQscQYc=","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Subject":"[RFC 0/4] libcamera: Implement YamlEmitter","Date":"Mon, 14 Oct 2024 11:59:32 +0200","Message-ID":"<20241014095937.24924-1-jacopo.mondi@ideasonboard.com>","X-Mailer":"git-send-email 2.46.2","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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":"This series collects Paul's\n[PATCH 0/2] libcamera: Add support for dumping capture script\n\nand implements a YamlEmitter class on top, replacing the usage of raw\noutput streams with the YamlEmitter class.\n\nRFC mostly to collect opinions on the interface.\nDocumentation mostly to be done, rough edges here and there :)\n\nJacopo Mondi (2):\n  libcamera: Implement YamlEmitter\n  libcamera: pipeline_handler: Use YamlEmitter\n\nPaul Elder (2):\n  pipeline: Add support for dumping capture script and metadata\n  apps: cam: Add support for loading configuration from capture script\n\n include/libcamera/internal/camera.h           |   3 +\n include/libcamera/internal/meson.build        |   1 +\n include/libcamera/internal/pipeline_handler.h |  23 +\n include/libcamera/internal/yaml_emitter.h     | 172 +++++++\n src/apps/cam/camera_session.cpp               |  22 +-\n src/apps/cam/capture_script.cpp               | 164 +++++++\n src/apps/cam/capture_script.h                 |   8 +\n src/libcamera/camera.cpp                      |  13 +\n src/libcamera/meson.build                     |   1 +\n src/libcamera/pipeline_handler.cpp            |  87 ++++\n src/libcamera/yaml_emitter.cpp                | 427 ++++++++++++++++++\n 11 files changed, 911 insertions(+), 10 deletions(-)\n create mode 100644 include/libcamera/internal/yaml_emitter.h\n create mode 100644 src/libcamera/yaml_emitter.cpp\n\n--\n2.46.2"}