{"id":18979,"url":"https://patchwork.libcamera.org/api/covers/18979/?format=json","web_url":"https://patchwork.libcamera.org/cover/18979/","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":"<20230910175027.23384-1-andrey.konovalov@linaro.org>","date":"2023-09-10T17:50:24","name":"[libcamera-devel,0/3] libcamera: converter: generalize Converter to remove MediaDevice dependency","submitter":{"id":25,"url":"https://patchwork.libcamera.org/api/people/25/?format=json","name":"Andrey Konovalov","email":"andrey.konovalov@linaro.org"},"mbox":"https://patchwork.libcamera.org/cover/18979/mbox/","series":[{"id":4014,"url":"https://patchwork.libcamera.org/api/series/4014/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4014","date":"2023-09-10T17:50:24","name":"libcamera: converter: generalize Converter to remove MediaDevice dependency","version":1,"mbox":"https://patchwork.libcamera.org/series/4014/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/18979/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 F1B44BD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 10 Sep 2023 17:51:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4428A628EC;\n\tSun, 10 Sep 2023 19:51:50 +0200 (CEST)","from mail-ed1-x530.google.com (mail-ed1-x530.google.com\n\t[IPv6:2a00:1450:4864:20::530])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 74FAE61DF6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 10 Sep 2023 19:51:49 +0200 (CEST)","by mail-ed1-x530.google.com with SMTP id\n\t4fb4d7f45d1cf-529fb2c6583so4743756a12.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 10 Sep 2023 10:51:49 -0700 (PDT)","from Lat-5310.. ([87.116.166.126]) by smtp.gmail.com with ESMTPSA\n\tid\n\tkd27-20020a17090798db00b009a57d30df89sm4090089ejc.132.2023.09.10.10.51.48\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSun, 10 Sep 2023 10:51:48 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1694368310;\n\tbh=xyGParl3Vl0Uc0omDKlTycPnXyvZ/7Yn+bP9qrtauKQ=;\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=lkkeHFu6ztPsYAl3tpmE6ZWfZpXWm8F4J4pfJqEkR/ZGsAJnqLS+MqWfejWCYYZLz\n\tqwQmvQoMb9bTTQnb2TCrNU+L9MHsPHKb90sr3Hzvq4337Y/g4YjKEoAx5D5SbftRSj\n\t6T/1pZ/D1ojoh56HVMsN40MAM4kptALBQKY2JJSZHgHgYk+iBy37t97noi6dOO3jAP\n\tZEUQTvSyivQ1XQ6x0GZ8RtXKR7WMJ5J4rqwKZbpN5d4S2XUF0UboylCeVy25+GPQXz\n\tFnKl/pj6xtK3Nj1KIrp7f9iJ/VETeTstAB3QfP2p/hJPYjIBdSfJ3YhI8AKyKDp4r0\n\tKJ6ARlm8+Rt0w==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1694368309; x=1694973109;\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=L2WA9lpitX26E+dp1fdtMYkGNmsUkRx/Q37LMP3JDdQ=;\n\tb=YNaDxZDoK/XWUuj8A99PziirpvNpl7c7iroSACnpkz6nHEZc5KlxFTVKBmE6lbV+JA\n\tsPG+2RVelSZXqMBev03EhfnK33rt92hYzXXCscQBpLZKM8jFolJlNAUgbTn1kHVlkAuu\n\t7keuH+UiAL0Pw8+tLk/IRcJzPZZDXbBgboCzrPpARsHlKtceuRIC0/wTyu39ONT5+gjz\n\tgoYpkpI+lFrUNdRDFo2O4P0TwxeCz507HnLiPPmKrDOxksPSJFrqTUSgy0AultwaLsyK\n\t2CBNKmswzNBlwfN7A2/qEcVbU5UuFRNcb3FYGtp9nEbCptvoIv2v53lqxK6AMvMOMrsL\n\t58Rw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=linaro.org\n\theader.i=@linaro.org header.b=\"YNaDxZDo\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1694368309; x=1694973109;\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=L2WA9lpitX26E+dp1fdtMYkGNmsUkRx/Q37LMP3JDdQ=;\n\tb=MjovzI1RY6X4dUHAo7o2+92hyfPSy9VrTN5oXq37B2B35OLb7j13Qw+bOc56YsyN7P\n\t4vV3ceXgw0xOuP/nUEdOMsrYtVPnQOSf+cYoB8RKvXpdZIF8+gJTlhGaELYeooXX0YiN\n\tSJcaLRpx/iwCML4/+Qbx7xGGYDHygKQdKOPoYQYuX2ROBIAaCTeyvXE3Ah9sCwNOT0ft\n\tMk+FwNMQnzH9QvXlMVUxUubo6xHZJwF2r+eBoDaoNu9XeiEpkLJ/Z4TEd3XD+UUAP6Uf\n\t/lv1zOFllhBn0N7a+13eEuqI0bQ0NMjdBlhuFWP9VfgPwjesdNcDyQTn6fI7S49VC2g0\n\tLC5A==","X-Gm-Message-State":"AOJu0Yz33n0cacdOlxvqgM0g9Wvg4BGrL12IxRceCwTvG4TPg9vvxcH5\n\tHftE3ULa3CuNyiC0/dYXu2WooFbUtpN1vXh8Aeg=","X-Google-Smtp-Source":"AGHT+IHb8384JCznHlE56cxErzNl9iLmzYdU1nUFsQmYLxiwGBOCLc+50OhdbzZf5tMB3r2+jFGqyA==","X-Received":"by 2002:a17:906:10dc:b0:99c:f47a:2354 with SMTP id\n\tv28-20020a17090610dc00b0099cf47a2354mr7866171ejv.70.1694368308875; \n\tSun, 10 Sep 2023 10:51:48 -0700 (PDT)","To":"libcamera-devel@lists.libcamera.org","Date":"Sun, 10 Sep 2023 20:50:24 +0300","Message-Id":"<20230910175027.23384-1-andrey.konovalov@linaro.org>","X-Mailer":"git-send-email 2.34.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 0/3] 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":"This series is one patch which makes the Converter class more\ngeneric by moving the MediaDevice related part out into\nderived class, and two more patches which demonstrate a\nsoftware converter using this generalized version of the\nConverter class.\n\nThe raw bayer to RGB software converter implementation is\na slightly improved version of the one in my previous\npatchset [1] (buffers mapping fixed). But this is still\nwork in progress hence the [RFC] for the last two patches.\n\nI am almost sure that the software converters deserve their\nown converter factory, but haven't got to implementing one\nyet. So for now, in the last patch the Simple pipeline handler\njust instanciates a SwConverter directly.\n\n[1] https://patchwork.libcamera.org/cover/18924/\n\nAndrey Konovalov (3):\n  libcamera: converter: split ConverterMD (media device) out of\n    Converter\n  libcamera: converter: add software converter\n  libcamera: pipeline: simple: add software converter support\n\n include/libcamera/internal/converter.h        |  49 +--\n .../internal/converter/converter_softw.h      |  88 ++++\n .../internal/converter/converter_v4l2_m2m.h   |   4 +-\n .../libcamera/internal/converter/meson.build  |   1 +\n include/libcamera/internal/converter_media.h  |  86 ++++\n include/libcamera/internal/meson.build        |   1 +\n src/libcamera/converter.cpp                   | 191 +-------\n src/libcamera/converter/converter_softw.cpp   | 412 ++++++++++++++++++\n .../converter/converter_v4l2_m2m.cpp          |   4 +-\n src/libcamera/converter/meson.build           |   3 +-\n src/libcamera/converter_media.cpp             | 241 ++++++++++\n src/libcamera/meson.build                     |   1 +\n src/libcamera/pipeline/simple/simple.cpp      |  38 +-\n 13 files changed, 865 insertions(+), 254 deletions(-)\n create mode 100644 include/libcamera/internal/converter/converter_softw.h\n create mode 100644 include/libcamera/internal/converter_media.h\n create mode 100644 src/libcamera/converter/converter_softw.cpp\n create mode 100644 src/libcamera/converter_media.cpp"}