{"id":21654,"url":"https://patchwork.libcamera.org/api/1.1/covers/21654/?format=json","web_url":"https://patchwork.libcamera.org/cover/21654/","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":"<20241017125220.60567-1-jacopo.mondi@ideasonboard.com>","date":"2024-10-17T12:52:15","name":"[RFC,v2,0/4] libcamera: Implement YamlEmitter","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/21654/mbox/","series":[{"id":4711,"url":"https://patchwork.libcamera.org/api/1.1/series/4711/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4711","date":"2024-10-17T12:52:15","name":"libcamera: Implement YamlEmitter","version":2,"mbox":"https://patchwork.libcamera.org/series/4711/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/21654/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 E21B4C326C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 17 Oct 2024 12:52:32 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BAA0065385;\n\tThu, 17 Oct 2024 14:52:31 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3D8B46353B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 17 Oct 2024 14:52:30 +0200 (CEST)","from ideasonboard.com (unknown [5.77.64.27])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4D4AB6DC;\n\tThu, 17 Oct 2024 14:50:46 +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=\"Pxj9Xj9x\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1729169447;\n\tbh=j6mk1hHnb9dc81IHFCCjM3lkOUAm6IUQZdFuQSaFSlc=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=Pxj9Xj9xYWf7S6H+OHalJFBbMQ5KAPpyIXvy1OchydyoWXCRESQp1v04JCrmYxMCJ\n\t4ecZYjsMHr9a8DVwJVQvNSnNrU7FWv3IfLtHFfiUUjOR1axn4WZFBuYcWjC2loxLJ/\n\twuC/0BSXlrR6FUuJN/VSPCEtT+gNrJQHP+dIIc1M=","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Subject":"[RFC v2 0/4] libcamera: Implement YamlEmitter","Date":"Thu, 17 Oct 2024 14:52:15 +0200","Message-ID":"<20241017125220.60567-1-jacopo.mondi@ideasonboard.com>","X-Mailer":"git-send-email 2.47.0","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":"v1->v2:\n- Remove YamlEvent\n- Remove heap allocation\n- Remove YamlObject::close()\n- Do not inherit std::unordered_map from YamlDict\n- Remove YamlScaler << libcamera::Orientation\n\nThis 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     | 162 ++++++++\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            |  93 +++++\n src/libcamera/yaml_emitter.cpp                | 362 ++++++++++++++++++\n 11 files changed, 842 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.47.0"}