{"id":19093,"url":"https://patchwork.libcamera.org/api/1.1/covers/19093/?format=json","web_url":"https://patchwork.libcamera.org/cover/19093/","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":"<20230928185537.20178-1-andrey.konovalov@linaro.org>","date":"2023-09-28T18:55:32","name":"[libcamera-devel,v3,0/5] libcamera: converter: generalize Converter to remove MediaDevice dependency","submitter":{"id":25,"url":"https://patchwork.libcamera.org/api/1.1/people/25/?format=json","name":"Andrey Konovalov","email":"andrey.konovalov@linaro.org"},"mbox":"https://patchwork.libcamera.org/cover/19093/mbox/","series":[{"id":4043,"url":"https://patchwork.libcamera.org/api/1.1/series/4043/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4043","date":"2023-09-28T18:55:32","name":"libcamera: converter: generalize Converter to remove MediaDevice dependency","version":3,"mbox":"https://patchwork.libcamera.org/series/4043/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/19093/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 DE173C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 28 Sep 2023 18:56:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4C04B61DE4;\n\tThu, 28 Sep 2023 20:56:29 +0200 (CEST)","from mail-wr1-x431.google.com (mail-wr1-x431.google.com\n\t[IPv6:2a00:1450:4864:20::431])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 296D561DE3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 28 Sep 2023 20:56:27 +0200 (CEST)","by mail-wr1-x431.google.com with SMTP id\n\tffacd0b85a97d-31f71b25a99so13154505f8f.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 28 Sep 2023 11:56:27 -0700 (PDT)","from Lat-5310.. ([87.116.164.210]) by smtp.gmail.com with ESMTPSA\n\tid\n\tu1-20020adfed41000000b003247d3e5d99sm890842wro.55.2023.09.28.11.56.25\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 28 Sep 2023 11:56:26 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1695927389;\n\tbh=CS13ZG/A3NeJBxBNovsJIgxhrRVTIssgBlTg2CYCquY=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:Cc:From;\n\tb=w8U2g+LuMGCW4NE+vGmZZEk4lcN5cXA0YImIw/YwOS36lzktiP8QkwR/2F44AmOtG\n\tby00/QGkLDiSUoCcGbKfjLHhlkiduSSmzilGqBsmgwAipIUIf9INHn+qHZN53+qFDY\n\tQnRkTtB2u5Qj4ajJT7npwrcuql/n6mtO9QhbGceHMRJIuW/BOAVefpnfGNprbTsIvu\n\toCeA4WO/sZPjd2gV6i6VMFVxIFQfBZwaMoCrqg2JDtY2UBJbSLJrxhKvb7MjcouhjX\n\tYdrSrTsOk7ib6bj2pv+2yqOaSmiofOVI8RVfCZ21GlxX25pEcJ5idYISemZ1R9AaOz\n\tfu7cxDWSGsEbg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1695927386; x=1696532186;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=P8ej+D7geuy1mbQ/FiWNM1dLD5zstyceKvZZG544FNg=;\n\tb=PBRhOtWYkSwB/BfMtXtTxWtCI+Z7+tfNzL1DU+aOhSKLtNnYlB8HbzLlc760i+A7gI\n\tML3XLCU1POOUed7KkHXrx+VNS7KJXiezHEoULAMtI1+oGa+ZHYNAsb3zK43DA+qVI0hZ\n\tlTHBI0CvdVu0277O4HgRf3FqbaSn1GdEO4pOrBfLeAPqVdY/Da3IQ1XIo0FzGSeTe1Zs\n\tgteS7OYdtzMrV0A9Gk/BXrY8JIUYv8OZNoNb9ZhX+j6jOJ36TL3LORAuiE9dCCMrL4Sj\n\tq5KGwdLQwjuXMzSHpKiNhfN9ag2Sv1i70WNijtLXqdcCVw6t/qPvWZJt//3vqXCX75vS\n\tzdnw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=linaro.org\n\theader.i=@linaro.org header.b=\"PBRhOtWY\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1695927386; x=1696532186;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=P8ej+D7geuy1mbQ/FiWNM1dLD5zstyceKvZZG544FNg=;\n\tb=OcDOZxw9xqShddeT6JMJoA+AnMpXVo+XEBoEnmxl4IwX0gWjvQQ+DiwFNzbbjm1y97\n\tB93HfYWXR8DUoxazLKutrzvwKAvKFoM74BDiXF9bZdBFqW6v4Qa8TLgU29NkapnqnjWr\n\tAMFI6XwgufDpWJdEcp+cElDToFu+OECDd6dIJVQFxzORfrvia2cyLdjLDs9Y8hgfCXM4\n\taI/x+cY9LauMIFzNsXX55wbHGk1iIRRP4xJVk0aP23z8G8h6QZrjlT/p+7LD24pyQQ5a\n\toeLcqPgp/ZXVeRIMy2YDDmCJbKttep/4cA0hyA3BbTndh5TnjzlDzdC1BcsbkybCej+B\n\tjvIQ==","X-Gm-Message-State":"AOJu0Yzi4zDyzR7yE7iinwLNeDwxqZgu+RVfbk9+jRd6FjtyvR8yhJTo\n\t3XSOUncNlvoUClfeau73eOXnNmMndQJ+mabK68Q=","X-Google-Smtp-Source":"AGHT+IEz7UXSJiFN7/8LR52EhEPPJOaeZHv+WNQjBYwWtDeYRRAdn1VKPBIqZJcHekMtk9WvhFkdEQ==","X-Received":"by 2002:a5d:6e53:0:b0:321:5971:23a5 with SMTP id\n\tj19-20020a5d6e53000000b00321597123a5mr1894645wrz.20.1695927386582; \n\tThu, 28 Sep 2023 11:56:26 -0700 (PDT)","To":"libcamera-devel@lists.libcamera.org","Date":"Thu, 28 Sep 2023 21:55:32 +0300","Message-Id":"<20230928185537.20178-1-andrey.konovalov@linaro.org>","X-Mailer":"git-send-email 2.34.1","MIME-Version":"1.0","Content-Transfer-Encoding":"7bit","Subject":"[libcamera-devel] [PATCH v3 0/5] libcamera: converter: generalize\n\tConverter to remove MediaDevice dependency","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>","From":"Andrey Konovalov via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Andrey Konovalov <andrey.konovalov@linaro.org>","Cc":"jacopo.mondi@ideasonboard.com, bryan.odonoghue@linaro.org,\n\tsrinivas.kandagatla@linaro.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"The first patch in this series is a few fixes to the\nConverterFactoryBase documentation.\n\nThe second patch is new in v3. This is a small fix which\ndidn't fit into the other patches (drops unneeded #include).\n\nThe third patch makes the Converter class more generic\nby making pointer to MediaDevice an optional argument in\nthe relevant member functions.\n\nThe last two patches demonstrate a software converter using\nthis generalized version of the Converter class.\n\nThe raw bayer to RGB software converter implementation is\na slightly improved version of the ones in my previous\npatchsets [1] and [2]. But this is still work in progress\nhence the [RFC] for the last two patches (do not merge\nthem for now).\n\nChanges in v3 vs v2:\n- fixes to the ConverterFactoryBase documentation improved\n  as per the review feedback\n- added a separate patch which drops unneeded #include\n  in src/libcamera/converter.cpp\n- SwConverter code simplified as per the review comments,\n  missing #include's added, isp_ is now created once - in\n  the SwConverter constructor\n\nChanges in v2 vs v1:\n- added a separate patch to fix the ConverterFactoryBase documentation\n- modified the Converter class to make the '*media' parameter optional\n  instead of splitting out ConverterMD from the Converter. This\n  also makes it possible to use the same ConverterFactory template\n  for converters that rely on MediaDevice, and the software ones.\n- removed the unnecessary header includes\n\n[1] v1: https://patchwork.libcamera.org/cover/18924/\n[2] v2: https://patchwork.libcamera.org/cover/19060/\n\nAndrey Konovalov (5):\n  libcamera: converter: a few fixes to ConverterFactoryBase\n    documentation\n  libcamera: converter: drop unnecessary #include directive\n  libcamera: converter: make using MediaDevice optional for the\n    Converter\n  libcamera: converter: add software converter\n  libcamera: pipeline: simple: enable software converter for qcom-camss\n\n include/libcamera/internal/converter.h        |   9 +-\n .../internal/converter/converter_softw.h      | 100 ++++\n .../libcamera/internal/converter/meson.build  |   1 +\n src/libcamera/converter.cpp                   |  46 +-\n src/libcamera/converter/converter_softw.cpp   | 445 ++++++++++++++++++\n src/libcamera/converter/meson.build           |   3 +-\n src/libcamera/pipeline/simple/simple.cpp      |  41 +-\n 7 files changed, 611 insertions(+), 34 deletions(-)\n create mode 100644 include/libcamera/internal/converter/converter_softw.h\n create mode 100644 src/libcamera/converter/converter_softw.cpp"}