[{"id":31974,"web_url":"https://patchwork.libcamera.org/comment/31974/","msgid":"<CAEB1ahuHBRXQxw5+c2y3LGzT5Bzyh5Vx1GqFsFVTDkvgRs19gg@mail.gmail.com>","date":"2024-10-31T07:17:55","subject":"Re: [PATCH v16 0/7] Add VirtualPipelineHandler","submitter":{"id":117,"url":"https://patchwork.libcamera.org/api/people/117/","name":"Cheng-Hao Yang","email":"chenghaoyang@chromium.org"},"content":"Friendly ping: As all patches are reviewed, can we merge this series recently?\n\nThanks :)\nHarvey\n\nOn Tue, Oct 22, 2024 at 3:45 PM Harvey Yang <chenghaoyang@chromium.org> wrote:\n>\n> Hi all,\n>\n> This series adds virtual pipeline handler, which doesn't depend on any\n> hardware, like camera sensor or ISP. Currently the configuration\n> supports test patterns and images.\n>\n> It passed the gitlab pipeline:\n> https://gitlab.freedesktop.org/chenghaoyang/libcamera/-/pipelines/1294884\n>\n> Updates in v16:\n> - Updates location in config with `properties::LocationNameValueMap`.\n>\n> Updates in v15:\n> - Fixed multi_stream_test with `PipelineHandler::match()`.\n>\n> Updates in v14:\n> - Refactored ImageFrames to keep a list of filepaths directly.\n>\n> Updates in v13:\n> - Returned an errno in `FrameGenerete::generateFrame()`\n>\n> Updates in v12:\n> - Added ImageFrameGenerator first, then add Parser.\n> - Removed ScaleMode argument, as only Fill is supported now.\n> - Fixed bug of Stream's configuration usage in configure().\n>\n> Updates in v11:\n> - Allowed a single value in the config file's frame_rates field.\n>\n> Updates in v10:\n> Apply fixes according to Jacopo's and Barnabás' comments.\n> - Split test_pattern and path fields in the yaml format.\n> - Let FrameGenerators control frameCount_.\n> - Fixed match() returning values.\n>\n> Updates in v9: Allocate contiguous memory for planes in the same\n> FrameBuffer.\n>\n> BR,\n> Harvey\n>\n>\n> Harvey Yang (7):\n>   libcamera: add DmaBufAllocator::exportBuffers()\n>   libcamera: Remove PipelineHandler Fatal check of non-empty\n>     MediaDevices\n>   libcamera: virtual: Add VirtualPipelineHandler\n>   libcamera: pipeline: Add test pattern for VirtualPipelineHandler\n>   libcamera: virtual: Add ImageFrameGenerator\n>   libcamera: virtual: Read config and register cameras based on the\n>     config\n>   libcamera: software_isp: Refactor SoftwareIsp to use\n>     DmaBufAllocator::exportBuffers\n>\n>  .../libcamera/internal/dma_buf_allocator.h    |  13 +\n>  meson.build                                   |   1 +\n>  meson_options.txt                             |   3 +-\n>  src/android/meson.build                       |  19 -\n>  src/libcamera/dma_buf_allocator.cpp           |  57 +++\n>  src/libcamera/pipeline/virtual/README.md      |  65 +++\n>  .../pipeline/virtual/config_parser.cpp        | 260 ++++++++++++\n>  .../pipeline/virtual/config_parser.h          |  39 ++\n>  .../pipeline/virtual/data/virtual.yaml        |  36 ++\n>  .../pipeline/virtual/frame_generator.h        |  29 ++\n>  .../virtual/image_frame_generator.cpp         | 172 ++++++++\n>  .../pipeline/virtual/image_frame_generator.h  |  49 +++\n>  src/libcamera/pipeline/virtual/meson.build    |  13 +\n>  .../virtual/test_pattern_generator.cpp        | 136 ++++++\n>  .../pipeline/virtual/test_pattern_generator.h |  52 +++\n>  src/libcamera/pipeline/virtual/virtual.cpp    | 398 ++++++++++++++++++\n>  src/libcamera/pipeline/virtual/virtual.h      |  61 +++\n>  src/libcamera/pipeline_handler.cpp            |  11 +-\n>  src/libcamera/software_isp/software_isp.cpp   |  20 +-\n>  src/meson.build                               |  19 +\n>  20 files changed, 1411 insertions(+), 42 deletions(-)\n>  create mode 100644 src/libcamera/pipeline/virtual/README.md\n>  create mode 100644 src/libcamera/pipeline/virtual/config_parser.cpp\n>  create mode 100644 src/libcamera/pipeline/virtual/config_parser.h\n>  create mode 100644 src/libcamera/pipeline/virtual/data/virtual.yaml\n>  create mode 100644 src/libcamera/pipeline/virtual/frame_generator.h\n>  create mode 100644 src/libcamera/pipeline/virtual/image_frame_generator.cpp\n>  create mode 100644 src/libcamera/pipeline/virtual/image_frame_generator.h\n>  create mode 100644 src/libcamera/pipeline/virtual/meson.build\n>  create mode 100644 src/libcamera/pipeline/virtual/test_pattern_generator.cpp\n>  create mode 100644 src/libcamera/pipeline/virtual/test_pattern_generator.h\n>  create mode 100644 src/libcamera/pipeline/virtual/virtual.cpp\n>  create mode 100644 src/libcamera/pipeline/virtual/virtual.h\n>\n> --\n> 2.47.0.105.g07ac214952-goog\n>","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 642A4C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 31 Oct 2024 07:18:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 854DB6539A;\n\tThu, 31 Oct 2024 08:18:12 +0100 (CET)","from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com\n\t[IPv6:2a00:1450:4864:20::22b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0D00060396\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 31 Oct 2024 08:18:08 +0100 (CET)","by mail-lj1-x22b.google.com with SMTP id\n\t38308e7fff4ca-2fb587d0436so6133181fa.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 31 Oct 2024 00:18:07 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"AbXvfa3R\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=chromium.org; s=google; t=1730359087; x=1730963887;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=lzH5yCICTvXOwHdfp0Yq047LL2BQVM9PwxLYNA1QKc4=;\n\tb=AbXvfa3R0i4Zyy+CLRhSld528Am2Bxrm+5Sdbg3iXDeqYiIgm0QCXoGtY0agikXqvl\n\tYwmdnuGjX550X3D10pA0YzIIVdsdLHiRpzjXK/veibWBH5AMxlaW6REFZhgrWA+8iR8v\n\tz8lCXi8WpckH1HMIM149EfvLYmp4+QmIxEeoM=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1730359087; x=1730963887;\n\th=content-transfer-encoding:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=lzH5yCICTvXOwHdfp0Yq047LL2BQVM9PwxLYNA1QKc4=;\n\tb=v/RhVopDK0+5T7cfUufSvqnk2HB/QLivnmkc4qlDS1q/ZL1PWPZHQdlodQ/IiWPAvv\n\tqZGWx3YIB6rECD7qCl30HzbO9ahHyAn2paazBMA6T2JU0gW6lxJSXLNAWPhKl5qIOcnh\n\t/5uuTnznNytGyof6BWIs1y4+YaioTKuF6CakYUwkx3w+g84Rqpm1EcPyupmzBArJmYF4\n\tdPKGYHewpaVjKfRD0cJ9qLISLeRAh3wSN1Nj/hnfPrEgJvnr/r155HbD6E7Wta6XtVot\n\t4xoRvFNT+qTchu51AkFM3oPAK3foNklzSh8ciYuKjHZIskTPdvA60+v2oY1d21p3Ox7o\n\tEBnw==","X-Gm-Message-State":"AOJu0Yy60y0ltR85WMeSGczUyxtrv/uyU0UX/U3Y4aSxLwupch++fmDq\n\tYU0RMczv7Z/Kkz269Us3+8HRc8aEDL32GYw1D0pyVrsIRTv9M+tcx4l2LJ024LAT+XJjk/6XI1Z\n\tCzZryQn7ML44kmxTFB3t2Ex+KU2+Lofk2TFeB40CF4RcpOjc=","X-Google-Smtp-Source":"AGHT+IH9mkn+ABR4pwvf9ctFBv0wpbckVKioQcV8jHdcUBqQgchaKhknFcwwQrSjEccrVk8YB72WGudIzGsWfkYOzfc=","X-Received":"by 2002:a05:651c:1541:b0:2fa:cdd1:4f16 with SMTP id\n\t38308e7fff4ca-2fcbdf9dacbmr92365261fa.14.1730359086642;\n\tThu, 31 Oct 2024 00:18:06 -0700 (PDT)","MIME-Version":"1.0","References":"<20241022074544.3790451-1-chenghaoyang@chromium.org>","In-Reply-To":"<20241022074544.3790451-1-chenghaoyang@chromium.org>","From":"Cheng-Hao Yang <chenghaoyang@chromium.org>","Date":"Thu, 31 Oct 2024 15:17:55 +0800","Message-ID":"<CAEB1ahuHBRXQxw5+c2y3LGzT5Bzyh5Vx1GqFsFVTDkvgRs19gg@mail.gmail.com>","Subject":"Re: [PATCH v16 0/7] Add VirtualPipelineHandler","To":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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>"}}]