[{"id":15180,"web_url":"https://patchwork.libcamera.org/comment/15180/","msgid":"<CAHW6GYLu5x0ROrujvOJJwUduEoLG7Gj8v6m2S+3ZRJpd+C_nqw@mail.gmail.com>","date":"2021-02-16T16:51:06","subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Naush\n\nThanks for the patches. I've reviewed the one (2/4) that I feel\nqualified to pronounce on, but can I add the following to the entire\nset, please:\n\nTested-by: David Plowman <david.plowman@raspberrypi.com>\n\nBest regards\nDavid\n\nOn Tue, 16 Feb 2021 at 10:32, Naushir Patuck <naush@raspberrypi.com> wrote:\n>\n> Hi,\n>\n> This series of patches addresses the wasteful usage of embedded data streams on sensors that do not supply embedded data. We switch to using control lists to pass exposure and gain values from DelayedCtrls into the IPA in these cases.\n>\n> The breakdown of patches is as follows:\n>\n> Patch 1/4\n> Stores the DelayedCtrls::get() provided control list with the bayer framebuffer in a queue, and pass this control list to the IPA on a RPi::IPA_EVENT_SIGNAL_ISP_PREPARE event.  If there is no embedded data, the IPA will simply pull the exposure and gain values from this control list.\n>\n> Patch 2/4\n> Remove the MdParserRPi object, it is not used anymore with the above change.\n>\n> Patch 3/4\n> This change selectively turns on the Unicam embedded data node on sensors that support embedded data.\n>\n> Patch 4/4\n> With the IPA now able to use control lists to extract exposure and gain values, we add a flag in the pipeline handler to relax the strict bayer <-> embedded data buffer matching routine.  If this flag is set, and no match is found, the ipa reverts to the control list values.  This avoids a few possible frame drops on heavily loaded systems.\n>\n> Regards,\n> Naush\n>\n> Naushir Patuck (4):\n>   pipeline: ipa: raspberrypi: Pass exposure/gain values to IPA though\n>     controls\n>   ipa: raspberrypi: Remove MdParserRPi\n>   pipeline: raspberrypi: Only enabled embedded stream when available\n>   pipeline: raspberrypi: Allow either strict or non-strict buffer\n>     matching\n>\n>  src/ipa/raspberrypi/cam_helper.cpp            |   9 +-\n>  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   4 +-\n>  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   3 +-\n>  src/ipa/raspberrypi/md_parser_rpi.cpp         |  37 ----\n>  src/ipa/raspberrypi/md_parser_rpi.hpp         |  32 ---\n>  src/ipa/raspberrypi/meson.build               |   1 -\n>  src/ipa/raspberrypi/raspberrypi.cpp           | 142 ++++++++-----\n>  .../pipeline/raspberrypi/raspberrypi.cpp      | 194 +++++++++++-------\n>  8 files changed, 211 insertions(+), 211 deletions(-)\n>  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.cpp\n>  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.hpp\n>\n> --\n> 2.25.1\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 65C40BD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 16 Feb 2021 16:51:21 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C0DF4637E6;\n\tTue, 16 Feb 2021 17:51:20 +0100 (CET)","from mail-ot1-x32f.google.com (mail-ot1-x32f.google.com\n\t[IPv6:2607:f8b0:4864:20::32f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A5A7C637DC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 16 Feb 2021 17:51:19 +0100 (CET)","by mail-ot1-x32f.google.com with SMTP id q4so9529758otm.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 16 Feb 2021 08:51:19 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"Kkap89d+\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc:content-transfer-encoding;\n\tbh=fgsfqZUPpCHeIjcYhheCoNc1WQdhfD0dVDVYp9kGt4U=;\n\tb=Kkap89d+r8B5e48WjfyATmhzlxGCZzr7VI6rfgWDtGrXIpCNeTUemS/AsFLfcinxgl\n\tbHzTXaTTqYpb4der6URx8Kes3sfnroA3Ew3uHZIqePVlAysnu8RcyoI++htMz8jPsNly\n\tGvWEnm4Lzbken3t5kykMPxL1bfUoAuH3BlatLlvfrh9Aj0jqVwWia8duAO//D9JVWDlf\n\toJH2T3CLA2x6cMXpwuWX3t2HZOls895QYd/ctuCvlRz2eFz+OINMF6cwa61J0va3KL7b\n\tHx6eIq/yEZ3CHqA7CMZ2hNKu4i9YHt00yU5Xo/NO6Uj4udwPVxgNtRr5oX9s/OgXMwmQ\n\tSJVA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc:content-transfer-encoding;\n\tbh=fgsfqZUPpCHeIjcYhheCoNc1WQdhfD0dVDVYp9kGt4U=;\n\tb=iyk43+oCE8S4hbEgZz6P3WutlIWr9WUS+a1euEReL1wyGRXsNKpRqmoqQ4D/N3IMDH\n\tl9D7F9EY70fiV9OYrjNK8JBPEs+HMPxGfeHqUOvKkMZgUBhvF/GowUv3ytPzI4kx0viU\n\tlXjT7mHVEcjdQg6HxFVwFXsb3uknEKsuH+Q/W0hfuelzM/wJTfZnX7tlLjg3RgScSXli\n\txeAVGWK0mJaS0aOZN38qJ38V89miHe5dVKQOoP7GF9a7T1/l05KoXOcRXGk2KP8DODPl\n\tukzDrVIDBo64327IMD1/nyerVyXCJh4G/jHEosoR4OjrE8DZyOtTCEr48LrMdg0bDHIG\n\tD90A==","X-Gm-Message-State":"AOAM533tmzfq46ntuMlenEiNYGdVA5KmziuaY+xhP2A/12dVvRQyEMLB\n\tgvxXfU84ZJOUwMS/ageK+udgfkQKS5QErh8NIJHFPQ==","X-Google-Smtp-Source":"ABdhPJy5S9OtmW8caY6DUTBPEM55MaQJVFxOzuinxGxfmspg71MKU6SQbUN3SJ+tYsroaN6v/E9xc4w/DOgQoQ5rxyA=","X-Received":"by 2002:a9d:4b14:: with SMTP id\n\tq20mr15188988otf.166.1613494278480; \n\tTue, 16 Feb 2021 08:51:18 -0800 (PST)","MIME-Version":"1.0","References":"<20210216103140.1077307-1-naush@raspberrypi.com>","In-Reply-To":"<20210216103140.1077307-1-naush@raspberrypi.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Tue, 16 Feb 2021 16:51:06 +0000","Message-ID":"<CAHW6GYLu5x0ROrujvOJJwUduEoLG7Gj8v6m2S+3ZRJpd+C_nqw@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15183,"web_url":"https://patchwork.libcamera.org/comment/15183/","msgid":"<YCxZaifNYbXEY342@pendragon.ideasonboard.com>","date":"2021-02-16T23:46:50","subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nOn Tue, Feb 16, 2021 at 10:31:36AM +0000, Naushir Patuck wrote:\n> Hi,\n> \n> This series of patches addresses the wasteful usage of embedded data\n> streams on sensors that do not supply embedded data. We switch to\n> using control lists to pass exposure and gain values from DelayedCtrls\n> into the IPA in these cases.\n> \n> The breakdown of patches is as follows:\n> \n> Patch 1/4\n> Stores the DelayedCtrls::get() provided control list with the bayer\n> framebuffer in a queue, and pass this control list to the IPA on a\n> RPi::IPA_EVENT_SIGNAL_ISP_PREPARE event.  If there is no embedded\n> data, the IPA will simply pull the exposure and gain values from this\n> control list.\n\nA rework of the IPA API has been merged, which causes extensive\nconflicts in this patch. I'm sorry for the inconvenience, but could you\nrebase the series ?\n\nNot something that needs to be addressed now, but do you think it would\nmake sense to take an extra step and move parsing of embedded data to\nthe pipeline handler, always passing controls to the IPA ?\n\n> Patch 2/4\n> Remove the MdParserRPi object, it is not used anymore with the above\n> change.\n> \n> Patch 3/4\n> This change selectively turns on the Unicam embedded data node on\n> sensors that support embedded data.\n> \n> Patch 4/4\n> With the IPA now able to use control lists to extract exposure and\n> gain values, we add a flag in the pipeline handler to relax the strict\n> bayer <-> embedded data buffer matching routine.  If this flag is set,\n> and no match is found, the ipa reverts to the control list values.\n> This avoids a few possible frame drops on heavily loaded systems.\n> \n> Regards,\n> Naush\n> \n> Naushir Patuck (4):\n>   pipeline: ipa: raspberrypi: Pass exposure/gain values to IPA though\n>     controls\n>   ipa: raspberrypi: Remove MdParserRPi\n>   pipeline: raspberrypi: Only enabled embedded stream when available\n>   pipeline: raspberrypi: Allow either strict or non-strict buffer\n>     matching\n> \n>  src/ipa/raspberrypi/cam_helper.cpp            |   9 +-\n>  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   4 +-\n>  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   3 +-\n>  src/ipa/raspberrypi/md_parser_rpi.cpp         |  37 ----\n>  src/ipa/raspberrypi/md_parser_rpi.hpp         |  32 ---\n>  src/ipa/raspberrypi/meson.build               |   1 -\n>  src/ipa/raspberrypi/raspberrypi.cpp           | 142 ++++++++-----\n>  .../pipeline/raspberrypi/raspberrypi.cpp      | 194 +++++++++++-------\n>  8 files changed, 211 insertions(+), 211 deletions(-)\n>  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.cpp\n>  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.hpp","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 4100EBD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 16 Feb 2021 23:47:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BF58C637EB;\n\tWed, 17 Feb 2021 00:47:17 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ABCD06165D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 17 Feb 2021 00:47:16 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 21F8B8EF;\n\tWed, 17 Feb 2021 00:47:16 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"adCkLM/k\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1613519236;\n\tbh=dMgphleVz+iCYw705IMel2BAW6IZ/DTx2hV1FKd3ePM=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=adCkLM/k+dPLmBmt76g/lYvExIp+IvvUGzg/UErNl/VZyots81kz+EoywNOJIUc18\n\tVTZmJ9XnjEcWCCtRm026NtHrsXOHr5XAZ73AhSMS0caTc0t8uhl/Me5zTXLV+CjL6z\n\tl1/oEwLip3scqrAHVpkGAEKxoyULKmz2wqWvSjtg=","Date":"Wed, 17 Feb 2021 01:46:50 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<YCxZaifNYbXEY342@pendragon.ideasonboard.com>","References":"<20210216103140.1077307-1-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210216103140.1077307-1-naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15184,"web_url":"https://patchwork.libcamera.org/comment/15184/","msgid":"<CAEmqJPpGZn1QZOh27XRAKm4jTGtcAaSeoqHK0KdA6ZC6JB4=Hw@mail.gmail.com>","date":"2021-02-17T06:24:01","subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Tue, 16 Feb 2021 at 23:47, Laurent Pinchart <\nlaurent.pinchart@ideasonboard.com> wrote:\n\n> Hi Naush,\n>\n> On Tue, Feb 16, 2021 at 10:31:36AM +0000, Naushir Patuck wrote:\n> > Hi,\n> >\n> > This series of patches addresses the wasteful usage of embedded data\n> > streams on sensors that do not supply embedded data. We switch to\n> > using control lists to pass exposure and gain values from DelayedCtrls\n> > into the IPA in these cases.\n> >\n> > The breakdown of patches is as follows:\n> >\n> > Patch 1/4\n> > Stores the DelayedCtrls::get() provided control list with the bayer\n> > framebuffer in a queue, and pass this control list to the IPA on a\n> > RPi::IPA_EVENT_SIGNAL_ISP_PREPARE event.  If there is no embedded\n> > data, the IPA will simply pull the exposure and gain values from this\n> > control list.\n>\n> A rework of the IPA API has been merged, which causes extensive\n> conflicts in this patch. I'm sorry for the inconvenience, but could you\n> rebase the series ?\n\n\nSure no problem.  I'll prepare an updated version shortly.\n\n\n>\n>\nNot something that needs to be addressed now, but do you think it would\n> make sense to take an extra step and move parsing of embedded data to\n> the pipeline handler, always passing controls to the IPA ?\n>\n\nThis does seem like a clean approach.  However, I do see a couple of\nproblems:\n\n- Currently, the CamHelper and parser objects live in the IPA domain, so\nthe pipeline\nhandler does not have access to them.\n- There may be cases when the sensor embedded data has vendor/sensor\nspecific\ninformation stored within it that might be useful to the IPA.  For example,\nphase detect\npixel information is something that could be useful for AF algorithms.  In\nthese cases,\na control list might not be appropriate to pass this information across.\n\nOfcourse, things will be different once libcamera has a full\nimplementation of the sensor\ndatabase, and provisions for these could be made.\n\nRegards,\nNaush\n\n\n>\n> > Patch 2/4\n> > Remove the MdParserRPi object, it is not used anymore with the above\n> > change.\n> >\n> > Patch 3/4\n> > This change selectively turns on the Unicam embedded data node on\n> > sensors that support embedded data.\n> >\n> > Patch 4/4\n> > With the IPA now able to use control lists to extract exposure and\n> > gain values, we add a flag in the pipeline handler to relax the strict\n> > bayer <-> embedded data buffer matching routine.  If this flag is set,\n> > and no match is found, the ipa reverts to the control list values.\n> > This avoids a few possible frame drops on heavily loaded systems.\n> >\n> > Regards,\n> > Naush\n> >\n> > Naushir Patuck (4):\n> >   pipeline: ipa: raspberrypi: Pass exposure/gain values to IPA though\n> >     controls\n> >   ipa: raspberrypi: Remove MdParserRPi\n> >   pipeline: raspberrypi: Only enabled embedded stream when available\n> >   pipeline: raspberrypi: Allow either strict or non-strict buffer\n> >     matching\n> >\n> >  src/ipa/raspberrypi/cam_helper.cpp            |   9 +-\n> >  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   4 +-\n> >  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   3 +-\n> >  src/ipa/raspberrypi/md_parser_rpi.cpp         |  37 ----\n> >  src/ipa/raspberrypi/md_parser_rpi.hpp         |  32 ---\n> >  src/ipa/raspberrypi/meson.build               |   1 -\n> >  src/ipa/raspberrypi/raspberrypi.cpp           | 142 ++++++++-----\n> >  .../pipeline/raspberrypi/raspberrypi.cpp      | 194 +++++++++++-------\n> >  8 files changed, 211 insertions(+), 211 deletions(-)\n> >  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.cpp\n> >  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.hpp\n>\n> --\n> Regards,\n>\n> Laurent Pinchart\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 DD693BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 17 Feb 2021 06:24:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 55B76637F1;\n\tWed, 17 Feb 2021 07:24:20 +0100 (CET)","from mail-lf1-x135.google.com (mail-lf1-x135.google.com\n\t[IPv6:2a00:1450:4864:20::135])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 80253602F7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 17 Feb 2021 07:24:18 +0100 (CET)","by mail-lf1-x135.google.com with SMTP id j19so19666221lfr.12\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 16 Feb 2021 22:24:18 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"LzVUqaV4\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=nrpXxR9943jSRjrgG+yMbrTPyM8VAsZjFuMduKiIPgg=;\n\tb=LzVUqaV4DeRC/jK7d05lXudqFCF/cPGXiFkySuJu/x+pMAzkaCDci4Y6hevPDNSKx6\n\t5VJKRUJ+FaW+dxyrCtbRgIYQ2e6YH3VBkPptGCbXfrEytz/YfmZLJ09hUVyTOZ/zHku7\n\t0f9FswvkqxhHMhbtS4MgVBAFJfX7/ZoDJnnlxUfekjdpcH+PhOQ80DwU0SZTE/kPtte/\n\tNGwwgMk2bW7/IBVzr9wowhGeMsHl9+5puJ4c8b7HPknnmWxWATplAv2PTIL9Cy2WQW5R\n\tFlPHLip3J5PTVhYX7TrcVXfuhER1YE0m3fTRzp5k2Ss9BQHwGPBVO2JK1JCqrQUIt9PK\n\tHMfA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=nrpXxR9943jSRjrgG+yMbrTPyM8VAsZjFuMduKiIPgg=;\n\tb=Ft5NdqNmLNSd55zcRPK0sAjL1H3+zrHMKOYgtwbkauBXFoJx4sKz0ne6oXqtUzWkuZ\n\tmuGXzh1QjYRM4nzFBN5ba84XnH/7c5V4t7bVuTTNUoIs3MZlYuwTHW3wRYYQw6KWV/P7\n\t6nxMgDrfacbD3jOtbfbaPmsGogiObaEfOAgvqb8qp/vhD+nOh9SoDDudi9VqJ37eYNOs\n\tNtxGnHQ8pxwnd0eNNc9Rsh/okqWX7vNWYQxWKAgTh9wXra0RaFoUEmn8JK2oVtG1wPbs\n\tk1Hxu6H/a/CNAkxYUE5Wz4iZDygiou1PcxET33BtPJ1C4a4Z26n1MJ4RXzn486CZOei9\n\tu4oA==","X-Gm-Message-State":"AOAM531vWqMGy8AjBBMf89W2dNflSEbeSRc9PB+/fs9790AMOni8MQu1\n\tRgG6NuvplMsIGUhqgqT7qoB8M8yGu1MVEc+tZECft9yHzFNrtA==","X-Google-Smtp-Source":"ABdhPJxrPuoettBKmt1KMClgwXQDQgQ0SvbC2jeowKnpatiNkv+oHntuafTfYB1cgBaZCfsKygO0K6YXdXxpcj/ASBI=","X-Received":"by 2002:a19:f813:: with SMTP id\n\ta19mr14180304lff.272.1613543057704; \n\tTue, 16 Feb 2021 22:24:17 -0800 (PST)","MIME-Version":"1.0","References":"<20210216103140.1077307-1-naush@raspberrypi.com>\n\t<YCxZaifNYbXEY342@pendragon.ideasonboard.com>","In-Reply-To":"<YCxZaifNYbXEY342@pendragon.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Wed, 17 Feb 2021 06:24:01 +0000","Message-ID":"<CAEmqJPpGZn1QZOh27XRAKm4jTGtcAaSeoqHK0KdA6ZC6JB4=Hw@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"multipart/mixed;\n\tboundary=\"===============3751893186213861678==\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15207,"web_url":"https://patchwork.libcamera.org/comment/15207/","msgid":"<CAEmqJPptiD_7rsLqDhVVLgUXVFXwJBvaiKA7c0+GTqW2bXemFg@mail.gmail.com>","date":"2021-02-17T13:50:35","subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi David,\n\nThank you for your review.\n\nOn Tue, 16 Feb 2021 at 16:51, David Plowman <david.plowman@raspberrypi.com>\nwrote:\n\n> Hi Naush\n>\n> Thanks for the patches. I've reviewed the one (2/4) that I feel\n> qualified to pronounce on, but can I add the following to the entire\n> set, please:\n>\n> Tested-by: David Plowman <david.plowman@raspberrypi.com>\n>\n\nYou may or may not have noticed, I have not taken your T-B tag in my v2\npatch series.  This is because the rebase was non-trivial, and would like\nto give you a chance to re-test before adding this tag again.\n\nRegards,\nNaush\n\n\n\n>\n> Best regards\n> David\n>\n> On Tue, 16 Feb 2021 at 10:32, Naushir Patuck <naush@raspberrypi.com>\n> wrote:\n> >\n> > Hi,\n> >\n> > This series of patches addresses the wasteful usage of embedded data\n> streams on sensors that do not supply embedded data. We switch to using\n> control lists to pass exposure and gain values from DelayedCtrls into the\n> IPA in these cases.\n> >\n> > The breakdown of patches is as follows:\n> >\n> > Patch 1/4\n> > Stores the DelayedCtrls::get() provided control list with the bayer\n> framebuffer in a queue, and pass this control list to the IPA on a\n> RPi::IPA_EVENT_SIGNAL_ISP_PREPARE event.  If there is no embedded data, the\n> IPA will simply pull the exposure and gain values from this control list.\n> >\n> > Patch 2/4\n> > Remove the MdParserRPi object, it is not used anymore with the above\n> change.\n> >\n> > Patch 3/4\n> > This change selectively turns on the Unicam embedded data node on\n> sensors that support embedded data.\n> >\n> > Patch 4/4\n> > With the IPA now able to use control lists to extract exposure and gain\n> values, we add a flag in the pipeline handler to relax the strict bayer <->\n> embedded data buffer matching routine.  If this flag is set, and no match\n> is found, the ipa reverts to the control list values.  This avoids a few\n> possible frame drops on heavily loaded systems.\n> >\n> > Regards,\n> > Naush\n> >\n> > Naushir Patuck (4):\n> >   pipeline: ipa: raspberrypi: Pass exposure/gain values to IPA though\n> >     controls\n> >   ipa: raspberrypi: Remove MdParserRPi\n> >   pipeline: raspberrypi: Only enabled embedded stream when available\n> >   pipeline: raspberrypi: Allow either strict or non-strict buffer\n> >     matching\n> >\n> >  src/ipa/raspberrypi/cam_helper.cpp            |   9 +-\n> >  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   4 +-\n> >  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   3 +-\n> >  src/ipa/raspberrypi/md_parser_rpi.cpp         |  37 ----\n> >  src/ipa/raspberrypi/md_parser_rpi.hpp         |  32 ---\n> >  src/ipa/raspberrypi/meson.build               |   1 -\n> >  src/ipa/raspberrypi/raspberrypi.cpp           | 142 ++++++++-----\n> >  .../pipeline/raspberrypi/raspberrypi.cpp      | 194 +++++++++++-------\n> >  8 files changed, 211 insertions(+), 211 deletions(-)\n> >  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.cpp\n> >  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.hpp\n> >\n> > --\n> > 2.25.1\n> >\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel\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 F019ABD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 17 Feb 2021 13:50:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 41F9163824;\n\tWed, 17 Feb 2021 14:50:53 +0100 (CET)","from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com\n\t[IPv6:2a00:1450:4864:20::12b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4128663804\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 17 Feb 2021 14:50:52 +0100 (CET)","by mail-lf1-x12b.google.com with SMTP id m22so21512583lfg.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 17 Feb 2021 05:50:52 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"KdfFSVOE\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=tHmvNKjEUiFZEvPiU81mKN+p4NvLLjeVnwdBuXSHvgo=;\n\tb=KdfFSVOEEjHIPy4g7Mnm0cQZHat9F1ddw9p3YZoXhbhSiMc8kiT2clEXCBRL1kZl5p\n\to6GMHPBYW9xcec/CX51GNDoIg+HJaJDJJuUBxQHTT9yMWwVzRFoVokA/t+Cpdzj6nzUF\n\tafDhYgCqQjbjMoTMk+Bj2WcbDpH/knJlqN/FeNlEAgmhsZkTyl5YrfUm/tnc7Bxgm456\n\t31OEb/AWw0xNMR+eOg2OEgV7oELVZY3vjyyiKnsxR5D89+F4fuBLJvFrW6Ot8TBtkEqz\n\tXf0s0Sq4xOJqnGdoH4I9tPiiUOCP3+yzoTlq4SSp1cgZZm7vCvsX6WqSi3KfK93uJQsq\n\tKNjA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=tHmvNKjEUiFZEvPiU81mKN+p4NvLLjeVnwdBuXSHvgo=;\n\tb=VDFgZra94zQe/ZmSy4gsinJeBMg9vniZd2qaO1Qh4bNc1jBORawVMIR454I/FpPJO8\n\tcQJGx14Q07ofmYpZkW5FcbdLqCLB99YjKkHkV3uua9qkzaEXeDzB+tIurm4NEk1/DnMn\n\tR8byz2Idx0s5jAFKkQ81TT6w2yIcACnltrDcKbHs3XZGLyqJ9Sq6tpukJECXcCKpAH7/\n\tGD9ec6DuAjp6KEm2th4NqwDOcOzbdNS7VcO0tLExXZsW6EraU+p1fE5jp0fRNdS1LIpc\n\tRFhZVDmo8mkRlV6ACqrK6LXzTaDkhSCcUvWBnDrwszXEp5gEnG4qtUilWbxTx6TUIB61\n\t6s/Q==","X-Gm-Message-State":"AOAM530jq3vFDzfjkhI/r1s1IdBkgduTF1wWjlrdkJRT9JcRPBrh6Eve\n\taCiRZ4t5l7pO2PT8p0NFKoVa+4ofvBD/4NKkKhizSw==","X-Google-Smtp-Source":"ABdhPJw0ud2B8lueoDgiYVeWd47LV1T9Sq5kL8ft3U1io54bS/D8NsPtNR0ue+1yRjPqALc0h93fD4LHMhBaQyE3EKI=","X-Received":"by 2002:a05:6512:114e:: with SMTP id\n\tm14mr14551616lfg.617.1613569851538; \n\tWed, 17 Feb 2021 05:50:51 -0800 (PST)","MIME-Version":"1.0","References":"<20210216103140.1077307-1-naush@raspberrypi.com>\n\t<CAHW6GYLu5x0ROrujvOJJwUduEoLG7Gj8v6m2S+3ZRJpd+C_nqw@mail.gmail.com>","In-Reply-To":"<CAHW6GYLu5x0ROrujvOJJwUduEoLG7Gj8v6m2S+3ZRJpd+C_nqw@mail.gmail.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Wed, 17 Feb 2021 13:50:35 +0000","Message-ID":"<CAEmqJPptiD_7rsLqDhVVLgUXVFXwJBvaiKA7c0+GTqW2bXemFg@mail.gmail.com>","To":"David Plowman <david.plowman@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"multipart/mixed;\n\tboundary=\"===============7781286914972928404==\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15215,"web_url":"https://patchwork.libcamera.org/comment/15215/","msgid":"<CAHW6GYJW36L-4vRVnYGDZGam_JGNHwP1Z14ZvSSKbxkQf8hEiw@mail.gmail.com>","date":"2021-02-18T11:33:53","subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Naush\n\nI've retested with the latest version of these patches. It all looks\nvery good. It makes me so happy when the AGC actually works properly!\nSo for the whole set:\n\nTested-by: David Plowman <david.plowman@raspberrypi.com>\n\nBest regards\nDavid\n\nOn Wed, 17 Feb 2021 at 13:50, Naushir Patuck <naush@raspberrypi.com> wrote:\n>\n> Hi David,\n>\n> Thank you for your review.\n>\n> On Tue, 16 Feb 2021 at 16:51, David Plowman <david.plowman@raspberrypi.com> wrote:\n>>\n>> Hi Naush\n>>\n>> Thanks for the patches. I've reviewed the one (2/4) that I feel\n>> qualified to pronounce on, but can I add the following to the entire\n>> set, please:\n>>\n>> Tested-by: David Plowman <david.plowman@raspberrypi.com>\n>\n>\n> You may or may not have noticed, I have not taken your T-B tag in my v2 patch series.  This is because the rebase was non-trivial, and would like to give you a chance to re-test before adding this tag again.\n>\n> Regards,\n> Naush\n>\n>\n>>\n>>\n>> Best regards\n>> David\n>>\n>> On Tue, 16 Feb 2021 at 10:32, Naushir Patuck <naush@raspberrypi.com> wrote:\n>> >\n>> > Hi,\n>> >\n>> > This series of patches addresses the wasteful usage of embedded data streams on sensors that do not supply embedded data. We switch to using control lists to pass exposure and gain values from DelayedCtrls into the IPA in these cases.\n>> >\n>> > The breakdown of patches is as follows:\n>> >\n>> > Patch 1/4\n>> > Stores the DelayedCtrls::get() provided control list with the bayer framebuffer in a queue, and pass this control list to the IPA on a RPi::IPA_EVENT_SIGNAL_ISP_PREPARE event.  If there is no embedded data, the IPA will simply pull the exposure and gain values from this control list.\n>> >\n>> > Patch 2/4\n>> > Remove the MdParserRPi object, it is not used anymore with the above change.\n>> >\n>> > Patch 3/4\n>> > This change selectively turns on the Unicam embedded data node on sensors that support embedded data.\n>> >\n>> > Patch 4/4\n>> > With the IPA now able to use control lists to extract exposure and gain values, we add a flag in the pipeline handler to relax the strict bayer <-> embedded data buffer matching routine.  If this flag is set, and no match is found, the ipa reverts to the control list values.  This avoids a few possible frame drops on heavily loaded systems.\n>> >\n>> > Regards,\n>> > Naush\n>> >\n>> > Naushir Patuck (4):\n>> >   pipeline: ipa: raspberrypi: Pass exposure/gain values to IPA though\n>> >     controls\n>> >   ipa: raspberrypi: Remove MdParserRPi\n>> >   pipeline: raspberrypi: Only enabled embedded stream when available\n>> >   pipeline: raspberrypi: Allow either strict or non-strict buffer\n>> >     matching\n>> >\n>> >  src/ipa/raspberrypi/cam_helper.cpp            |   9 +-\n>> >  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   4 +-\n>> >  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   3 +-\n>> >  src/ipa/raspberrypi/md_parser_rpi.cpp         |  37 ----\n>> >  src/ipa/raspberrypi/md_parser_rpi.hpp         |  32 ---\n>> >  src/ipa/raspberrypi/meson.build               |   1 -\n>> >  src/ipa/raspberrypi/raspberrypi.cpp           | 142 ++++++++-----\n>> >  .../pipeline/raspberrypi/raspberrypi.cpp      | 194 +++++++++++-------\n>> >  8 files changed, 211 insertions(+), 211 deletions(-)\n>> >  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.cpp\n>> >  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.hpp\n>> >\n>> > --\n>> > 2.25.1\n>> >\n>> > _______________________________________________\n>> > libcamera-devel mailing list\n>> > libcamera-devel@lists.libcamera.org\n>> > https://lists.libcamera.org/listinfo/libcamera-devel","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 45B73BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Feb 2021 11:34:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C8B9A68110;\n\tThu, 18 Feb 2021 12:34:05 +0100 (CET)","from mail-oi1-x232.google.com (mail-oi1-x232.google.com\n\t[IPv6:2607:f8b0:4864:20::232])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 86385637DA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Feb 2021 12:34:04 +0100 (CET)","by mail-oi1-x232.google.com with SMTP id 6so1599190ois.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Feb 2021 03:34:04 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"ay7o15k6\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc:content-transfer-encoding;\n\tbh=okb2vUsGDJt93nzdBREgmcinLPqmCFtcbxh0ifhblU8=;\n\tb=ay7o15k6Mu6t4YNTit255jYlWMvu9AVKKJFeUnTSIOQHe3vO81m08FYJ7e0Zxh+NZR\n\tAfD9i1Jzt2dyoe2GNvTLy+4Uc3fXUF9HN6RmsVg/gLvd++PpWq8m88iTr1euFoqiZ/u4\n\tutG3yHPCgpdtZt8dW2uo+xyBkwVcJpnPPTBpEmvC5pCjYcNB60XSfqyoZRJzNaVbqQ+9\n\tX/UtTVrkMgmf+jc/V5EazmQ2wPWn5FrgT01Xi3TpHv4pmtgimtI6VoyeSW3//j99GvWH\n\tBO2ZOEZwwgxuDxWhcoAeEalyeEVyxFCEPWcopZJuRu2C/NtcxHJKipnYLuufqxhf0lcw\n\tfkrg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc:content-transfer-encoding;\n\tbh=okb2vUsGDJt93nzdBREgmcinLPqmCFtcbxh0ifhblU8=;\n\tb=TsYif1nf3ihRozxIdeFKQKF5YGaXqlU3W6hG7dxecT8GerknDjiWkK4Mvn6MoUFhki\n\tlO0zMzhBzWFMTkYOpy42DM5C8xDFrJ8YFR/De+ZLz9TTHvcDPphVeaOx0G5gNv45xIoj\n\tmjvmtgl87tRnmhdta34YmWRhcG+Whmo71kz4hAeqd2hewiXtW8+/jsNEorrgUuYwfHUb\n\trlb8khOcb8eB1oGDtg7oL4IwFmBVuHudYjwczxzcFc01HKLArMO8Ulf/98qBme0dXL/z\n\txsBo+J3zVKfJjzgSqZpB+obP9DS5YeucGLcI4gotdahhkW4JHB9yuFQIh8eGKA4xSJaS\n\trkHQ==","X-Gm-Message-State":"AOAM533QuFdDVuXdOGPryHb4BiMPkoAR3zvLp1ugeHalTiRoDGxyiYuN\n\tQbXev/lR9DITv5ZKnZNfi+971BWIwO9AuZOs+azSfg==","X-Google-Smtp-Source":"ABdhPJwoHECvXAhsJdV5YL5ow1bot8Q41PeJUu2bvvD8tTo/JWxeLeI4LM/S2bjxrlhxcBAbZE3gYzYzfTANk42p6Qk=","X-Received":"by 2002:aca:acd3:: with SMTP id\n\tv202mr2324133oie.107.1613648043377; \n\tThu, 18 Feb 2021 03:34:03 -0800 (PST)","MIME-Version":"1.0","References":"<20210216103140.1077307-1-naush@raspberrypi.com>\n\t<CAHW6GYLu5x0ROrujvOJJwUduEoLG7Gj8v6m2S+3ZRJpd+C_nqw@mail.gmail.com>\n\t<CAEmqJPptiD_7rsLqDhVVLgUXVFXwJBvaiKA7c0+GTqW2bXemFg@mail.gmail.com>","In-Reply-To":"<CAEmqJPptiD_7rsLqDhVVLgUXVFXwJBvaiKA7c0+GTqW2bXemFg@mail.gmail.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Thu, 18 Feb 2021 11:33:53 +0000","Message-ID":"<CAHW6GYJW36L-4vRVnYGDZGam_JGNHwP1Z14ZvSSKbxkQf8hEiw@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15266,"web_url":"https://patchwork.libcamera.org/comment/15266/","msgid":"<YDLdeuNETG0nkyLh@pendragon.ideasonboard.com>","date":"2021-02-21T22:23:54","subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nOn Wed, Feb 17, 2021 at 06:24:01AM +0000, Naushir Patuck wrote:\n> On Tue, 16 Feb 2021 at 23:47, Laurent Pinchart wrote:\n> > On Tue, Feb 16, 2021 at 10:31:36AM +0000, Naushir Patuck wrote:\n> > > Hi,\n> > >\n> > > This series of patches addresses the wasteful usage of embedded data\n> > > streams on sensors that do not supply embedded data. We switch to\n> > > using control lists to pass exposure and gain values from DelayedCtrls\n> > > into the IPA in these cases.\n> > >\n> > > The breakdown of patches is as follows:\n> > >\n> > > Patch 1/4\n> > > Stores the DelayedCtrls::get() provided control list with the bayer\n> > > framebuffer in a queue, and pass this control list to the IPA on a\n> > > RPi::IPA_EVENT_SIGNAL_ISP_PREPARE event.  If there is no embedded\n> > > data, the IPA will simply pull the exposure and gain values from this\n> > > control list.\n> >\n> > A rework of the IPA API has been merged, which causes extensive\n> > conflicts in this patch. I'm sorry for the inconvenience, but could you\n> > rebase the series ?\n> \n> Sure no problem.  I'll prepare an updated version shortly.\n> \n> > Not something that needs to be addressed now, but do you think it would\n> > make sense to take an extra step and move parsing of embedded data to\n> > the pipeline handler, always passing controls to the IPA ?\n> \n> This does seem like a clean approach.  However, I do see a couple of\n> problems:\n> \n> - Currently, the CamHelper and parser objects live in the IPA domain, so\n> the pipeline handler does not have access to them.\n\nThe idea would be to move the parser objects to the pipeline handler\nside :-)\n\n> - There may be cases when the sensor embedded data has vendor/sensor\n> specific information stored within it that might be useful to the IPA.\n> For example, phase detect pixel information is something that could be\n> useful for AF algorithms. In these cases, a control list might not be\n> appropriate to pass this information across.\n\nWe would need to create data types to store the information, which may\nor may not rely on ControlList, I have no strong preference there. Even\nif we decide to keep the embedded data parser on the IPA side, they\nshould move to libipa as they shouldn't be specific to one particular\nIPA, so we'll have to think about how to represent the output of the\nparser.\n\n> Ofcourse, things will be different once libcamera has a full\n> implementation of the sensor database, and provisions for these could\n> be made.\n\nYes, that's the context, it would be part of the work done on the snesor\ndatabase.\n\n> > > Patch 2/4\n> > > Remove the MdParserRPi object, it is not used anymore with the above\n> > > change.\n> > >\n> > > Patch 3/4\n> > > This change selectively turns on the Unicam embedded data node on\n> > > sensors that support embedded data.\n> > >\n> > > Patch 4/4\n> > > With the IPA now able to use control lists to extract exposure and\n> > > gain values, we add a flag in the pipeline handler to relax the strict\n> > > bayer <-> embedded data buffer matching routine.  If this flag is set,\n> > > and no match is found, the ipa reverts to the control list values.\n> > > This avoids a few possible frame drops on heavily loaded systems.\n> > >\n> > > Regards,\n> > > Naush\n> > >\n> > > Naushir Patuck (4):\n> > >   pipeline: ipa: raspberrypi: Pass exposure/gain values to IPA though\n> > >     controls\n> > >   ipa: raspberrypi: Remove MdParserRPi\n> > >   pipeline: raspberrypi: Only enabled embedded stream when available\n> > >   pipeline: raspberrypi: Allow either strict or non-strict buffer\n> > >     matching\n> > >\n> > >  src/ipa/raspberrypi/cam_helper.cpp            |   9 +-\n> > >  src/ipa/raspberrypi/cam_helper_imx219.cpp     |   4 +-\n> > >  src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   3 +-\n> > >  src/ipa/raspberrypi/md_parser_rpi.cpp         |  37 ----\n> > >  src/ipa/raspberrypi/md_parser_rpi.hpp         |  32 ---\n> > >  src/ipa/raspberrypi/meson.build               |   1 -\n> > >  src/ipa/raspberrypi/raspberrypi.cpp           | 142 ++++++++-----\n> > >  .../pipeline/raspberrypi/raspberrypi.cpp      | 194 +++++++++++-------\n> > >  8 files changed, 211 insertions(+), 211 deletions(-)\n> > >  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.cpp\n> > >  delete mode 100644 src/ipa/raspberrypi/md_parser_rpi.hpp","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 E9111BD1F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 21 Feb 2021 22:24:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 60023689ED;\n\tSun, 21 Feb 2021 23:24:22 +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 D2D7860106\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 21 Feb 2021 23:24:20 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4B705E9;\n\tSun, 21 Feb 2021 23:24:20 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"o7PEJ61Q\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1613946260;\n\tbh=rSRGhsjrJ5xdj40ojHz2nDCt/bmgbIo0EXeVyLuKN0I=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=o7PEJ61QiEpCBa449JJwgkf3UH6elUB7EneKKxhln+N+RQkOQaD8n1OKt7AB19Fa+\n\tBm8Llh53oLX4KxuNv4nu6SSrQpo54h3XYnyrNtOiNlU6Ab8p/F9CMjkE4VsnDb8wax\n\t6umXlRp+iMPdJ0+1jjGl9+ruvTHW9hQchaNKRjOQ=","Date":"Mon, 22 Feb 2021 00:23:54 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<YDLdeuNETG0nkyLh@pendragon.ideasonboard.com>","References":"<20210216103140.1077307-1-naush@raspberrypi.com>\n\t<YCxZaifNYbXEY342@pendragon.ideasonboard.com>\n\t<CAEmqJPpGZn1QZOh27XRAKm4jTGtcAaSeoqHK0KdA6ZC6JB4=Hw@mail.gmail.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPpGZn1QZOh27XRAKm4jTGtcAaSeoqHK0KdA6ZC6JB4=Hw@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH 0/4] Raspberry Pi: Embedded data usage","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]