[{"id":26432,"web_url":"https://patchwork.libcamera.org/comment/26432/","msgid":"<CAEmqJPrizhz-0Nd4YWsh63MumCLSWtvQ3t5qp5BC7E8NSEHb8w@mail.gmail.com>","date":"2023-02-09T08:31:21","subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi all,\n\nIf there are no other review comments or feedback, I think this is\nready to be merged.\n\nRegards,\nNaush\n\nOn Fri, 3 Feb 2023 at 09:17, Naushir Patuck <naush@raspberrypi.com> wrote:\n>\n> Hi,\n>\n> Version 5 rebases the changes on-top of master - particularly updating the\n> breakages in cam_helper_imx708.cpp in patch 4/5.\n>\n> Regards,\n> Naush\n>\n> Naushir Patuck (5):\n>   ipa: raspberrypi: Generalise statistics\n>   ipa: raspberrypi: histogram: Add a constructor for an empty histogram\n>   ipa: raspberrypi: awb: Delay release of the statistics buffer\n>   ipa: raspberrypi: Use the generic statistics structure in the\n>     algorithms\n>   ipa: raspberrypi: Normalise region sums to 16-bits\n>\n>  src/ipa/raspberrypi/cam_helper_imx708.cpp     |  26 ++--\n>  src/ipa/raspberrypi/controller/controller.h   |   4 +-\n>  src/ipa/raspberrypi/controller/histogram.h    |   5 +\n>  src/ipa/raspberrypi/controller/region_stats.h | 123 ++++++++++++++++++\n>  src/ipa/raspberrypi/controller/rpi/af.cpp     |  10 +-\n>  src/ipa/raspberrypi/controller/rpi/af.h       |   8 +-\n>  src/ipa/raspberrypi/controller/rpi/agc.cpp    |  32 ++---\n>  src/ipa/raspberrypi/controller/rpi/agc.h      |   2 +-\n>  src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  32 ++---\n>  src/ipa/raspberrypi/controller/rpi/alsc.h     |   3 +-\n>  src/ipa/raspberrypi/controller/rpi/awb.cpp    |  30 ++---\n>  src/ipa/raspberrypi/controller/rpi/awb.h      |   1 +\n>  .../raspberrypi/controller/rpi/contrast.cpp   |   8 +-\n>  src/ipa/raspberrypi/controller/rpi/focus.cpp  |   7 +-\n>  src/ipa/raspberrypi/controller/rpi/lux.cpp    |  14 +-\n>  src/ipa/raspberrypi/raspberrypi.cpp           |  50 ++++++-\n>  src/ipa/raspberrypi/statistics.h              |  78 +++++++++++\n>  17 files changed, 338 insertions(+), 95 deletions(-)\n>  create mode 100644 src/ipa/raspberrypi/controller/region_stats.h\n>  create mode 100644 src/ipa/raspberrypi/statistics.h\n>\n> --\n> 2.25.1\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 583B9BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Feb 2023 08:31:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 917BC625F4;\n\tThu,  9 Feb 2023 09:31:34 +0100 (CET)","from mail-yb1-xb2f.google.com (mail-yb1-xb2f.google.com\n\t[IPv6:2607:f8b0:4864:20::b2f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 70387625CE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Feb 2023 09:31:32 +0100 (CET)","by mail-yb1-xb2f.google.com with SMTP id u7so1542358ybk.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 09 Feb 2023 00:31:32 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1675931494;\n\tbh=a4rfYq1NUk88Ov11GwCeC6JdxAc8ONdp95x3h/ud1pQ=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=be73RV030o/Q1WSx8m6Lrj/Oc8jIOeGWMW2BwKk18J6TolHFFJ9MEalM/YQo+OS9x\n\t6RR03RSp4JIwbvGS4fOuaG6K4bf1Ltf2zHPT2YadnvtbWevNS33KZfURmoXjZd1dwx\n\t6TMVwS2FmIZDdnVXiRxkWwo5DGqb9dE8DSvpDozOFlsdDgL+KSba1kdfXuWFtN1EqJ\n\tTRJf36FXPrJJqKIFt/AiJ9U36SPsari5PMRfB9FNcBqUj793TjOGI1NF1GnY8c/jFg\n\tr/nEviW+Qj4nu95nuI2xife8rub/rsFyVxplT78DnleBdXTwrV4zawv22EnO1jfPBT\n\t68PGT3dkDFALQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=to:subject:message-id:date:from:in-reply-to:references:mime-version\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=PfA+ahufyz8kXAcWQzfOSoSgJb/fzn9ovXgErIAzhNs=;\n\tb=WmNf+vCNyddflgPVQCI47kXrjjl7p6KcN9uP0OCehcfShSDss4/hBWwH/7W5S5C9KN\n\tK5ixNyKpR9uO6q2veHs2A/QG0PYrmhx/3PsxVE3cpjJSTSwXPaCSAx/+oZ/jBR5L2MvM\n\tlWH20ohmNmRcDvaLTvvMy3d/iwINkhWz4Zd4bcnHfgxEvT68CUE3JxHWD97Gq9ESI8ET\n\tQPqB+DmikLnu/C0r+If9vlxodptGzEBj6ivvp8jt0NcQaFY1nb4v86FS7NY3RcHP0j5W\n\t3VGOcScX/saGoSiwwGAP4K8aCHUXosx1bO11ZFuYcgxQJCxvG1/igeQChGB7nGHPwy6m\n\tvk2w=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"WmNf+vCN\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=to:subject:message-id:date:from:in-reply-to:references:mime-version\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=PfA+ahufyz8kXAcWQzfOSoSgJb/fzn9ovXgErIAzhNs=;\n\tb=JAhWwMTUQDvHiUVcDtk+x2NrBUl6dOwOU3vW29aWTSY0pDWu2dhLmEtelO2Y1msUf4\n\t1JQn2ZrDSyJcEdqgQWW16ztIvBqDPV7bwTTLWhqfrytpolB14rFGkjXgVlZKNlamSMV1\n\t4B0v8+/nKpPnNERseh1E2T0Efj1+qPUVO/q6+AsDT/aUiHEDCDefiNNnIouQ6O5p2MNZ\n\tEHk9qEGEY8aG51Iyb9APkhf2EGYWnBO5+2rl3ukM3/Qifsh4S/prXhNpohdhLb3O7Lk1\n\tV/PLj6MWAPclxfDW/jt0KYv+SsR1o3eKeWbpWBTnEdwVsdarED2JnkpdNcKC/dmJ7d7u\n\tuXYw==","X-Gm-Message-State":"AO0yUKXGOspFjE1IhV/NI+wiEwVsbijcDMApNTs2mOFbm4HgJ/DkOPhs\n\t3zv+p5IFf0pT8r8tkqJTN7xDHKFGZSfHhJRAoHkLVoriU4TmFHfv","X-Google-Smtp-Source":"AK7set9gsbqzuUiaQeYtVTIT12cstsBH+4z5Xc+OrQ3Dt6NNjB+VeSowPfgHBufsReGKYwkrRHOy8L/ERkM/M4JEVII=","X-Received":"by 2002:a25:424c:0:b0:85d:7d3a:ee73 with SMTP id\n\tp73-20020a25424c000000b0085d7d3aee73mr1100236yba.223.1675931490822;\n\tThu, 09 Feb 2023 00:31:30 -0800 (PST)","MIME-Version":"1.0","References":"<20230203091734.22803-1-naush@raspberrypi.com>","In-Reply-To":"<20230203091734.22803-1-naush@raspberrypi.com>","Date":"Thu, 9 Feb 2023 08:31:21 +0000","Message-ID":"<CAEmqJPrizhz-0Nd4YWsh63MumCLSWtvQ3t5qp5BC7E8NSEHb8w@mail.gmail.com>","To":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","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":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26435,"web_url":"https://patchwork.libcamera.org/comment/26435/","msgid":"<167594271292.42371.1862096984367424553@Monstersaurus>","date":"2023-02-09T11:38:32","subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Kieran Bingham (2023-02-09 10:37:22)\n> Hi Naush,\n> \n> On 09/02/2023 08:31, Naushir Patuck via libcamera-devel wrote:\n> > Hi all,\n> > \n> > If there are no other review comments or feedback, I think this is\n> > ready to be merged.\n> \n> I'll apply this now.\n> \n> I wonder if it's worth using/trying pull requests when you have code \n> that is explicitly ready for merge from Raspberry Pi.\n> \n>   - https://git-scm.com/docs/git-request-pull\n> \n\nIt failed compilation matrix I'm afraid:\n\nConfiguration: clang-11:clang++-11 (/home/kbingham/iob/libcamera/ci/integrator/logs/build-matrix-clang-11.log)\n\n...\n[51/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\nFAILED: src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\nclang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp\n../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n        statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n                            ^\n../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: note: remove std::move call here\n        statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n                            ^~~~~~~~~~                                                                   ~\n1 error generated.\n[52/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_dpc.cpp.o\n[53/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx477.cpp.o\n[54/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_noise.cpp.o\n[55/120] Compiling C++ object src/android/libcamera-hal.so.p/camera_capabilities.cpp.o\n[56/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_pwl.cpp.o\n[57/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx519.cpp.o\n[58/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_sdn.cpp.o\n[59/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\nFAILED: src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o \nclang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp\n../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n        aeHistLinear_ = std::move(Histogram(hist, 128));\n                        ^\n../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: note: remove std::move call here\n        aeHistLinear_ = std::move(Histogram(hist, 128));\n                        ^~~~~~~~~~                    ~\n1 error generated.\n...\n\n\n--\nKieran\n\n\n> --\n> Regards\n> \n> Kieran\n> \n> \n> > Regards,\n> > Naush\n> > \n> > On Fri, 3 Feb 2023 at 09:17, Naushir Patuck <naush@raspberrypi.com> wrote:\n> >>\n> >> Hi,\n> >>\n> >> Version 5 rebases the changes on-top of master - particularly updating the\n> >> breakages in cam_helper_imx708.cpp in patch 4/5.\n> >>\n> >> Regards,\n> >> Naush\n> >>\n> >> Naushir Patuck (5):\n> >>    ipa: raspberrypi: Generalise statistics\n> >>    ipa: raspberrypi: histogram: Add a constructor for an empty histogram\n> >>    ipa: raspberrypi: awb: Delay release of the statistics buffer\n> >>    ipa: raspberrypi: Use the generic statistics structure in the\n> >>      algorithms\n> >>    ipa: raspberrypi: Normalise region sums to 16-bits\n> >>\n> >>   src/ipa/raspberrypi/cam_helper_imx708.cpp     |  26 ++--\n> >>   src/ipa/raspberrypi/controller/controller.h   |   4 +-\n> >>   src/ipa/raspberrypi/controller/histogram.h    |   5 +\n> >>   src/ipa/raspberrypi/controller/region_stats.h | 123 ++++++++++++++++++\n> >>   src/ipa/raspberrypi/controller/rpi/af.cpp     |  10 +-\n> >>   src/ipa/raspberrypi/controller/rpi/af.h       |   8 +-\n> >>   src/ipa/raspberrypi/controller/rpi/agc.cpp    |  32 ++---\n> >>   src/ipa/raspberrypi/controller/rpi/agc.h      |   2 +-\n> >>   src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  32 ++---\n> >>   src/ipa/raspberrypi/controller/rpi/alsc.h     |   3 +-\n> >>   src/ipa/raspberrypi/controller/rpi/awb.cpp    |  30 ++---\n> >>   src/ipa/raspberrypi/controller/rpi/awb.h      |   1 +\n> >>   .../raspberrypi/controller/rpi/contrast.cpp   |   8 +-\n> >>   src/ipa/raspberrypi/controller/rpi/focus.cpp  |   7 +-\n> >>   src/ipa/raspberrypi/controller/rpi/lux.cpp    |  14 +-\n> >>   src/ipa/raspberrypi/raspberrypi.cpp           |  50 ++++++-\n> >>   src/ipa/raspberrypi/statistics.h              |  78 +++++++++++\n> >>   17 files changed, 338 insertions(+), 95 deletions(-)\n> >>   create mode 100644 src/ipa/raspberrypi/controller/region_stats.h\n> >>   create mode 100644 src/ipa/raspberrypi/statistics.h\n> >>\n> >> --\n> >> 2.25.1\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 CFB73BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Feb 2023 11:38:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1C5BE625F4;\n\tThu,  9 Feb 2023 12:38:38 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BC43B603BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Feb 2023 12:38:35 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4215F9CA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Feb 2023 12:38:35 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1675942718;\n\tbh=uSw8CKZU56R0S+uAqCBgoZHv75/sOR5dbmchtLxlcxc=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=JHyEPAOazRCyhQuL8ZxGpffTwKDXDej8+N2k4jfydwk3swVbQbbme6TPY5zNhiIht\n\tM/87Gwg0dgb04wak328rWG2js6VSxijc+umV7bkfkSuol1IkAQWgyePVdfKxO84e9a\n\teBU2dZMvfwCDSf/DAMEv9aF6s3EBoZ/Ww5wG2ULGiBAdnl8igpmjwQRCkmhP7/Sqr0\n\tP/iOQCMVd1ztHQiWiTjM/GdPNKxXBLvQgXLmJGQlv4aR9izhff6eUJV/D1pIEpCVrr\n\tr5MnMpKjc3wjm0GJixrQ2Am3wHG/apknwOdLQvLXAig+DNLSZmp9Qu16zqJC/j2KlT\n\twFQ6mWDh3kjYA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1675942715;\n\tbh=uSw8CKZU56R0S+uAqCBgoZHv75/sOR5dbmchtLxlcxc=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=AY6QuBB0dIAV6FwFGrJOYp5W4DBnOypQm3/T3K878vWJNUD0jnbwyV2c0VV/jRJYU\n\ttT6tZIBb6/rjY3JOacx/FA3mU/8qL0JNbGbcow6lmoXzxsth7wPbx8UH8i6ovyPQVQ\n\tQW3C/UnUFPYletme4ROWyoghQ5RLUBAvGbKCQuQ0="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"AY6QuBB0\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<92f30ef2-a8e4-fb1c-aade-c773dc1cf748@ideasonboard.com>","References":"<20230203091734.22803-1-naush@raspberrypi.com>\n\t<CAEmqJPrizhz-0Nd4YWsh63MumCLSWtvQ3t5qp5BC7E8NSEHb8w@mail.gmail.com>\n\t<92f30ef2-a8e4-fb1c-aade-c773dc1cf748@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Thu, 09 Feb 2023 11:38:32 +0000","Message-ID":"<167594271292.42371.1862096984367424553@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","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":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26436,"web_url":"https://patchwork.libcamera.org/comment/26436/","msgid":"<CAEmqJPq3GXqq_0YZGAZTdFSQE2uA=zvK3t919mFVdjwqOb4RAA@mail.gmail.com>","date":"2023-02-09T11:47:23","subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Kieran,\n\nOn Thu, 9 Feb 2023 at 11:38, Kieran Bingham via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> Quoting Kieran Bingham (2023-02-09 10:37:22)\n> > Hi Naush,\n> >\n> > On 09/02/2023 08:31, Naushir Patuck via libcamera-devel wrote:\n> > > Hi all,\n> > >\n> > > If there are no other review comments or feedback, I think this is\n> > > ready to be merged.\n> >\n> > I'll apply this now.\n> >\n> > I wonder if it's worth using/trying pull requests when you have code\n> > that is explicitly ready for merge from Raspberry Pi.\n> >\n> >   - https://git-scm.com/docs/git-request-pull\n\nInteresting, I've never tried this before.  Will investigate exactly\nwhat it does.\n\n>\n> It failed compilation matrix I'm afraid:\n\n\nArgh. My clang-9 did not seem to complan.\nLooks to be a trivial fix (remove std::move).  I'll make the change\nand re-submit.\n\nRegards,\nNaush\n\n>\n> Configuration: clang-11:clang++-11 (/home/kbingham/iob/libcamera/ci/integrator/logs/build-matrix-clang-11.log)\n>\n> ...\n> [51/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp\n> ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n>         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n>                             ^\n> ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: note: remove std::move call here\n>         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n>                             ^~~~~~~~~~                                                                   ~\n> 1 error generated.\n> [52/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_dpc.cpp.o\n> [53/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx477.cpp.o\n> [54/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_noise.cpp.o\n> [55/120] Compiling C++ object src/android/libcamera-hal.so.p/camera_capabilities.cpp.o\n> [56/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_pwl.cpp.o\n> [57/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx519.cpp.o\n> [58/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_sdn.cpp.o\n> [59/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp\n> ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n>         aeHistLinear_ = std::move(Histogram(hist, 128));\n>                         ^\n> ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: note: remove std::move call here\n>         aeHistLinear_ = std::move(Histogram(hist, 128));\n>                         ^~~~~~~~~~                    ~\n> 1 error generated.\n> ...\n>\n>\n> --\n> Kieran\n>\n>\n> > --\n> > Regards\n> >\n> > Kieran\n> >\n> >\n> > > Regards,\n> > > Naush\n> > >\n> > > On Fri, 3 Feb 2023 at 09:17, Naushir Patuck <naush@raspberrypi.com> wrote:\n> > >>\n> > >> Hi,\n> > >>\n> > >> Version 5 rebases the changes on-top of master - particularly updating the\n> > >> breakages in cam_helper_imx708.cpp in patch 4/5.\n> > >>\n> > >> Regards,\n> > >> Naush\n> > >>\n> > >> Naushir Patuck (5):\n> > >>    ipa: raspberrypi: Generalise statistics\n> > >>    ipa: raspberrypi: histogram: Add a constructor for an empty histogram\n> > >>    ipa: raspberrypi: awb: Delay release of the statistics buffer\n> > >>    ipa: raspberrypi: Use the generic statistics structure in the\n> > >>      algorithms\n> > >>    ipa: raspberrypi: Normalise region sums to 16-bits\n> > >>\n> > >>   src/ipa/raspberrypi/cam_helper_imx708.cpp     |  26 ++--\n> > >>   src/ipa/raspberrypi/controller/controller.h   |   4 +-\n> > >>   src/ipa/raspberrypi/controller/histogram.h    |   5 +\n> > >>   src/ipa/raspberrypi/controller/region_stats.h | 123 ++++++++++++++++++\n> > >>   src/ipa/raspberrypi/controller/rpi/af.cpp     |  10 +-\n> > >>   src/ipa/raspberrypi/controller/rpi/af.h       |   8 +-\n> > >>   src/ipa/raspberrypi/controller/rpi/agc.cpp    |  32 ++---\n> > >>   src/ipa/raspberrypi/controller/rpi/agc.h      |   2 +-\n> > >>   src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  32 ++---\n> > >>   src/ipa/raspberrypi/controller/rpi/alsc.h     |   3 +-\n> > >>   src/ipa/raspberrypi/controller/rpi/awb.cpp    |  30 ++---\n> > >>   src/ipa/raspberrypi/controller/rpi/awb.h      |   1 +\n> > >>   .../raspberrypi/controller/rpi/contrast.cpp   |   8 +-\n> > >>   src/ipa/raspberrypi/controller/rpi/focus.cpp  |   7 +-\n> > >>   src/ipa/raspberrypi/controller/rpi/lux.cpp    |  14 +-\n> > >>   src/ipa/raspberrypi/raspberrypi.cpp           |  50 ++++++-\n> > >>   src/ipa/raspberrypi/statistics.h              |  78 +++++++++++\n> > >>   17 files changed, 338 insertions(+), 95 deletions(-)\n> > >>   create mode 100644 src/ipa/raspberrypi/controller/region_stats.h\n> > >>   create mode 100644 src/ipa/raspberrypi/statistics.h\n> > >>\n> > >> --\n> > >> 2.25.1\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 D6E27BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Feb 2023 11:47:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 36300625E3;\n\tThu,  9 Feb 2023 12:47:42 +0100 (CET)","from mail-yb1-xb2c.google.com (mail-yb1-xb2c.google.com\n\t[IPv6:2607:f8b0:4864:20::b2c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 96205603BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Feb 2023 12:47:40 +0100 (CET)","by mail-yb1-xb2c.google.com with SMTP id x71so1095818ybg.6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 09 Feb 2023 03:47:40 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1675943262;\n\tbh=IlZ2YKC8kudpMIpmOunUgrxY9GgOxDOc+24i4d31uXM=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=eH8Sj6GBeSJZf1BGnhKeFRLpnI3SB9m7JHY5d9MjLzQRAJQxqT2BdQ6N5B3BXtFwv\n\t9aPXL5q+yb5mXkidZOX7xKiQ8DEu+7hZzH9q4O5OotarPSO/sSuQo65w9nNZHUup/P\n\tN8DgNXKVQfKfjBa8KGsvxfeF6yxotOKjypMh4jHGMas5qf4xpZ7XA/otAbRG3TS76q\n\toSTJuRG9wd/gJAf0gdLZ8ACNJZ7vTggLngbc/Nlj71hZHaHIh1aYxQNQg6vceOlx63\n\tF9Q3rXKa5RHSi2QRvvtTrJyUYvWuXKJpsSM/214dckBWMXCiNeLzRgWaqoHwX4zJAe\n\tt0ey43MwJ7pcQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=content-transfer-encoding:cc: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=kX6VLUGxXQQh/pb84fxv4FUfkz2AL/GMTXbH4N5B2m8=;\n\tb=lao2kA1D7Qve2bZeoCU3KKbTIZf6yRo6CHaCHTlKYVARHNIX2q9/kLeqxKqPsbMdC5\n\t+tQWnB0XaJpFFM9iUscxuVHBHuVE5oOrZMOd62WFVo0oRr1tbFhwjoRDFY0r4aVKYqPS\n\txakZ0rUlg81iQl7Uti8Pl13NbCMiP8ApqJojJLYX5fF7KeMf+78HL3FCku9+aH/u/9Hg\n\txM1QBYK0b/fEALwiRbQ6UyHVtvVIFFScJLmankWuLHyBbKBs3vCb4AVbycZYtv1qI5Z1\n\tUBUW+oWwpS0aR00dvgWt0jkYBJEAFUiRDsQqs7qZNZKGPYgDWOWwqX113Y3RLAjAiywA\n\tWXEg=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"lao2kA1D\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=content-transfer-encoding:cc: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=kX6VLUGxXQQh/pb84fxv4FUfkz2AL/GMTXbH4N5B2m8=;\n\tb=CgyyltV3OJvzOd5qdOKAJCnY87Edas4wQfp7LnzXDplL2ZFh2Jj3eNQqdXxTIYVDR2\n\tV9fPJ8gRI4k8QktHJo9fhuaGWatYYNX1jP3liYq39pMYar4it9t5IuT7acUXnF1y6xlx\n\tVf0U5mpZU+N7S5l/MgXiUlDg4/hkQKtdiIf3qurGEp4Mnz8PJDDpLGDwc5VWCVv5Wjur\n\tkBq6Pw5sNea8Fo1a5tmJiRWYGDxBOTu+4JeFs8cLy2pNcFf5GWNvZvelKltiARGOl57v\n\ttek3VGN5sBJtHo0xE0iY200lNg3gBtCnfHJhDzuLfzaBIh2u4k3Ng8uWE4Ul989B9abY\n\tuiuA==","X-Gm-Message-State":"AO0yUKXmFg9Eo44F1Y/kbdmE6OSd3Tj4NAJnYTXJTRyUXoW3E1JLIFVk\n\tg5WREebmdWSoI42HrBphSs25YzU6qqiDfE0wnKWz45bxJN3K+E/y","X-Google-Smtp-Source":"AK7set/pqD4HAyWzsiE131b48SsCXxj9tZ0yQ1Jlfhe7bjAYwujkqm8pj73bTRH82MFV9W63SVOMmUqH6OspUlrwQSc=","X-Received":"by 2002:a25:22d6:0:b0:861:6af2:d2f3 with SMTP id\n\ti205-20020a2522d6000000b008616af2d2f3mr1337081ybi.330.1675943259094;\n\tThu, 09 Feb 2023 03:47:39 -0800 (PST)","MIME-Version":"1.0","References":"<20230203091734.22803-1-naush@raspberrypi.com>\n\t<CAEmqJPrizhz-0Nd4YWsh63MumCLSWtvQ3t5qp5BC7E8NSEHb8w@mail.gmail.com>\n\t<92f30ef2-a8e4-fb1c-aade-c773dc1cf748@ideasonboard.com>\n\t<167594271292.42371.1862096984367424553@Monstersaurus>","In-Reply-To":"<167594271292.42371.1862096984367424553@Monstersaurus>","Date":"Thu, 9 Feb 2023 11:47:23 +0000","Message-ID":"<CAEmqJPq3GXqq_0YZGAZTdFSQE2uA=zvK3t919mFVdjwqOb4RAA@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","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":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26438,"web_url":"https://patchwork.libcamera.org/comment/26438/","msgid":"<167595245061.42371.11018263272837465112@Monstersaurus>","date":"2023-02-09T14:20:50","subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Naushir Patuck (2023-02-09 11:47:23)\n> Hi Kieran,\n> \n> On Thu, 9 Feb 2023 at 11:38, Kieran Bingham via libcamera-devel\n> <libcamera-devel@lists.libcamera.org> wrote:\n> >\n> > Quoting Kieran Bingham (2023-02-09 10:37:22)\n> > > Hi Naush,\n> > >\n> > > On 09/02/2023 08:31, Naushir Patuck via libcamera-devel wrote:\n> > > > Hi all,\n> > > >\n> > > > If there are no other review comments or feedback, I think this is\n> > > > ready to be merged.\n> > >\n> > > I'll apply this now.\n> > >\n> > > I wonder if it's worth using/trying pull requests when you have code\n> > > that is explicitly ready for merge from Raspberry Pi.\n> > >\n> > >   - https://git-scm.com/docs/git-request-pull\n> \n> Interesting, I've never tried this before.  Will investigate exactly\n> what it does.\n\nMy integration scripts all work from a branch on a repository, so this\nwould help me quite a bit as I could just directly pull the code you\nwant to be merged.\n\nSpeaking of which. This series is merged.\n--\nKieran\n\n\n> >\n> > It failed compilation matrix I'm afraid:\n> \n> \n> Argh. My clang-9 did not seem to complan.\n> Looks to be a trivial fix (remove std::move).  I'll make the change\n> and re-submit.\n> \n> Regards,\n> Naush\n> \n> >\n> > Configuration: clang-11:clang++-11 (/home/kbingham/iob/libcamera/ci/integrator/logs/build-matrix-clang-11.log)\n> >\n> > ...\n> > [51/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> > FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> > clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp\n> > ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n> >         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n> >                             ^\n> > ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: note: remove std::move call here\n> >         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n> >                             ^~~~~~~~~~                                                                   ~\n> > 1 error generated.\n> > [52/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_dpc.cpp.o\n> > [53/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx477.cpp.o\n> > [54/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_noise.cpp.o\n> > [55/120] Compiling C++ object src/android/libcamera-hal.so.p/camera_capabilities.cpp.o\n> > [56/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_pwl.cpp.o\n> > [57/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx519.cpp.o\n> > [58/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_sdn.cpp.o\n> > [59/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> > FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> > clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp\n> > ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n> >         aeHistLinear_ = std::move(Histogram(hist, 128));\n> >                         ^\n> > ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: note: remove std::move call here\n> >         aeHistLinear_ = std::move(Histogram(hist, 128));\n> >                         ^~~~~~~~~~                    ~\n> > 1 error generated.\n> > ...\n> >\n> >\n> > --\n> > Kieran\n> >\n> >\n> > > --\n> > > Regards\n> > >\n> > > Kieran\n> > >\n> > >\n> > > > Regards,\n> > > > Naush\n> > > >\n> > > > On Fri, 3 Feb 2023 at 09:17, Naushir Patuck <naush@raspberrypi.com> wrote:\n> > > >>\n> > > >> Hi,\n> > > >>\n> > > >> Version 5 rebases the changes on-top of master - particularly updating the\n> > > >> breakages in cam_helper_imx708.cpp in patch 4/5.\n> > > >>\n> > > >> Regards,\n> > > >> Naush\n> > > >>\n> > > >> Naushir Patuck (5):\n> > > >>    ipa: raspberrypi: Generalise statistics\n> > > >>    ipa: raspberrypi: histogram: Add a constructor for an empty histogram\n> > > >>    ipa: raspberrypi: awb: Delay release of the statistics buffer\n> > > >>    ipa: raspberrypi: Use the generic statistics structure in the\n> > > >>      algorithms\n> > > >>    ipa: raspberrypi: Normalise region sums to 16-bits\n> > > >>\n> > > >>   src/ipa/raspberrypi/cam_helper_imx708.cpp     |  26 ++--\n> > > >>   src/ipa/raspberrypi/controller/controller.h   |   4 +-\n> > > >>   src/ipa/raspberrypi/controller/histogram.h    |   5 +\n> > > >>   src/ipa/raspberrypi/controller/region_stats.h | 123 ++++++++++++++++++\n> > > >>   src/ipa/raspberrypi/controller/rpi/af.cpp     |  10 +-\n> > > >>   src/ipa/raspberrypi/controller/rpi/af.h       |   8 +-\n> > > >>   src/ipa/raspberrypi/controller/rpi/agc.cpp    |  32 ++---\n> > > >>   src/ipa/raspberrypi/controller/rpi/agc.h      |   2 +-\n> > > >>   src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  32 ++---\n> > > >>   src/ipa/raspberrypi/controller/rpi/alsc.h     |   3 +-\n> > > >>   src/ipa/raspberrypi/controller/rpi/awb.cpp    |  30 ++---\n> > > >>   src/ipa/raspberrypi/controller/rpi/awb.h      |   1 +\n> > > >>   .../raspberrypi/controller/rpi/contrast.cpp   |   8 +-\n> > > >>   src/ipa/raspberrypi/controller/rpi/focus.cpp  |   7 +-\n> > > >>   src/ipa/raspberrypi/controller/rpi/lux.cpp    |  14 +-\n> > > >>   src/ipa/raspberrypi/raspberrypi.cpp           |  50 ++++++-\n> > > >>   src/ipa/raspberrypi/statistics.h              |  78 +++++++++++\n> > > >>   17 files changed, 338 insertions(+), 95 deletions(-)\n> > > >>   create mode 100644 src/ipa/raspberrypi/controller/region_stats.h\n> > > >>   create mode 100644 src/ipa/raspberrypi/statistics.h\n> > > >>\n> > > >> --\n> > > >> 2.25.1\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 44D04BDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Feb 2023 14:20:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A9472625E3;\n\tThu,  9 Feb 2023 15:20:55 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E8A25603BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Feb 2023 15:20:53 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7392C9CA;\n\tThu,  9 Feb 2023 15:20:53 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1675952455;\n\tbh=azAZG402lTUgojLz98jZ6pz/6JLp9vtIYZTrCSn8zgY=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=wxFs/9P/2D+ufhYIJNJfjnMXmJ49gQnLxL7WyjPCjG4zihoq/W14FJGXwhB2mF0lc\n\tZpvKtIerNA1NQtVKZ/IJ7uNBYLZyvTOb4obaYkRsz5PVPMI3kHfw64nH1YZcEdKc3M\n\tkVLxk2mpv+Lsmow9d1cVRxe9w/RKhMDNjgaoEH/oVfNmjfX2I9Makg9oIUdZ0E0g0W\n\tEWbvmRGkZh87IxL0qp4rv7WXMvsME1jf38MtJhyECzk2QcLmYLDtcr+k+YZ+wGdXFA\n\t0OBMuBahIy9p2BfXzrFle0x/Itd+vZ54F90vWL6nS62RlAuzFv/BYpfa9WOL+BEzge\n\tkDuInY5md/wrg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1675952453;\n\tbh=azAZG402lTUgojLz98jZ6pz/6JLp9vtIYZTrCSn8zgY=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=ri8jjHpOfOEoUKLzX8ARrxDyWqtTWGJ/T85H//YOrV1ilmNbOStEgjgyXNRg/I2CL\n\tqNNt7tReXpXprBrFIldniZajG4c0Zav73mpsGK1JYbqOcwdSHZUKG9fiTbcDOl++TK\n\tdewTWUAvHgTjR7CktGLYI5JPM0vtUN9JoG46SYGc="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ri8jjHpO\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<CAEmqJPq3GXqq_0YZGAZTdFSQE2uA=zvK3t919mFVdjwqOb4RAA@mail.gmail.com>","References":"<20230203091734.22803-1-naush@raspberrypi.com>\n\t<CAEmqJPrizhz-0Nd4YWsh63MumCLSWtvQ3t5qp5BC7E8NSEHb8w@mail.gmail.com>\n\t<92f30ef2-a8e4-fb1c-aade-c773dc1cf748@ideasonboard.com>\n\t<167594271292.42371.1862096984367424553@Monstersaurus>\n\t<CAEmqJPq3GXqq_0YZGAZTdFSQE2uA=zvK3t919mFVdjwqOb4RAA@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Date":"Thu, 09 Feb 2023 14:20:50 +0000","Message-ID":"<167595245061.42371.11018263272837465112@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","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":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26440,"web_url":"https://patchwork.libcamera.org/comment/26440/","msgid":"<CAEmqJPona+1xmRkLr3K00+G6CcPt=JToX2tzNGh7vWWOmVDBrQ@mail.gmail.com>","date":"2023-02-09T15:07:54","subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"On Thu, 9 Feb 2023 at 14:20, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Quoting Naushir Patuck (2023-02-09 11:47:23)\n> > Hi Kieran,\n> >\n> > On Thu, 9 Feb 2023 at 11:38, Kieran Bingham via libcamera-devel\n> > <libcamera-devel@lists.libcamera.org> wrote:\n> > >\n> > > Quoting Kieran Bingham (2023-02-09 10:37:22)\n> > > > Hi Naush,\n> > > >\n> > > > On 09/02/2023 08:31, Naushir Patuck via libcamera-devel wrote:\n> > > > > Hi all,\n> > > > >\n> > > > > If there are no other review comments or feedback, I think this is\n> > > > > ready to be merged.\n> > > >\n> > > > I'll apply this now.\n> > > >\n> > > > I wonder if it's worth using/trying pull requests when you have code\n> > > > that is explicitly ready for merge from Raspberry Pi.\n> > > >\n> > > >   - https://git-scm.com/docs/git-request-pull\n> >\n> > Interesting, I've never tried this before.  Will investigate exactly\n> > what it does.\n>\n> My integration scripts all work from a branch on a repository, so this\n> would help me quite a bit as I could just directly pull the code you\n> want to be merged.\n>\n> Speaking of which. This series is merged.\n\nThanks Kieran!\n\nOn the subject of git request-pull, what kind of process were you\nthinking of?  Do you think something like:\n\n- Post patches for review to the ML as normal.\n- Once patches are reviewed and ready for submission, I create a\nbranch on github.\n- Run git request-pull and copy/paste the output in an email to you?\n- You have scripts that parse the output and do the right thing(TM).\n\nmight be useful?\n\n\n\n> --\n> Kieran\n>\n>\n> > >\n> > > It failed compilation matrix I'm afraid:\n> >\n> >\n> > Argh. My clang-9 did not seem to complan.\n> > Looks to be a trivial fix (remove std::move).  I'll make the change\n> > and re-submit.\n> >\n> > Regards,\n> > Naush\n> >\n> > >\n> > > Configuration: clang-11:clang++-11 (/home/kbingham/iob/libcamera/ci/integrator/logs/build-matrix-clang-11.log)\n> > >\n> > > ...\n> > > [51/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> > > FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> > > clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp\n> > > ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n> > >         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n> > >                             ^\n> > > ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: note: remove std::move call here\n> > >         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n> > >                             ^~~~~~~~~~                                                                   ~\n> > > 1 error generated.\n> > > [52/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_dpc.cpp.o\n> > > [53/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx477.cpp.o\n> > > [54/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_noise.cpp.o\n> > > [55/120] Compiling C++ object src/android/libcamera-hal.so.p/camera_capabilities.cpp.o\n> > > [56/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_pwl.cpp.o\n> > > [57/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx519.cpp.o\n> > > [58/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_sdn.cpp.o\n> > > [59/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> > > FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> > > clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp\n> > > ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n> > >         aeHistLinear_ = std::move(Histogram(hist, 128));\n> > >                         ^\n> > > ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: note: remove std::move call here\n> > >         aeHistLinear_ = std::move(Histogram(hist, 128));\n> > >                         ^~~~~~~~~~                    ~\n> > > 1 error generated.\n> > > ...\n> > >\n> > >\n> > > --\n> > > Kieran\n> > >\n> > >\n> > > > --\n> > > > Regards\n> > > >\n> > > > Kieran\n> > > >\n> > > >\n> > > > > Regards,\n> > > > > Naush\n> > > > >\n> > > > > On Fri, 3 Feb 2023 at 09:17, Naushir Patuck <naush@raspberrypi.com> wrote:\n> > > > >>\n> > > > >> Hi,\n> > > > >>\n> > > > >> Version 5 rebases the changes on-top of master - particularly updating the\n> > > > >> breakages in cam_helper_imx708.cpp in patch 4/5.\n> > > > >>\n> > > > >> Regards,\n> > > > >> Naush\n> > > > >>\n> > > > >> Naushir Patuck (5):\n> > > > >>    ipa: raspberrypi: Generalise statistics\n> > > > >>    ipa: raspberrypi: histogram: Add a constructor for an empty histogram\n> > > > >>    ipa: raspberrypi: awb: Delay release of the statistics buffer\n> > > > >>    ipa: raspberrypi: Use the generic statistics structure in the\n> > > > >>      algorithms\n> > > > >>    ipa: raspberrypi: Normalise region sums to 16-bits\n> > > > >>\n> > > > >>   src/ipa/raspberrypi/cam_helper_imx708.cpp     |  26 ++--\n> > > > >>   src/ipa/raspberrypi/controller/controller.h   |   4 +-\n> > > > >>   src/ipa/raspberrypi/controller/histogram.h    |   5 +\n> > > > >>   src/ipa/raspberrypi/controller/region_stats.h | 123 ++++++++++++++++++\n> > > > >>   src/ipa/raspberrypi/controller/rpi/af.cpp     |  10 +-\n> > > > >>   src/ipa/raspberrypi/controller/rpi/af.h       |   8 +-\n> > > > >>   src/ipa/raspberrypi/controller/rpi/agc.cpp    |  32 ++---\n> > > > >>   src/ipa/raspberrypi/controller/rpi/agc.h      |   2 +-\n> > > > >>   src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  32 ++---\n> > > > >>   src/ipa/raspberrypi/controller/rpi/alsc.h     |   3 +-\n> > > > >>   src/ipa/raspberrypi/controller/rpi/awb.cpp    |  30 ++---\n> > > > >>   src/ipa/raspberrypi/controller/rpi/awb.h      |   1 +\n> > > > >>   .../raspberrypi/controller/rpi/contrast.cpp   |   8 +-\n> > > > >>   src/ipa/raspberrypi/controller/rpi/focus.cpp  |   7 +-\n> > > > >>   src/ipa/raspberrypi/controller/rpi/lux.cpp    |  14 +-\n> > > > >>   src/ipa/raspberrypi/raspberrypi.cpp           |  50 ++++++-\n> > > > >>   src/ipa/raspberrypi/statistics.h              |  78 +++++++++++\n> > > > >>   17 files changed, 338 insertions(+), 95 deletions(-)\n> > > > >>   create mode 100644 src/ipa/raspberrypi/controller/region_stats.h\n> > > > >>   create mode 100644 src/ipa/raspberrypi/statistics.h\n> > > > >>\n> > > > >> --\n> > > > >> 2.25.1\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 8EE89BDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Feb 2023 15:08:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 065C7625E3;\n\tThu,  9 Feb 2023 16:08:12 +0100 (CET)","from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com\n\t[IPv6:2607:f8b0:4864:20::b2b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 76080603BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Feb 2023 16:08:10 +0100 (CET)","by mail-yb1-xb2b.google.com with SMTP id a1so2649281ybj.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 09 Feb 2023 07:08:10 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1675955292;\n\tbh=N2TlRPltdfvTLdO6hx7snGIlsI1/3c3a5TO8hHMtK7A=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=QrRXK5uQUfbgXU1Zosh9utlMp58MeCh891ObuMDJblmWnZvU47nkKJ10ebbXW/g8A\n\tDgVGF1E+UQiItmSytgl+ijHUt1OYGzX47sAtSnVEE5BPaUmi/H4G/u+94XdQ1dnztz\n\tVsBMFH0ctNsUnu6xK9LG9lXXrFpTk3tImryxNhadTaFlKmUC4PT1+lIaJGE96Mj5HF\n\t+DUXy2bAwrh2AV4LBuLyfvXBzrxCqFuSnmTsN3n+D7apxrmVhqQFkMSj4CBUwjrrjn\n\t6zAmMzJiLtm2qhaTuViHxYeO91051hEJdPI6SxKVkijNDu1g780hi2U0eYmmgZAqbZ\n\tD/3H0NNEYs41g==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=content-transfer-encoding:cc: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=J8o/VJYjm+LncoYvMtu4pOD9Bt61qkRNLOfgeV+ZahM=;\n\tb=qBMXfgDKMqURxfw80U/hi36YvyZ2rILPREdzzHrvFFMh5hbKY10eWzn9M5o2ZGb2cc\n\tIfEOvRENiVkIFNAzaX00Kbp/+OZhiUD7Gi66OWGjd9a6M7oqT1h9+HC7p3SzopDHaHQV\n\ttBJm1HEGhHaDBQiYvMlm5rXO7U5j8fCQYs4U0XPQ1O4Lfc8AJbYOCOWzIV9PPnrV3XnB\n\t+xuKJfd7+FWulguiJb7paakZSv3vl7Cs1JM7StojWl3m+3epHVNjGueSbyrMZAKxDSEq\n\tUvOQhcMzghhDTkZtX05LgOO3fF1A6x7y9CHPnxa+jgdfaeXbbtSjDTfFJuCVYm5uPd+P\n\tPacQ=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"qBMXfgDK\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=content-transfer-encoding:cc: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=J8o/VJYjm+LncoYvMtu4pOD9Bt61qkRNLOfgeV+ZahM=;\n\tb=az2IWOYTh9pDufgdVJDXQeAu4PCUDeY1dE0EE7J1IIxp78S44F/gFf3ddxgTf23lRV\n\tbc5jSJuw03NbeDReASMOCqrDEKJKwRqUfIDRuElS2ByuiSd5XOvZI34VJzzI52OsaeQl\n\tFww+BjFuNXVTrs5nZAED11fiwStHZKP4bfgSwzfiDzMXCRazh8Uh298ywe0l81DlKxla\n\tO5LMJH1Fyp2J+ZhPhIilO9sEV8iVrftFSRalelEW59agwsnqzi99OlHHOR9/PsQCib8p\n\tiOC6AYDr+ezAyJY2AkzNdYglmOm7Wyq0LawV3vMdIAw/N5CdnxbnIIR/z/BW6fYr+nDO\n\t4m8g==","X-Gm-Message-State":"AO0yUKXU0xXhbVPXTaqIih2+4GyCUKBVpFHshSW7JoIJ0t7UtvwSmp5s\n\tvV3qvA3lBlpJpuXY1KTvuf5zxvANRNJ3tApxGoKAYFn4aWDHiUed","X-Google-Smtp-Source":"AK7set9injqsa+JioCuOiyYhrlRZWFgXKdNtxSj34JLfKGiJpXqhgpKFitP6RBDyLoTVgHfIxV/xqWsOZOwsIKHpyJU=","X-Received":"by 2002:a25:22d6:0:b0:861:6af2:d2f3 with SMTP id\n\ti205-20020a2522d6000000b008616af2d2f3mr1404228ybi.330.1675955289191;\n\tThu, 09 Feb 2023 07:08:09 -0800 (PST)","MIME-Version":"1.0","References":"<20230203091734.22803-1-naush@raspberrypi.com>\n\t<CAEmqJPrizhz-0Nd4YWsh63MumCLSWtvQ3t5qp5BC7E8NSEHb8w@mail.gmail.com>\n\t<92f30ef2-a8e4-fb1c-aade-c773dc1cf748@ideasonboard.com>\n\t<167594271292.42371.1862096984367424553@Monstersaurus>\n\t<CAEmqJPq3GXqq_0YZGAZTdFSQE2uA=zvK3t919mFVdjwqOb4RAA@mail.gmail.com>\n\t<167595245061.42371.11018263272837465112@Monstersaurus>","In-Reply-To":"<167595245061.42371.11018263272837465112@Monstersaurus>","Date":"Thu, 9 Feb 2023 15:07:54 +0000","Message-ID":"<CAEmqJPona+1xmRkLr3K00+G6CcPt=JToX2tzNGh7vWWOmVDBrQ@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","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":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26441,"web_url":"https://patchwork.libcamera.org/comment/26441/","msgid":"<Y+VK2ed6b1AXQYuz@pendragon.ideasonboard.com>","date":"2023-02-09T19:34:49","subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, Feb 09, 2023 at 03:07:54PM +0000, Naushir Patuck via libcamera-devel wrote:\n> On Thu, 9 Feb 2023 at 14:20, Kieran Bingham wrote:\n> > Quoting Naushir Patuck (2023-02-09 11:47:23)\n> > > On Thu, 9 Feb 2023 at 11:38, Kieran Bingham via libcamera-devel wrote:\n> > > > Quoting Kieran Bingham (2023-02-09 10:37:22)\n> > > > > On 09/02/2023 08:31, Naushir Patuck via libcamera-devel wrote:\n> > > > > > Hi all,\n> > > > > >\n> > > > > > If there are no other review comments or feedback, I think this is\n> > > > > > ready to be merged.\n> > > > >\n> > > > > I'll apply this now.\n> > > > >\n> > > > > I wonder if it's worth using/trying pull requests when you have code\n> > > > > that is explicitly ready for merge from Raspberry Pi.\n> > > > >\n> > > > >   - https://git-scm.com/docs/git-request-pull\n> > >\n> > > Interesting, I've never tried this before.  Will investigate exactly\n> > > what it does.\n> >\n> > My integration scripts all work from a branch on a repository, so this\n> > would help me quite a bit as I could just directly pull the code you\n> > want to be merged.\n> >\n> > Speaking of which. This series is merged.\n> \n> Thanks Kieran!\n> \n> On the subject of git request-pull, what kind of process were you\n> thinking of?  Do you think something like:\n> \n> - Post patches for review to the ML as normal.\n> - Once patches are reviewed and ready for submission, I create a\n> branch on github.\n> - Run git request-pull and copy/paste the output in an email to you?\n\nThat e-mail should go to the list. Kieran can tell you if he prefers\nbeing CC'ed or if he will handle the pull request directly from the\nlist.\n\n> - You have scripts that parse the output and do the right thing(TM).\n> \n> might be useful?\n\nI don't know if Kieran has such scripts, but the rest of the procedure\nwhich details your tasks seems perfect to me. I'm sure we'll grow\nscripts if we don't have them yet :-)\n\n> > > > It failed compilation matrix I'm afraid:\n> > >\n> > > Argh. My clang-9 did not seem to complan.\n> > > Looks to be a trivial fix (remove std::move).  I'll make the change\n> > > and re-submit.\n> > >\n> > > > Configuration: clang-11:clang++-11 (/home/kbingham/iob/libcamera/ci/integrator/logs/build-matrix-clang-11.log)\n> > > >\n> > > > ...\n> > > > [51/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> > > > FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> > > > clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp\n> > > > ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n> > > >         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n> > > >                             ^\n> > > > ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: note: remove std::move call here\n> > > >         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n> > > >                             ^~~~~~~~~~                                                                   ~\n> > > > 1 error generated.\n> > > > [52/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_dpc.cpp.o\n> > > > [53/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx477.cpp.o\n> > > > [54/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_noise.cpp.o\n> > > > [55/120] Compiling C++ object src/android/libcamera-hal.so.p/camera_capabilities.cpp.o\n> > > > [56/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_pwl.cpp.o\n> > > > [57/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx519.cpp.o\n> > > > [58/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_sdn.cpp.o\n> > > > [59/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> > > > FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> > > > clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp\n> > > > ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n> > > >         aeHistLinear_ = std::move(Histogram(hist, 128));\n> > > >                         ^\n> > > > ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: note: remove std::move call here\n> > > >         aeHistLinear_ = std::move(Histogram(hist, 128));\n> > > >                         ^~~~~~~~~~                    ~\n> > > > 1 error generated.\n> > > > ...\n> > > >\n> > > > > > On Fri, 3 Feb 2023 at 09:17, Naushir Patuck <naush@raspberrypi.com> wrote:\n> > > > > >>\n> > > > > >> Hi,\n> > > > > >>\n> > > > > >> Version 5 rebases the changes on-top of master - particularly updating the\n> > > > > >> breakages in cam_helper_imx708.cpp in patch 4/5.\n> > > > > >>\n> > > > > >> Regards,\n> > > > > >> Naush\n> > > > > >>\n> > > > > >> Naushir Patuck (5):\n> > > > > >>    ipa: raspberrypi: Generalise statistics\n> > > > > >>    ipa: raspberrypi: histogram: Add a constructor for an empty histogram\n> > > > > >>    ipa: raspberrypi: awb: Delay release of the statistics buffer\n> > > > > >>    ipa: raspberrypi: Use the generic statistics structure in the\n> > > > > >>      algorithms\n> > > > > >>    ipa: raspberrypi: Normalise region sums to 16-bits\n> > > > > >>\n> > > > > >>   src/ipa/raspberrypi/cam_helper_imx708.cpp     |  26 ++--\n> > > > > >>   src/ipa/raspberrypi/controller/controller.h   |   4 +-\n> > > > > >>   src/ipa/raspberrypi/controller/histogram.h    |   5 +\n> > > > > >>   src/ipa/raspberrypi/controller/region_stats.h | 123 ++++++++++++++++++\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/af.cpp     |  10 +-\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/af.h       |   8 +-\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/agc.cpp    |  32 ++---\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/agc.h      |   2 +-\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  32 ++---\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/alsc.h     |   3 +-\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/awb.cpp    |  30 ++---\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/awb.h      |   1 +\n> > > > > >>   .../raspberrypi/controller/rpi/contrast.cpp   |   8 +-\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/focus.cpp  |   7 +-\n> > > > > >>   src/ipa/raspberrypi/controller/rpi/lux.cpp    |  14 +-\n> > > > > >>   src/ipa/raspberrypi/raspberrypi.cpp           |  50 ++++++-\n> > > > > >>   src/ipa/raspberrypi/statistics.h              |  78 +++++++++++\n> > > > > >>   17 files changed, 338 insertions(+), 95 deletions(-)\n> > > > > >>   create mode 100644 src/ipa/raspberrypi/controller/region_stats.h\n> > > > > >>   create mode 100644 src/ipa/raspberrypi/statistics.h\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 361EABDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Feb 2023 19:34:54 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7C5C2625E3;\n\tThu,  9 Feb 2023 20:34:53 +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 324A6603BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Feb 2023 20:34:51 +0100 (CET)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5445D9CA;\n\tThu,  9 Feb 2023 20:34:50 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1675971293;\n\tbh=aNYmDNpU8CYBOfsmJ8igYBUsvS8CRiIcchQr7SE3S3Y=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=ERwqKgonbES+qslFSdz/wvvzCCcVQ43wjxY5zYj2SKyeKQYH3KMdnzjvbdqZ1ti7i\n\tlshUXGwEsuMMLMpLrFQxYjgVjlg3rFaiFLev+NaJ7npCOSS9cHRgUfa26heXA1pxTF\n\tdRzOw5h+4iPV+6gAVZsn3TbBJTq3SLKh5RLZhhcLUMKpp8jqEmfKLCovCZBht0pIeP\n\tlbeKZaCVtI5AK6YsmDEpSsjRW0iEt+TBGIETNwZUV/Yl7aCtsez8pVi/ephoKQTdI1\n\t3Uk/7MgnBNmsqx34iwl+OQINtIUK3c773NkDWrrYdPCaxLOF9oWmCBfV+mJAXhoMU3\n\t/q7YMhWJFlu8w==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1675971290;\n\tbh=aNYmDNpU8CYBOfsmJ8igYBUsvS8CRiIcchQr7SE3S3Y=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=RaLNp++8Cc1pxyQXUGDmcWJGIwPHxMM8SrBTDV1drNXG4jpBJreGj8uTJnQBLc4t0\n\tBmvBDwhfiGfyE9vKmj8P/qJTDEJadirgiTEEXHW+doHvr5mMDnDm11fVkzHjJJIwoO\n\tsinmTKif3dmPeC645GfAZiT+Dofxv3kI25fXnV5U="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"RaLNp++8\"; dkim-atps=neutral","Date":"Thu, 9 Feb 2023 21:34:49 +0200","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<Y+VK2ed6b1AXQYuz@pendragon.ideasonboard.com>","References":"<20230203091734.22803-1-naush@raspberrypi.com>\n\t<CAEmqJPrizhz-0Nd4YWsh63MumCLSWtvQ3t5qp5BC7E8NSEHb8w@mail.gmail.com>\n\t<92f30ef2-a8e4-fb1c-aade-c773dc1cf748@ideasonboard.com>\n\t<167594271292.42371.1862096984367424553@Monstersaurus>\n\t<CAEmqJPq3GXqq_0YZGAZTdFSQE2uA=zvK3t919mFVdjwqOb4RAA@mail.gmail.com>\n\t<167595245061.42371.11018263272837465112@Monstersaurus>\n\t<CAEmqJPona+1xmRkLr3K00+G6CcPt=JToX2tzNGh7vWWOmVDBrQ@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPona+1xmRkLr3K00+G6CcPt=JToX2tzNGh7vWWOmVDBrQ@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":26444,"web_url":"https://patchwork.libcamera.org/comment/26444/","msgid":"<167598378386.1526433.3503711557066676517@Monstersaurus>","date":"2023-02-09T23:03:03","subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2023-02-09 19:34:49)\n> On Thu, Feb 09, 2023 at 03:07:54PM +0000, Naushir Patuck via libcamera-devel wrote:\n> > On Thu, 9 Feb 2023 at 14:20, Kieran Bingham wrote:\n> > > Quoting Naushir Patuck (2023-02-09 11:47:23)\n> > > > On Thu, 9 Feb 2023 at 11:38, Kieran Bingham via libcamera-devel wrote:\n> > > > > Quoting Kieran Bingham (2023-02-09 10:37:22)\n> > > > > > On 09/02/2023 08:31, Naushir Patuck via libcamera-devel wrote:\n> > > > > > > Hi all,\n> > > > > > >\n> > > > > > > If there are no other review comments or feedback, I think this is\n> > > > > > > ready to be merged.\n> > > > > >\n> > > > > > I'll apply this now.\n> > > > > >\n> > > > > > I wonder if it's worth using/trying pull requests when you have code\n> > > > > > that is explicitly ready for merge from Raspberry Pi.\n> > > > > >\n> > > > > >   - https://git-scm.com/docs/git-request-pull\n> > > >\n> > > > Interesting, I've never tried this before.  Will investigate exactly\n> > > > what it does.\n> > >\n> > > My integration scripts all work from a branch on a repository, so this\n> > > would help me quite a bit as I could just directly pull the code you\n> > > want to be merged.\n> > >\n> > > Speaking of which. This series is merged.\n> > \n> > Thanks Kieran!\n> > \n> > On the subject of git request-pull, what kind of process were you\n> > thinking of?  Do you think something like:\n> > \n> > - Post patches for review to the ML as normal.\n> > - Once patches are reviewed and ready for submission, I create a\n> > branch on github.\n> > - Run git request-pull and copy/paste the output in an email to you?\n> \n> That e-mail should go to the list. Kieran can tell you if he prefers\n> being CC'ed or if he will handle the pull request directly from the\n> list.\n\nYes, To the list and cc me is fine. I'll get it from the list, but\nhaving me as a To:/Cc: highlights it in my inbox too.\n\nThe main benefit is it removes the ambiguity of 'is this ready to merge\nor not yet'. It's purely 'here is my branch, please merge it now'.\n\n(which will then kick off my testing at least)\n \n> > - You have scripts that parse the output and do the right thing(TM).\n> > \n> > might be useful?\n> \n> I don't know if Kieran has such scripts, but the rest of the procedure\n> which details your tasks seems perfect to me. I'm sure we'll grow\n> scripts if we don't have them yet :-)\n\nAt the moment I run scripts in the form:\n\n ./integration-tests.sh <branch> <repo>\n\nSo as long as I can extract the branch and repo - then yes this becomes\neasy to integrate.\n\nAnd it saves the hard part of having to manually apply patches, which\nmay be partially updated (as in this series) and ensures that what gets\napplied, is exactly as you wish.\n\nThe only caveat is that if it's not based on master, it may need a\nrebase. But otherwise - it would simplify things.\n\n--\nKieran\n\n\n> \n> > > > > It failed compilation matrix I'm afraid:\n> > > >\n> > > > Argh. My clang-9 did not seem to complan.\n> > > > Looks to be a trivial fix (remove std::move).  I'll make the change\n> > > > and re-submit.\n> > > >\n> > > > > Configuration: clang-11:clang++-11 (/home/kbingham/iob/libcamera/ci/integrator/logs/build-matrix-clang-11.log)\n> > > > >\n> > > > > ...\n> > > > > [51/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> > > > > FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o\n> > > > > clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp\n> > > > > ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n> > > > >         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n> > > > >                             ^\n> > > > > ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: note: remove std::move call here\n> > > > >         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));\n> > > > >                             ^~~~~~~~~~                                                                   ~\n> > > > > 1 error generated.\n> > > > > [52/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_dpc.cpp.o\n> > > > > [53/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx477.cpp.o\n> > > > > [54/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_noise.cpp.o\n> > > > > [55/120] Compiling C++ object src/android/libcamera-hal.so.p/camera_capabilities.cpp.o\n> > > > > [56/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_pwl.cpp.o\n> > > > > [57/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx519.cpp.o\n> > > > > [58/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_sdn.cpp.o\n> > > > > [59/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> > > > > FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o\n> > > > > clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp\n> > > > > ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]\n> > > > >         aeHistLinear_ = std::move(Histogram(hist, 128));\n> > > > >                         ^\n> > > > > ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: note: remove std::move call here\n> > > > >         aeHistLinear_ = std::move(Histogram(hist, 128));\n> > > > >                         ^~~~~~~~~~                    ~\n> > > > > 1 error generated.\n> > > > > ...\n> > > > >\n> > > > > > > On Fri, 3 Feb 2023 at 09:17, Naushir Patuck <naush@raspberrypi.com> wrote:\n> > > > > > >>\n> > > > > > >> Hi,\n> > > > > > >>\n> > > > > > >> Version 5 rebases the changes on-top of master - particularly updating the\n> > > > > > >> breakages in cam_helper_imx708.cpp in patch 4/5.\n> > > > > > >>\n> > > > > > >> Regards,\n> > > > > > >> Naush\n> > > > > > >>\n> > > > > > >> Naushir Patuck (5):\n> > > > > > >>    ipa: raspberrypi: Generalise statistics\n> > > > > > >>    ipa: raspberrypi: histogram: Add a constructor for an empty histogram\n> > > > > > >>    ipa: raspberrypi: awb: Delay release of the statistics buffer\n> > > > > > >>    ipa: raspberrypi: Use the generic statistics structure in the\n> > > > > > >>      algorithms\n> > > > > > >>    ipa: raspberrypi: Normalise region sums to 16-bits\n> > > > > > >>\n> > > > > > >>   src/ipa/raspberrypi/cam_helper_imx708.cpp     |  26 ++--\n> > > > > > >>   src/ipa/raspberrypi/controller/controller.h   |   4 +-\n> > > > > > >>   src/ipa/raspberrypi/controller/histogram.h    |   5 +\n> > > > > > >>   src/ipa/raspberrypi/controller/region_stats.h | 123 ++++++++++++++++++\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/af.cpp     |  10 +-\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/af.h       |   8 +-\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/agc.cpp    |  32 ++---\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/agc.h      |   2 +-\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  32 ++---\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/alsc.h     |   3 +-\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/awb.cpp    |  30 ++---\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/awb.h      |   1 +\n> > > > > > >>   .../raspberrypi/controller/rpi/contrast.cpp   |   8 +-\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/focus.cpp  |   7 +-\n> > > > > > >>   src/ipa/raspberrypi/controller/rpi/lux.cpp    |  14 +-\n> > > > > > >>   src/ipa/raspberrypi/raspberrypi.cpp           |  50 ++++++-\n> > > > > > >>   src/ipa/raspberrypi/statistics.h              |  78 +++++++++++\n> > > > > > >>   17 files changed, 338 insertions(+), 95 deletions(-)\n> > > > > > >>   create mode 100644 src/ipa/raspberrypi/controller/region_stats.h\n> > > > > > >>   create mode 100644 src/ipa/raspberrypi/statistics.h\n> > > > > > >>\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart","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 B813FBDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Feb 2023 23:03:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1C0B2625E3;\n\tFri, 10 Feb 2023 00:03:09 +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 45F5C61EEF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 10 Feb 2023 00:03:07 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CED33904;\n\tFri, 10 Feb 2023 00:03:06 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1675983789;\n\tbh=Fu3SMtRGL/kSBP6Tt7c5E7T169Zr0JDxvBkCfWRwLxA=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=y8HweicwMbA6BMJA+zYT5Du4ZB7LHH3Nk79ZKQxO/oj/NRKoewVJvIewOS6doQhaU\n\t2shDRSmSXBAs00F3XuTCHboTV2VgWtPKYqTBPeIqJLzapXusovfAqWjiVAPapwykF4\n\twacHZXIyd89hLgIXHhap+PFxVgoFq/na8XaEseK29aacjIgSXaUa3hrsXUvESTlyI1\n\tynX3b8p3QaDrBIGV7JswBZZB8CCmMpuNhZA57HhilMQexe05vYoEcfhCfHwCuJHxkQ\n\tcbCum+cwoEyeIF66qlhA/FWgTg1J73CvioLR3CRMlaYJNs4AMhq2VDuLxOwqocGyMq\n\tpxjB7NUARDTaQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1675983786;\n\tbh=Fu3SMtRGL/kSBP6Tt7c5E7T169Zr0JDxvBkCfWRwLxA=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=iqxBKMkBKdNpraHkaCgY+zbI9cd1tkNlWFL0GVMMEwww2oG4od8cxCT8/HUEO9uHn\n\t1zbfO6riAAIy6p9UzHVgj1YFgPV+kWhP4G0VHkGkgWFAkOi27JVwe93oYwyOEut//c\n\tZ0feEpTDwd5zL8fo5gdqfCt8cIGeji750YLaWdIM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"iqxBKMkB\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<Y+VK2ed6b1AXQYuz@pendragon.ideasonboard.com>","References":"<20230203091734.22803-1-naush@raspberrypi.com>\n\t<CAEmqJPrizhz-0Nd4YWsh63MumCLSWtvQ3t5qp5BC7E8NSEHb8w@mail.gmail.com>\n\t<92f30ef2-a8e4-fb1c-aade-c773dc1cf748@ideasonboard.com>\n\t<167594271292.42371.1862096984367424553@Monstersaurus>\n\t<CAEmqJPq3GXqq_0YZGAZTdFSQE2uA=zvK3t919mFVdjwqOb4RAA@mail.gmail.com>\n\t<167595245061.42371.11018263272837465112@Monstersaurus>\n\t<CAEmqJPona+1xmRkLr3K00+G6CcPt=JToX2tzNGh7vWWOmVDBrQ@mail.gmail.com>\n\t<Y+VK2ed6b1AXQYuz@pendragon.ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tNaushir Patuck <naush@raspberrypi.com>","Date":"Thu, 09 Feb 2023 23:03:03 +0000","Message-ID":"<167598378386.1526433.3503711557066676517@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise\n\tstatistics","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":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]