[{"id":37331,"web_url":"https://patchwork.libcamera.org/comment/37331/","msgid":"<85ecozsua0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-12-12T13:29:27","subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes:\n\n> In order to initialise and deinitialise gpuisp we need to be able to setup\n> EGL in the same thread as Debayer::process() happens in.\n>\n> This requires extending the Debayer object to provide start and stop\n> methods which are triggered through invokeMethod in the same way as\n> process() is.\n>\n> Introduce start() and stop() methods to the Debayer class. Trigger those\n> methods as described above via invokeMethod. The debayer_egl class will\n> take care of initialising and de-initialising as necessary. Debayer CPU\n> sees no functional change.\n>\n> Per feedback from Barnabas the stop method using blocking synchronisation\n\n... is using ... ?\n\n> and thus we drop ispWorkerThread_.removeMessages().\n>\n> [bod: Made method blocking not queued per Robert's bugfixes]\n> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n> ---\n>  src/libcamera/software_isp/debayer.cpp      | 25 +++++++++++++++++++++\n>  src/libcamera/software_isp/debayer.h        |  2 ++\n>  src/libcamera/software_isp/software_isp.cpp |  8 +++++--\n>  3 files changed, 33 insertions(+), 2 deletions(-)\n>\n> diff --git a/src/libcamera/software_isp/debayer.cpp b/src/libcamera/software_isp/debayer.cpp\n> index 1d135b278..8b4b6cd74 100644\n> --- a/src/libcamera/software_isp/debayer.cpp\n> +++ b/src/libcamera/software_isp/debayer.cpp\n> @@ -336,6 +336,31 @@ Debayer::~Debayer()\n>   * debayer processing.\n>   */\n>  \n> +/**\n> + * \\fn int Debayer::start()\n> + * \\brief Execute a start signal in the debayer object from workerthread context.\n\ns/\\.$//\n\nReviewed-by: Milan Zamazal <mzamazal@redhat.com>\n\n> + *\n> + * The start() method is invoked so that a Debayer object can initialise\n> + * internal variables or data. It is called from the software_isp::start\n> + * method.\n> + *\n> + * This method is particularly useful with DebayerEGL as it allows for the\n> + * initialisation of the EGL stack after configure in a thread-safe manner.\n> + */\n> +\n> +/**\n> + * \\fn void Debayer::stop()\n> + * \\brief Stop the debayering process and perform cleanup\n> + *\n> + * The stop() method is invoked as the logically corollary of start().\n> + * Debayer::stop() will be called by software_isp::stop() allowing for any\n> + * cleanup which should happend with stop().\n> + *\n> + * The stop method similar to start() is useful for DebayerEGL as it allows\n> + * for cleanup of EGL context and/or data that happens in\n> + * DebayerEGL::start.\n> + */\n> +\n>  /**\n>   * \\fn void Debayer::setParams(DebayerParams &params)\n>   * \\brief Select the bayer params to use for the next frame debayer\n> diff --git a/src/libcamera/software_isp/debayer.h b/src/libcamera/software_isp/debayer.h\n> index ff4a92c15..5c0cb3914 100644\n> --- a/src/libcamera/software_isp/debayer.h\n> +++ b/src/libcamera/software_isp/debayer.h\n> @@ -48,6 +48,8 @@ public:\n>  \tstrideAndFrameSize(const PixelFormat &outputFormat, const Size &size) = 0;\n>  \n>  \tvirtual void process(uint32_t frame, FrameBuffer *input, FrameBuffer *output, DebayerParams params) = 0;\n> +\tvirtual int start() { return 0; }\n> +\tvirtual void stop() { }\n>  \n>  \tvirtual SizeRange sizes(PixelFormat inputFormat, const Size &inputSize) = 0;\n>  \n> diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp\n> index 928a2520c..7c9ad9160 100644\n> --- a/src/libcamera/software_isp/software_isp.cpp\n> +++ b/src/libcamera/software_isp/software_isp.cpp\n> @@ -347,7 +347,9 @@ int SoftwareIsp::start()\n>  \t\treturn ret;\n>  \n>  \tispWorkerThread_.start();\n> -\treturn 0;\n> +\n> +\treturn debayer_->invokeMethod(&DebayerCpu::start,\n> +\t\t\t\t      ConnectionTypeBlocking);\n>  }\n>  \n>  /**\n> @@ -358,9 +360,11 @@ int SoftwareIsp::start()\n>   */\n>  void SoftwareIsp::stop()\n>  {\n> +\tdebayer_->invokeMethod(&DebayerCpu::stop,\n> +\t\t\t       ConnectionTypeBlocking);\n> +\n>  \tispWorkerThread_.exit();\n>  \tispWorkerThread_.wait();\n> -\tispWorkerThread_.removeMessages(debayer_.get());\n>  \n>  \tThread::current()->dispatchMessages(Message::Type::InvokeMessage, this);","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 08695C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Dec 2025 13:29:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0717761852;\n\tFri, 12 Dec 2025 14:29:36 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0F5396142F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Dec 2025 14:29:33 +0100 (CET)","from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n\t[209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-504-S6mVQ00YMK-SDKDekMvWEw-1; Fri, 12 Dec 2025 08:29:31 -0500","by mail-wm1-f71.google.com with SMTP id\n\t5b1f17b1804b1-47910af0c8bso9700125e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Dec 2025 05:29:30 -0800 (PST)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-47a8f3a1b17sm11602045e9.2.2025.12.12.05.29.28\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 12 Dec 2025 05:29:28 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"b6toKsXJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1765546172;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=BLkU5rGIlwjbmmPjdfoJg1eRSg0IR0TgHUXaZbYne00=;\n\tb=b6toKsXJ1ZvqdLX3HvheXK0yC/qP7TAjP1GKm3P7R3zFuqrL8VevtLUHeS6pBEtPzSii/6\n\to2yLovpMHyselSqUqzvjs+RbHhdrUaBLtoeTJF+3nazlYiAlUxEBpgiB4C5jDbYYtN0NCQ\n\tGTc8fLZ2w1OK9VGqV+4KeYD0Ai6bTbQ=","X-MC-Unique":"S6mVQ00YMK-SDKDekMvWEw-1","X-Mimecast-MFC-AGG-ID":"S6mVQ00YMK-SDKDekMvWEw_1765546170","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1765546170; x=1766150970;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject\n\t:date:message-id:reply-to;\n\tbh=BLkU5rGIlwjbmmPjdfoJg1eRSg0IR0TgHUXaZbYne00=;\n\tb=LP9EOBz4oEeiJTYYZRDeXAJPW1YHr/RMLPtSH4jGDAtjGf9VyB0ip+qfv+l3y6HZ61\n\t4YD9zSeXTKsiahMbtIWbLkFns8azIkU9LN1COPw2QADN3MclXI7TTI2B63e/Rq8doCB6\n\tbZUUsEXQBvp+Rim2Rp1fh51sw3nnY9OT/xk2kykQ2fSu5dbmn89nqGZT0LGD/r1SjNEt\n\tGXC8FtOzpSXk1xkwdKJMbuVCl0U0I/Jt+yW2U6BwPruINs52AtPXWjWjhsOTuPlqfaL9\n\ttRNwxQyCL3yKx6HIVvuq+70M1xn559g0dAjFpMx3Nik4+Ms4NfMLysUby8GDBMD1T4Dk\n\tahkA==","X-Gm-Message-State":"AOJu0YyU/8WlBwWzqccFI6nDuVhGYnW2Mgf39cRzMsX85QR3oKGtormN\n\tTQgCtNPbXbHPmhL7wBh9US93FVffONS4nUFrQhI7TIE+0lhv1W2Ar6myR/dtocMe27AYRjGu3ci\n\tq9tHZrLUSeFTcZyUtqWutmK2XI6ALNcxH5MaJJsvzF+37c7YgdCyewr0gxK9oslJKucC71BRGJ1\n\tM=","X-Gm-Gg":"AY/fxX6QWCvsSJfN8RtDqMEyXuTWDBBAbh8Mg1Apx88mlgM7PDxN1EklhkVAZOHZCtO\n\ttKcOPsvD23HkRQghOLRe/PIqoDHqlNIw8QFJy8+cFiMEWXbRQX/YexdJ+zTNdzaGIt8GErPpT3u\n\tTH0/93p+hSDtvj/MUKLcOOW7726Nn8GNz9pVztrOIioKQgg/R5+0PlsOjS0dZNMlszdzx1U5c/f\n\tH25wUMXwz+/8i02LE6HRYf8j9oSylel7/nMwCArSrZI6MeP7MkKXNB6/0AkOU+1c9U8K7wAdDE9\n\t6j9Q6Oc31OBFnsJqatwF4fa1c+W/Pk8nEIR6Y73U1jcpNzyT2EkkmmgRrv7jj7w9GWAdIaa+vHE\n\t46VHvOwiHHnVEVznfI65Z6jeg4zzy7lKvgEYpaWw92kSC44OI8Hn076G7tK8Aypw=","X-Received":["by 2002:a05:600c:310e:b0:477:a246:8398 with SMTP id\n\t5b1f17b1804b1-47a8f8a8405mr20101455e9.2.1765546169771; \n\tFri, 12 Dec 2025 05:29:29 -0800 (PST)","by 2002:a05:600c:310e:b0:477:a246:8398 with SMTP id\n\t5b1f17b1804b1-47a8f8a8405mr20101295e9.2.1765546169371; \n\tFri, 12 Dec 2025 05:29:29 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IGHHniYeDHkgZhkDbU5ekdZjQuNBSb30AxQYLKYToq51gNsTZop1M1/qYgtvQ7gg9HI8idx4w==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org,  pavel@ucw.cz","Subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","In-Reply-To":"<20251211232246.31330-16-bryan.odonoghue@linaro.org> (Bryan\n\tO'Donoghue's message of \"Thu, 11 Dec 2025 23:22:40 +0000\")","References":"<20251211232246.31330-1-bryan.odonoghue@linaro.org>\n\t<20251211232246.31330-16-bryan.odonoghue@linaro.org>","Date":"Fri, 12 Dec 2025 14:29:27 +0100","Message-ID":"<85ecozsua0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"j5jCbgneaLdlK-YS383UZZE621ZNfdiZ89K6uD93Oo8_1765546170","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}},{"id":37340,"web_url":"https://patchwork.libcamera.org/comment/37340/","msgid":"<dfc465a0-6d82-4624-b336-193249ffc28f@linaro.org>","date":"2025-12-12T16:21:44","subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 12/12/2025 13:29, Milan Zamazal wrote:\n>> Per feedback from Barnabas the stop method using blocking synchronisation\n> ... is using ... ?\n\nEh sure.\n\nI don't think an entire v6 for one typo is a bit much.\n\nPerhaps Kieran would be kind enough to fix it up on application.\n\n---\nbod","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 74B00BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Dec 2025 16:21:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D380C61866;\n\tFri, 12 Dec 2025 17:21:51 +0100 (CET)","from mail-pl1-x633.google.com (mail-pl1-x633.google.com\n\t[IPv6:2607:f8b0:4864:20::633])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E62C16142F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Dec 2025 17:21:50 +0100 (CET)","by mail-pl1-x633.google.com with SMTP id\n\td9443c01a7336-29f102b013fso15380735ad.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Dec 2025 08:21:50 -0800 (PST)","from [10.237.118.45] (M106185144161.v4.enabler.ne.jp.\n\t[106.185.144.161]) by smtp.gmail.com with ESMTPSA id\n\td9443c01a7336-29eea016f80sm59476915ad.60.2025.12.12.08.21.46\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tFri, 12 Dec 2025 08:21:48 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"S2Y5iDNR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1765556509; x=1766161309;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=foqQ8IKmStmaJige04W+0azgUNQqVNrKVRHDRCOj7Xg=;\n\tb=S2Y5iDNRMJRdGn2KAjmsd+4sMW6BYU35JRSRX1qhPE2fVH03rs4TbCibS+gwdTO2gj\n\tBGb9DkXBEWAf178rtRia8qNF7ott7skismeN3sjjOQnLKeXfJHmrzhNHGzJkMGDcbYHG\n\tiN9/75MFWrIsQUwtHCmLAbx4/znrfwS6ywSTVWwTCZDdXKh54DB/JFqppEpLMxdsOz6C\n\tY8VA7xgOa9X/kT3zz3FhsOe8QKxZk/kqiokke7YxfnS8RZDuvrjeu+Z4LlL4O99ftzl1\n\twCFf1D8lfx72HFoaCEmpgMWNt3uSyRE01MCVbM8hdJEC1ksSK9YhitUcN0VWe4w4IfyG\n\tkBzQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1765556509; x=1766161309;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=foqQ8IKmStmaJige04W+0azgUNQqVNrKVRHDRCOj7Xg=;\n\tb=Z8pVriFD/XgXXVGrc/o0uRSuRF4K3QWkcHllQxJob2yjkkX/g5J4fuQI2xBqxuy/8a\n\tJqtVjnMhaFXRUGB0ABKsgpWxXdTHx4Y0ctaT5HqemGPfmwGmwTaKsEfQC4wc0g8yKigy\n\tG6DYAz/vFgi0quZKNZhEtHoovQI6N5AsPlFH+YYoXwxTpI0XGssqBeTAKn8N0ggiTdVm\n\tjl63nDyQZksGXoImZfCSm5Xs2UIb40EAZuXupIF68HjpE5OMsUFv/+YXZn80CjO+mT+7\n\tMOxyYYM+hE1nKbPHhKwbZvj/eXKdfHAd7Fcg1ZH7mSUkXZon1eFr3oVQtmpCUcqB0vFv\n\tgjHQ==","X-Gm-Message-State":"AOJu0Yxp66CuOLeo4JoPTdGesmu1x4rarXvsHrHeNB2IJvhLvHy+bdkd\n\tY9Pj/wXgCq8lBISE/JjoVTGSI/sm1F+Bb7aQyZkbe8+wXvxVigJM7pRHaZpByceYCno8okSVnW4\n\t5SNvx","X-Gm-Gg":"AY/fxX6ac3C6U3+3EcniZ3PwPjuGD2HKAjyUFO3sQo1bfzZu2GYwZanVi02VJjksMJ/\n\t3bdr+2x1n9RLtnpVMEOjKX8HlKSIFbIduRY594IHB016pHinHyQ2W4rt7/05ZOza9MDBy7hrDiy\n\tKxOaprjDcHf+1imsSc9yCil6D+tIz0QBki43IA5tgy8FQvukE1zKjV9AeWJ+hGX/WygOdQ16PFq\n\tpF41V1sGtyZomhdAHX1GcP31GKv+V/EPP075rZ5NASkK/cKqeNPGGtOMDwjVGm51v4twh/WIkXG\n\tUYz96zrAtio51B0PiyWBU3DHdzXHV4RC1Zznfw0c+bRKShMRLZ7VVwCPQ4olulcSu/jwh4tQUOi\n\tO5cExR/1Cy0U0mNxj42iyHnJhb7VDuzirWihVwPTESWeXbrqCuHpUD8IANU5OIgtuGvV9z+5lZI\n\tYUG+85D9fOhkFACDOeaBzAwZpVKUzANKR9agg3vV1+zVzDcB521GvAOPDNNik=","X-Google-Smtp-Source":"AGHT+IFmroX/2ZujC+Ra/eO7WvOGcP/38Ahga86D+1vSzWqekux+3fWzrhNlEFiykXSaioi0YF+/bQ==","X-Received":"by 2002:a17:903:1aa8:b0:29e:9387:f2b7 with SMTP id\n\td9443c01a7336-29f23de5f93mr24773895ad.11.1765556509374; \n\tFri, 12 Dec 2025 08:21:49 -0800 (PST)","Message-ID":"<dfc465a0-6d82-4624-b336-193249ffc28f@linaro.org>","Date":"Fri, 12 Dec 2025 16:21:44 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org, pavel@ucw.cz","References":"<20251211232246.31330-1-bryan.odonoghue@linaro.org>\n\t<20251211232246.31330-16-bryan.odonoghue@linaro.org>\n\t<85ecozsua0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Language":"en-US","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","In-Reply-To":"<85ecozsua0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","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>"}},{"id":37342,"web_url":"https://patchwork.libcamera.org/comment/37342/","msgid":"<85wm2rr1h9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-12-12T18:36:50","subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes:\n\n> On 12/12/2025 13:29, Milan Zamazal wrote:\n>>> Per feedback from Barnabas the stop method using blocking synchronisation\n>> ... is using ... ?\n>\n> Eh sure.\n>\n> I don't think an entire v6 for one typo is a bit much.\n\nCertainly.  The precursor series seems to work fine for me and my\nReviewed-By is now everywhere where appropriate.\n\n> Perhaps Kieran would be kind enough to fix it up on application.\n\nYep, a good reason to apply the patches. :-)","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 373DBBD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Dec 2025 18:36:58 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8AE156186C;\n\tFri, 12 Dec 2025 19:36:57 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C24ED6142F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Dec 2025 19:36:56 +0100 (CET)","from mail-wm1-f72.google.com (mail-wm1-f72.google.com\n\t[209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-299-FjUJb1jNOQq4tMhDGnIJjg-1; Fri, 12 Dec 2025 13:36:54 -0500","by mail-wm1-f72.google.com with SMTP id\n\t5b1f17b1804b1-47918084ac1so17124305e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Dec 2025 10:36:54 -0800 (PST)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-47a8f72ce1bsm16871495e9.5.2025.12.12.10.36.51\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 12 Dec 2025 10:36:52 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"eUJcJ64x\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1765564615;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=dnBBu8dsS0nfsi4XhhS+FE+XhKB5FWznx79b0FVpu+c=;\n\tb=eUJcJ64xINR9Z6n90CVk5fTBcEzcD/+yUzMS+rB/nW/K2aVO2aWiToqWhsI6SwCrIjhb/5\n\tvgCtqN+S08IaRBHeeY6pO8iJYzR8AgI7Yw+2uIYyW0HNSDYupnwdlevr7mDeSSbzhIY/OV\n\tp8csDK3iXq+r7lxxIgmYyg8CQbT9A5o=","X-MC-Unique":"FjUJb1jNOQq4tMhDGnIJjg-1","X-Mimecast-MFC-AGG-ID":"FjUJb1jNOQq4tMhDGnIJjg_1765564613","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1765564613; x=1766169413;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject\n\t:date:message-id:reply-to;\n\tbh=dnBBu8dsS0nfsi4XhhS+FE+XhKB5FWznx79b0FVpu+c=;\n\tb=SIq7sZoyihnQNty1qj7CPhIj6CSITOWocarTiC5kpmGhMKNdiAY1GX5vDZhk6Aap39\n\tBnQB/U6+xOg4wlyMXlW0g20PPxPmPCBtl7Bx0qcVB6OdCPQkz6w2Lh3ZkB8MJDwgTOkl\n\thjd/kkSsnNv6Yhy51mYsWIX/teg1aA47BN6GqnDkuns50Iqgon4jYoHXAGQGjuoiiV3k\n\tXZaZKe3cQJy/Le/zn7uMl3mv0hEScfBJUC+hDtesMc6ITU0zcIF2Wz/2lgDBRDQAffR4\n\tWEavP4ao9s42vzUMYubiMD4SreoZIb8NyV1YuAO4KKHls9PNAdwat7RmLKob68PGRdWC\n\txvHw==","X-Gm-Message-State":"AOJu0YwBypmTDVaKoxA+hMtTPd5guc43h7Y3hc0/lk8SWBu7dnym8l1I\n\tooXzWCmiBnrBu24/L2qhRHyxeXgvqgQekvc6B2nwQkQnh32OFNb7zVIgdJEK3dVocDqPO0PDGpz\n\tgMxHkK9EnzJGhwUccbH6cBmm+QLoYnwJLTLjyD7ZvzkKj9uhGTDc8zmSwti0skdnaJr0f6/naVV\n\tQ=","X-Gm-Gg":"AY/fxX5BOjbnRrH+aTu2gbohLLesVbpFjybrDgPV7l/7vFK1sK7AijaIi+8Cf2fDHxB\n\tPsQ+Ey3FQAVPRsl7+h2P8akm+dxxrQ6Hgo9r98c7qNR9DnK1JEsc9g8CgBbtQvMzbO5Drrpq2SO\n\tg34iBQYudddasPmPyxXMwsiWkjm3h5Y8ZKCgyY32cVJUKmJJlV2zBcoJQ7ZfdbVVFZbBtykaU9T\n\totkoPxIT+o55g3654sTq/TTNmVb1MdtW4YzociTxda9lMCbPPb+Ysr2DlKeGrIXWJ4OfdSLf+A7\n\td3kom8hDoIgKF3uQC/nky+jisCjYMEzNqva2u0ALMitaMJH0b4LIM+IqKzVNG7UwMfX7JYgr5wE\n\t8KV6jnCh9PrldJC360Gs3liQJj0jHte3WxBHONXyIqFA87+dvAOVoaNAZYhv2dsk=","X-Received":["by 2002:a05:600c:5303:b0:477:9650:3175 with SMTP id\n\t5b1f17b1804b1-47a8f708d47mr31009575e9.0.1765564613106; \n\tFri, 12 Dec 2025 10:36:53 -0800 (PST)","by 2002:a05:600c:5303:b0:477:9650:3175 with SMTP id\n\t5b1f17b1804b1-47a8f708d47mr31009415e9.0.1765564612726; \n\tFri, 12 Dec 2025 10:36:52 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IHEHdQPUg0BNlKeVYyAzPocvDy2Ludt8p1LlZclivMwJ+g4z1WNwoP/X44Qg6bhPxxVtBC18A==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org,  pavel@ucw.cz","Subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","In-Reply-To":"<dfc465a0-6d82-4624-b336-193249ffc28f@linaro.org> (Bryan\n\tO'Donoghue's message of \"Fri, 12 Dec 2025 16:21:44 +0000\")","References":"<20251211232246.31330-1-bryan.odonoghue@linaro.org>\n\t<20251211232246.31330-16-bryan.odonoghue@linaro.org>\n\t<85ecozsua0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<dfc465a0-6d82-4624-b336-193249ffc28f@linaro.org>","Date":"Fri, 12 Dec 2025 19:36:50 +0100","Message-ID":"<85wm2rr1h9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"48FIV7FNOJ04-JvqZ3OdWUx1yMAh8FetUcyxEj_9E_k_1765564613","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}},{"id":37355,"web_url":"https://patchwork.libcamera.org/comment/37355/","msgid":"<176558303315.2361218.12250381645854033223@ping.linuxembedded.co.uk>","date":"2025-12-12T23:43:53","subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Milan Zamazal (2025-12-12 18:36:50)\n> Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes:\n> \n> > On 12/12/2025 13:29, Milan Zamazal wrote:\n> >>> Per feedback from Barnabas the stop method using blocking synchronisation\n> >> ... is using ... ?\n> >\n> > Eh sure.\n> >\n> > I don't think an entire v6 for one typo is a bit much.\n> \n> Certainly.  The precursor series seems to work fine for me and my\n> Reviewed-By is now everywhere where appropriate.\n> \n> > Perhaps Kieran would be kind enough to fix it up on application.\n\nFixed. Also see below\n\n> Yep, a good reason to apply the patches. :-)\n\nApplied - anything to reduce the number of patches repeating in my inbox\nhey ;-)\n\n\nBryan - there are /a lot/ of trivial checkpatch issues coming up in\nthese patches. Please make sure you set up the checkstyle post-commit\nhook.\n\n  cp utils/hooks/post-commit .git/hooks/post-commit\n\nThese are all trivial - and easy to fix when you see them with\n\"./utils/checkpatch | patch -p0\" and then 'git add -p' the fixes to\nsquash as you like.\n\nI've done that in this series to stop another iteration on trivials,\nwith the following diff: (changes squahsed into their relevant commits)\n\ndiff --git a/src/libcamera/software_isp/debayer.cpp b/src/libcamera/software_isp/debayer.cpp\nindex b5b99d39027e..b33f818a7829 100644\n--- a/src/libcamera/software_isp/debayer.cpp\n+++ b/src/libcamera/software_isp/debayer.cpp\n@@ -205,23 +205,23 @@ Debayer::~Debayer()\n\n /**\n  * \\fn const SharedFD &Debayer::getStatsFD()\n- * \\brief Get the file descriptor for the statistics.\n+ * \\brief Get the file descriptor for the statistics\n  *\n  * This file descriptor provides access to the output statistics buffer\n  * associated with the current debayering process.\n  *\n- * \\return The file descriptor pointing to the statistics data.\n+ * \\return The file descriptor pointing to the statistics data\n  */\n\n /**\n  * \\fn unsigned int Debayer::frameSize()\n- * \\brief Get the output frame size.\n+ * \\brief Get the output frame size\n  *\n  * \\return The total output frame size in bytes as configured for the\n  * current stream.\n  */\n\n- /**\n+/**\n  * \\var Signal<FrameBuffer *> Debayer::inputBufferReady\n  * \\brief Signals when the input buffer is ready\n  */\n@@ -233,7 +233,7 @@ Debayer::~Debayer()\n\n /**\n  * \\struct Debayer::DebayerInputConfig\n- * \\brief Structure describing the incoming Bayer parameters.\n+ * \\brief Structure describing the incoming Bayer parameters\n  *\n  * The DebayerInputConfig structure defines the characteristics of the raw\n  * Bayer frame being processed, including:\n@@ -258,7 +258,7 @@ Debayer::~Debayer()\n\n /**\n  * \\struct Debayer::DebayerOutputConfig\n- * \\brief Structure describing the output frame configuration.\n+ * \\brief Structure describing the output frame configuration\n  *\n  * Defines how the output of the debayer process is laid out in memory.\n  * It includes per-pixel size, stride, and total frame size.\n@@ -275,7 +275,7 @@ Debayer::~Debayer()\n\n /**\n  * \\var Debayer::inputConfig_\n- * \\brief Input configuration parameters for the current debayer operation.\n+ * \\brief Input configuration parameters for the current debayer operation\n  *\n  * Holds metadata describing the incoming Bayer image layout, including\n  * pattern size, bytes per pixel, stride, and supported output formats.\n@@ -284,7 +284,7 @@ Debayer::~Debayer()\n\n /**\n  * \\var Debayer::outputConfig_\n- * \\brief Output configuration data for the debayered frame.\n+ * \\brief Output configuration data for the debayered frame\n  *\n  * Contains bytes per pixel, stride, and total frame size for the\n  * output image buffer. Set during stream configuration.\n@@ -292,7 +292,7 @@ Debayer::~Debayer()\n\n /**\n  * \\var Debayer::red_\n- * \\brief Lookup table for red channel gain and correction values.\n+ * \\brief Lookup table for red channel gain and correction values\n  *\n  * This table provides precomputed per-pixel or per-intensity\n  * correction values for the red color channel used during debayering.\n@@ -300,7 +300,7 @@ Debayer::~Debayer()\n\n /**\n  * \\var Debayer::green_\n- * \\brief Lookup table for green channel gain and correction values.\n+ * \\brief Lookup table for green channel gain and correction values\n  *\n  * This table provides precomputed per-pixel or per-intensity\n  * correction values for the green color channel used during debayering.\n@@ -308,7 +308,7 @@ Debayer::~Debayer()\n\n /**\n  * \\var Debayer::blue_\n- * \\brief Lookup table for blue channel gain and correction values.\n+ * \\brief Lookup table for blue channel gain and correction values\n  *\n  * This table provides precomputed per-pixel or per-intensity\n  * correction values for the blue color channel used during debayering.\n@@ -316,33 +316,33 @@ Debayer::~Debayer()\n\n /**\n  * \\var Debayer::redCcm_\n- * \\brief Red channel Color Correction Matrix (CCM) lookup table.\n+ * \\brief Red channel Color Correction Matrix (CCM) lookup table\n  *\n  * Contains coefficients for green channel color correction.\n  */\n\n /**\n  * \\var Debayer::greenCcm_\n- * \\brief Green channel Color Correction Matrix (CCM) lookup table.\n+ * \\brief Green channel Color Correction Matrix (CCM) lookup table\n  *\n  * Contains coefficients for green channel color correction.\n  */\n\n /**\n  * \\var Debayer::blueCcm_\n- * \\brief Blue channel Color Correction Matrix (CCM) lookup table.\n+ * \\brief Blue channel Color Correction Matrix (CCM) lookup table\n  *\n  * Contains coefficients for blue channel color correction.\n  */\n\n /**\n  * \\var Debayer::gammaLut_\n- * \\brief Gamma correction lookup table.\n+ * \\brief Gamma correction lookup table\n  */\n\n /**\n  * \\var Debayer::swapRedBlueGains_\n- * \\brief Flag indicating whether red and blue channel gains should be swapped.\n+ * \\brief Flag indicating whether red and blue channel gains should be swapped\n  *\n  * Used when the Bayer pattern order indicates that red/blue color channels are\n  * reversed.\n@@ -350,7 +350,7 @@ Debayer::~Debayer()\n\n /**\n  * \\var Debayer::bench_\n- * \\brief Benchmarking utility instance for performance measurements.\n+ * \\brief Benchmarking utility instance for performance measurements\n  *\n  * Used internally to track timing and performance metrics during\n  * debayer processing.\n@@ -358,7 +358,7 @@ Debayer::~Debayer()\n\n /**\n  * \\fn int Debayer::start()\n- * \\brief Execute a start signal in the debayer object from workerthread context.\n+ * \\brief Execute a start signal in the debayer object from workerthread context\n  *\n  * The start() method is invoked so that a Debayer object can initialise\n  * internal variables or data. It is called from the software_isp::start\n@@ -426,7 +426,7 @@ void Debayer::dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *inpu\n\n /**\n  * \\fn void Debayer::isStandardBayerOrder(BayerFormat::Order order)\n- * \\brief Common method to validate standard 2x2 Bayer pattern of 2 Green, 1 Blue, 1 Red pixels.\n+ * \\brief Common method to validate standard 2x2 Bayer pattern of 2 Green, 1 Blue, 1 Red pixels\n  */\n bool Debayer::isStandardBayerOrder(BayerFormat::Order order)\n {\ndiff --git a/src/libcamera/software_isp/debayer.h b/src/libcamera/software_isp/debayer.h\nindex 5c0cb3914052..b8287166e1f9 100644\n--- a/src/libcamera/software_isp/debayer.h\n+++ b/src/libcamera/software_isp/debayer.h\n@@ -35,7 +35,7 @@ LOG_DECLARE_CATEGORY(Debayer)\n class Debayer : public Object\n {\n public:\n-\tDebayer (const GlobalConfiguration &configuration);\n+\tDebayer(const GlobalConfiguration &configuration);\n \tvirtual ~Debayer() = 0;\n\n \tvirtual int configure(const StreamConfiguration &inputCfg,\n@@ -49,7 +49,7 @@ public:\n\n \tvirtual void process(uint32_t frame, FrameBuffer *input, FrameBuffer *output, DebayerParams params) = 0;\n \tvirtual int start() { return 0; }\n-\tvirtual void stop() { }\n+\tvirtual void stop() {}\n\n \tvirtual SizeRange sizes(PixelFormat inputFormat, const Size &inputSize) = 0;\n\n\n\n--\nThanks\n\nKieran","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 4071DC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Dec 2025 23:44:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2175461925;\n\tSat, 13 Dec 2025 00:44:01 +0100 (CET)","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 9B4F5609DE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 13 Dec 2025 00:43:59 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4EB3C594;\n\tSat, 13 Dec 2025 00:43:55 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"N5cpA2fe\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1765583035;\n\tbh=h2m3ZIX+cfcq2mrp724AO/AhMSva0zkonJVv4/0rXF4=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=N5cpA2feXufQJAHIRE6/8IqLFttr6puDkWOUwNTUCupuAdsEN5SyjxIlb92wc8xxX\n\td6EQXnoTxi9RRoJVWbcmcjrwWlphDE7JBxlaq3oFaF9x9W1RfKXsfAvk3GkRglqUMo\n\ttKKNmVEGEc/PR2AMx19dqW0R8YKyZPKP/NXeUa9E=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<85wm2rr1h9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","References":"<20251211232246.31330-1-bryan.odonoghue@linaro.org>\n\t<20251211232246.31330-16-bryan.odonoghue@linaro.org>\n\t<85ecozsua0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<dfc465a0-6d82-4624-b336-193249ffc28f@linaro.org>\n\t<85wm2rr1h9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, pavel@ucw.cz","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tMilan Zamazal <mzamazal@redhat.com>","Date":"Fri, 12 Dec 2025 23:43:53 +0000","Message-ID":"<176558303315.2361218.12250381645854033223@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>"}},{"id":37358,"web_url":"https://patchwork.libcamera.org/comment/37358/","msgid":"<5167be9a-405a-4e8f-a8b9-580b5d4ee5c2@linaro.org>","date":"2025-12-13T01:21:41","subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 12/12/2025 23:43, Kieran Bingham wrote:\n> Bryan - there are/a lot/ of trivial checkpatch issues coming up in\n> these patches. Please make sure you set up the checkstyle post-commit\n> hook.\n> \n>    cp utils/hooks/post-commit .git/hooks/post-commit\n\nAh, I wasn't aware of that, the only thing I've been aware-of/running is\n\nreset; ninja -C builds/build.master.dbg  -D documentation=enabled -D \ndoc_werror=true\n\nThank you.\n\n---\nbod","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 6262ABD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 13 Dec 2025 01:21:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A191361931;\n\tSat, 13 Dec 2025 02:21:48 +0100 (CET)","from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com\n\t[IPv6:2607:f8b0:4864:20::42f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 53048609DE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 13 Dec 2025 02:21:46 +0100 (CET)","by mail-pf1-x42f.google.com with SMTP id\n\td2e1a72fcca58-7bc0cd6a13aso1016719b3a.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Dec 2025 17:21:46 -0800 (PST)","from [10.200.6.147] (fs98a57d9d.tkyc007.ap.nuro.jp.\n\t[152.165.125.157]) by smtp.gmail.com with ESMTPSA id\n\td2e1a72fcca58-7f4c5481289sm6414364b3a.64.2025.12.12.17.21.43\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tFri, 12 Dec 2025 17:21:44 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"hj8BvKj3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1765588905; x=1766193705;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=rbKsWkeO7r+eRh8NTC0RxlpFbGGzOFA9CdtCYkO7MW4=;\n\tb=hj8BvKj3XhLshU46iDvr+lW1JyGphf6+A8my/BDXgL9UtfywL6huCMpAtGMm9dr7DX\n\tptid7BAaQm/aaOt2ghbsnEfuDEotSgy2TUfa8Fg0ToMy35SYBMlCUcxa8qGEYZ+geCCZ\n\t2wyp6KE1M+ZMg3Vj4rnvl6+vtpb3cOGBDziVNyzdf64I0sdx99TA8JxFvu1IxE+kFHnr\n\tJbXUHh3ohJgEUF9v9StvLZtwyLKl/t8d4wqaRPxaOjflsQjiv0oC8MpvRdp/qpH0j9WH\n\tqSP14w9918EYgv1XY9H/0EYiDfwa4dqAgSCVs09yrKUyDeRRdXm2QmohoUL6cEXVFFTX\n\tGrEQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1765588905; x=1766193705;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=rbKsWkeO7r+eRh8NTC0RxlpFbGGzOFA9CdtCYkO7MW4=;\n\tb=f/EHA7XGSvQ4IuFMK7jeIxGmzURNUAlSxERdNF30AOE1za5GWj2DLP0fIECFyrGzLK\n\tTPN1AGaNvdOdlBgw1AA0rXD0ZWaZpi4LJHApSMSkk7Ur27bUCIvGas9UVcPpHTn5NOfJ\n\tYPm6j0V/rpMyBsJI1sc9p9IEG4rCAtwRj3gMYNKkmuMl6ncgKkrfgxz9LUY8CCAhaAMU\n\tjkZ8LmeOVbstGGEGw2q36WDhqBe78ckX1TbtwEcN8L8FZ0OwBzQot+e3mQX8bmiEpucm\n\tdistRhvzs9ocvQM15HDw9w9oiXwb469cEV0OY108/SJgw3n0n50A/RrTJmju2sCI1Srj\n\tmOFw==","X-Gm-Message-State":"AOJu0YwGdC/ctVT6zZ1LD42AbouQeBhjKyF9c8ot6pHEbyAJvN7B1oSo\n\t+3W4UrFNsMP8Fs7isbrjgAtJxdHj4DKrqWNL7noaQnNlcdKkhEyMrDadCqnscdyf8kM=","X-Gm-Gg":"AY/fxX58f8t/MZkjsri/6Ayyxy6B6bEL2LGJ9zYrev/QAR6QIql9EVeb7QIQTA+g4y/\n\tJkSUuY4L/DG2AfROtu4p0iZuRpnKL2xFMoDYNhSJSHqryf5sGKuWQVqY04VacDUDK4Tl6FQVD+1\n\tXP/cwM1CXp51XoKoPM31lTQv4fTaJO5kI8twxt4vE+WTpQx4KVFnmH+3qiCvPiyODIj4mt5h4Xb\n\tXmDdYr3NWLm5b6KlEl4dIiR28BCjYyETRunvk/gtmOuEooMUIhiPEE3EyG5UHGQj/KVbTRs6t3V\n\tOxSX/u1rrv2fAWaJT9yBx99FNSy3xP6XvZe9fsZBOxCmpLwerjMPnU/d/VlGJE0Y3YL4hcIbwPU\n\to90NBGNjeLV8qVc8q5luIVoVNcQBPul57L1ASTE1v+PnsRsgQvlIZa//tWkOXQiIwRSTF6ayhip\n\tY+ZfXEHwGTeMtOiAIQlTO0xlNmoQrGlJPNCRug9+RlFQKP3hzhSjdpgKPF","X-Google-Smtp-Source":"AGHT+IFLdzLUFX7jDlfVCSKLUrzmIrOZEVoBkvKBnbNizmp/wwwOUuYE/N7v9bGqmN+SKK9YLbTmnA==","X-Received":"by 2002:a05:6a00:1589:b0:7e8:3fcb:9b00 with SMTP id\n\td2e1a72fcca58-7f51db0a434mr6605570b3a.22.1765588904723; \n\tFri, 12 Dec 2025 17:21:44 -0800 (PST)","Message-ID":"<5167be9a-405a-4e8f-a8b9-580b5d4ee5c2@linaro.org>","Date":"Sat, 13 Dec 2025 01:21:41 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v5 15/20] libcamera: software_isp: debayer: Introduce a\n\tstart() / stop() methods to the debayer object","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org, pavel@ucw.cz","References":"<20251211232246.31330-1-bryan.odonoghue@linaro.org>\n\t<20251211232246.31330-16-bryan.odonoghue@linaro.org>\n\t<85ecozsua0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<dfc465a0-6d82-4624-b336-193249ffc28f@linaro.org>\n\t<85wm2rr1h9.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<176558303315.2361218.12250381645854033223@ping.linuxembedded.co.uk>","Content-Language":"en-US","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","In-Reply-To":"<176558303315.2361218.12250381645854033223@ping.linuxembedded.co.uk>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","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>"}}]