[{"id":11445,"web_url":"https://patchwork.libcamera.org/comment/11445/","msgid":"<CAHW6GY+_raKCuAvXe_BG1g50mVde1iMxAAG_V03ziKkJAJRuuQ@mail.gmail.com>","date":"2020-07-21T09:39:15","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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 this, the fix looks good and works for me!\n\nDavid\n\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\nTested-by: David Plowman <david.plowman@raspberrypi.com>\n\nOn Tue, 21 Jul 2020 at 10:23, Naushir Patuck <naush@raspberrypi.com> wrote:\n>\n> The default sensor orientation must be set early on in match() to ensure\n> generateConfiguration() and configure() return out the correct Bayer\n> ordering to the application. This is particularly important for RAW\n> capture streams.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n>  1 file changed, 7 insertions(+), 7 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index bf1c7714..e9084afd 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n>         /* Initialize the camera properties. */\n>         data->properties_ = data->sensor_->properties();\n>\n> +       /* Configure the H/V flip controls based on the sensor rotation. */\n> +       ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> +       int32_t rotation = data->properties_.get(properties::Rotation);\n> +       ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> +       ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> +       data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> +\n>         /*\n>          * List the available output streams.\n>          * Currently cannot do Unicam streams!\n> @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n>                                               { V4L2_CID_EXPOSURE, result.data[1] } });\n>                         sensorMetadata_ = result.data[2];\n>                 }\n> -\n> -               /* Configure the H/V flip controls based on the sensor rotation. */\n> -               ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> -               int32_t rotation = sensor_->properties().get(properties::Rotation);\n> -               ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> -               ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> -               unicam_[Unicam::Image].dev()->setControls(&ctrls);\n>         }\n>\n>         if (result.operation & RPI_IPA_CONFIG_SENSOR) {\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 F0901BD792\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Jul 2020 09:39:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7E3366081E;\n\tTue, 21 Jul 2020 11:39:28 +0200 (CEST)","from mail-ot1-x344.google.com (mail-ot1-x344.google.com\n\t[IPv6:2607:f8b0:4864:20::344])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BDF2460554\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Jul 2020 11:39:26 +0200 (CEST)","by mail-ot1-x344.google.com with SMTP id t18so14593742otq.5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Jul 2020 02:39:26 -0700 (PDT)"],"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=\"gAFxIzdn\"; 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=ziHepSLAv/R/btuqkEx6aVnIsD66F+Hpf9LMDtMKbKI=;\n\tb=gAFxIzdnb5FUKxuWAE7imkGlyPCLV95BNZgRilaYRue3HhzHIryE/0dDwiyq4Pd+G0\n\tb6pn74qlwbNqoUA7jwfLYiL7nCGw09pgUrRZUDxdo22jKgqxjMG9j83qnCWONdfd+Y8l\n\tdMM8LLeG5o+fPcbq8uzSU0L0sXIWtB2TXWpqGfEkWXymiXpxf3+/0kiDpflV/k/TmfdK\n\tdAECBwdvjgGkQVcAWQx1tpM6HDngcuNB7S3b3G4BSB6zlJRYLaZejQ2UWi7OEpukxgWo\n\tsq8ND+9tqp5/7L3Tbt95Y8TrJmY/Bldc4MtIlUEUkBOCPFw212oZ8XuWkrbL7m/HpDt8\n\trofg==","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=ziHepSLAv/R/btuqkEx6aVnIsD66F+Hpf9LMDtMKbKI=;\n\tb=fofxlzdRVRDXqbaaeBJSrZugJ8m3tXtUk+Q2wwLwqzfoi1hO1tazQY7vTUqjyZc6G6\n\ttvluPbbOZsXlMvNfX4zo+Jw5bfQSFTW8X6QOWiMyZPcA2rJ2l5boZ+PtwyTWee5a1oOQ\n\tCXfipsvy2zZjSVbMyuJDdSft0VTfTKd5B4ckxujKbbkg+zgqTWgZIExExptHFwH+aOhW\n\twMr/GEfmG1GFR+Nr67OMVugOSzIJRHczgx2TX830qw8tyz5M3pziVHxngAzBKncjbcpX\n\tkJXeu1vlCEmOtRq3YvkllzJIx41tGfWokGifIIL7B94YEcxEYWATrhq0rm27bNFjT2GY\n\tdWfQ==","X-Gm-Message-State":"AOAM5325JNrZuTP4WDWP6oBaHNbOTSRtwY9XRA/ELRnGepk933j+xiX/\n\tTFo+YF4wvfWxZMndXaLickcJPj5Tukn6zpTUbmcIXg==","X-Google-Smtp-Source":"ABdhPJxrpMEPSqY1gRLsJjiTdGqd4UYrA1TqV+QmKNF5lQwUwKWOIwWzYnOtOxYmv6PFAXc61gA0CQY4+SHN4xNQEYM=","X-Received":"by 2002:a9d:6b19:: with SMTP id\n\tg25mr24524329otp.160.1595324365338; \n\tTue, 21 Jul 2020 02:39:25 -0700 (PDT)","MIME-Version":"1.0","References":"<20200721092306.823447-1-naush@raspberrypi.com>","In-Reply-To":"<20200721092306.823447-1-naush@raspberrypi.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Tue, 21 Jul 2020 10:39:15 +0100","Message-ID":"<CAHW6GY+_raKCuAvXe_BG1g50mVde1iMxAAG_V03ziKkJAJRuuQ@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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":11457,"web_url":"https://patchwork.libcamera.org/comment/11457/","msgid":"<350fa5b3-7007-0c71-5880-d4c079445bda@ideasonboard.com>","date":"2020-07-21T11:35:56","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Naush,\n\nOn 21/07/2020 10:23, Naushir Patuck wrote:\n> The default sensor orientation must be set early on in match() to ensure\n> generateConfiguration() and configure() return out the correct Bayer\n> ordering to the application. This is particularly important for RAW\n> capture streams.\n> \n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n>  1 file changed, 7 insertions(+), 7 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index bf1c7714..e9084afd 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n>  \t/* Initialize the camera properties. */\n>  \tdata->properties_ = data->sensor_->properties();\n>  \n> +\t/* Configure the H/V flip controls based on the sensor rotation. */\n> +\tControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> +\tint32_t rotation = data->properties_.get(properties::Rotation);\n> +\tctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> +\tctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> +\tdata->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> +\n\nI wonder if this should be done in some CameraData initialisation, but\nmaybe that's just over abstracting and imagining supporting multiple\ncameras on this pipeline, which /aren't/ supported.\n\nSo there's no reason for this to be Camera specific at the moment, but I\ndo wonder when we'll see a video-mux hooked up to the RaspberryPi (Too\nmuch working with GMSL on my mind)\n\nSo,\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n>  \t/*\n>  \t * List the available output streams.\n>  \t * Currently cannot do Unicam streams!\n> @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n>  \t\t\t\t\t      { V4L2_CID_EXPOSURE, result.data[1] } });\n>  \t\t\tsensorMetadata_ = result.data[2];\n>  \t\t}\n> -\n> -\t\t/* Configure the H/V flip controls based on the sensor rotation. */\n> -\t\tControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> -\t\tint32_t rotation = sensor_->properties().get(properties::Rotation);\n> -\t\tctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> -\t\tctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> -\t\tunicam_[Unicam::Image].dev()->setControls(&ctrls);\n>  \t}\n>  \n>  \tif (result.operation & RPI_IPA_CONFIG_SENSOR) {\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 AA70EBD792\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Jul 2020 11:36:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 381A160832;\n\tTue, 21 Jul 2020 13:36:01 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BBFD060496\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Jul 2020 13:35:59 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2D2C351A;\n\tTue, 21 Jul 2020 13:35:59 +0200 (CEST)"],"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=\"dpeRsv5f\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1595331359;\n\tbh=EtZZ9qF8FRU0iZaLssF4Q9m2IVrA3j06CgftLylcN+A=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=dpeRsv5feH1NHAfdb66z8dXGoCkgqmRNyDOpBUI3bPC0V7YvZa56gGbe8oePWwDPt\n\tg1JJzoqiniwF57CfOi2VYEMNmXuUVbc5i49HUxQA2NItf0toKinIO+1OXuCcbvkihV\n\tMaKM5WXYDbuNHmvLwZEjVEZzGTaddTXYvqqMYUaE=","To":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20200721092306.823447-1-naush@raspberrypi.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<350fa5b3-7007-0c71-5880-d4c079445bda@ideasonboard.com>","Date":"Tue, 21 Jul 2020 12:35:56 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<20200721092306.823447-1-naush@raspberrypi.com>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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>","Reply-To":"kieran.bingham@ideasonboard.com","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":11464,"web_url":"https://patchwork.libcamera.org/comment/11464/","msgid":"<CAEmqJPrwkpcQ7pwbyBNEiKJPDMXZ_tU2kiGT=Yj-fkqCCdt2pA@mail.gmail.com>","date":"2020-07-21T12:40:09","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Kieran,\n\nOn Tue, 21 Jul 2020 at 12:35, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Hi Naush,\n>\n> On 21/07/2020 10:23, Naushir Patuck wrote:\n> > The default sensor orientation must be set early on in match() to ensure\n> > generateConfiguration() and configure() return out the correct Bayer\n> > ordering to the application. This is particularly important for RAW\n> > capture streams.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n> >  1 file changed, 7 insertions(+), 7 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > index bf1c7714..e9084afd 100644\n> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n> >       /* Initialize the camera properties. */\n> >       data->properties_ = data->sensor_->properties();\n> >\n> > +     /* Configure the H/V flip controls based on the sensor rotation. */\n> > +     ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> > +     int32_t rotation = data->properties_.get(properties::Rotation);\n> > +     ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > +     ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > +     data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > +\n>\n> I wonder if this should be done in some CameraData initialisation, but\n> maybe that's just over abstracting and imagining supporting multiple\n> cameras on this pipeline, which /aren't/ supported.\n\nYes, that's a good point.  It won't make a difference now, but if we\nwere to have multiple cameras, we would have to move this code to\nanother place.\n\nRegards,\nNaush\n\n>\n> So there's no reason for this to be Camera specific at the moment, but I\n> do wonder when we'll see a video-mux hooked up to the RaspberryPi (Too\n> much working with GMSL on my mind)\n>\n> So,\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> >       /*\n> >        * List the available output streams.\n> >        * Currently cannot do Unicam streams!\n> > @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n> >                                             { V4L2_CID_EXPOSURE, result.data[1] } });\n> >                       sensorMetadata_ = result.data[2];\n> >               }\n> > -\n> > -             /* Configure the H/V flip controls based on the sensor rotation. */\n> > -             ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> > -             int32_t rotation = sensor_->properties().get(properties::Rotation);\n> > -             ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > -             ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > -             unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> >       }\n> >\n> >       if (result.operation & RPI_IPA_CONFIG_SENSOR) {\n> >\n>\n> --\n> Regards\n> --\n> Kieran","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 32945C2E68\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Jul 2020 12:40:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C177960868;\n\tTue, 21 Jul 2020 14:40:28 +0200 (CEST)","from mail-lf1-x143.google.com (mail-lf1-x143.google.com\n\t[IPv6:2a00:1450:4864:20::143])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F2D2C6053C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Jul 2020 14:40:26 +0200 (CEST)","by mail-lf1-x143.google.com with SMTP id b30so9292798lfj.12\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Jul 2020 05:40:26 -0700 (PDT)"],"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=\"kCY44zx7\"; 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=9muU9hLg5ib2bLe2+hcNooC6md0ngf8mdN0mGNQS9T8=;\n\tb=kCY44zx7QhoPth4XkkEhfFCXljeHvb67giewwKAT+QrLoiwLUQUouXI9H19QngaTqV\n\t7Ig6/uOIKCQDjyqwbqMM2W52DYPkXpy20zBwSOA4H/lIEOfxfTbhWC++1oORxn2EyS7J\n\tcZuhyKfuOmtWb3lk0u9z8snIO/TRPfVid0TabrLdqGoITjbniB2H19NevABlLFp4s5pP\n\tqM22LPtcpiJanQwDvABmxrp0P8l7RkS9SSYykNeBn1ABFi2C/vuoz8E+QYIGORSISXV3\n\txjTjhKJnV6VGJIVveDs/MRmUN9Je4DmsNsiYmxHAI+1AhKQquNo7Z36EJztMcMT4YX5w\n\t4DEA==","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=9muU9hLg5ib2bLe2+hcNooC6md0ngf8mdN0mGNQS9T8=;\n\tb=J46dsmsXkWZQ63jXeg0ACgaqgNudb+4T9WfRM6+QYSBXGgsg6NdGt6Oy/3DlUcx4Qx\n\tPt2lUKrORPEr8xmg00Wny5mylPm0wyKvjP3EQN/w7KK82UoCxa6Ml2K1WycZrVYXY4oE\n\tZCgwbDpC9FWe8A07dwQmyUV7m2wOXq8TAkXj3Nz+Hva7mw64R3AntOCIyIJ5H93wyd2R\n\tCNvqwUc946U+6DIKNPGVi9jsbJyWeR4psBKAfk3oMMUw8T755UBr1JiZeC7/E3oHOMOr\n\t0JzuFXnpmyKWCsImpo8V6Uicme67lIa303QZ4QwgF9bU6cuKlQMi2fftZ+dqd5bHEso+\n\tVoTw==","X-Gm-Message-State":"AOAM530cyConEQquaNd/CmN+Vej3w2wxxJToriXL5nkRHThokT0IKRGM\n\tIwsZaVTMJbazeLrTAcp3G1Cgz6dTQrO1hiuMneKoVw==","X-Google-Smtp-Source":"ABdhPJzjcAfsDpf1PuSGDHu2GRBaYw0hEkBUiqKlHXuAJaUW/JlKyHcjvuk3Kui7sRBvcy220ASQ+Yh51Mb2RmynOMM=","X-Received":"by 2002:a19:4f5d:: with SMTP id\n\ta29mr3445675lfk.107.1595335226184; \n\tTue, 21 Jul 2020 05:40:26 -0700 (PDT)","MIME-Version":"1.0","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<350fa5b3-7007-0c71-5880-d4c079445bda@ideasonboard.com>","In-Reply-To":"<350fa5b3-7007-0c71-5880-d4c079445bda@ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Tue, 21 Jul 2020 13:40:09 +0100","Message-ID":"<CAEmqJPrwkpcQ7pwbyBNEiKJPDMXZ_tU2kiGT=Yj-fkqCCdt2pA@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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":11594,"web_url":"https://patchwork.libcamera.org/comment/11594/","msgid":"<20200725002033.GO5921@pendragon.ideasonboard.com>","date":"2020-07-25T00:20:33","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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, Jul 21, 2020 at 01:40:09PM +0100, Naushir Patuck wrote:\n> On Tue, 21 Jul 2020 at 12:35, Kieran Bingham wrote:\n> > On 21/07/2020 10:23, Naushir Patuck wrote:\n> > > The default sensor orientation must be set early on in match() to ensure\n> > > generateConfiguration() and configure() return out the correct Bayer\n> > > ordering to the application. This is particularly important for RAW\n> > > capture streams.\n> > >\n> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > ---\n> > >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n> > >  1 file changed, 7 insertions(+), 7 deletions(-)\n> > >\n> > > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > index bf1c7714..e9084afd 100644\n> > > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n> > >       /* Initialize the camera properties. */\n> > >       data->properties_ = data->sensor_->properties();\n> > >\n> > > +     /* Configure the H/V flip controls based on the sensor rotation. */\n> > > +     ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> > > +     int32_t rotation = data->properties_.get(properties::Rotation);\n> > > +     ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > > +     ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > > +     data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > > +\n> >\n> > I wonder if this should be done in some CameraData initialisation, but\n> > maybe that's just over abstracting and imagining supporting multiple\n> > cameras on this pipeline, which /aren't/ supported.\n> \n> Yes, that's a good point.  It won't make a difference now, but if we\n> were to have multiple cameras, we would have to move this code to\n> another place.\n\nIf it's easy to do I'd rather have the code moved already. Otherwise,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nOn a separate but related topic, when we'll implement support for\ntransformations, the Bayer pattern will be affected. There are different\noptions to deal with that, but before starting that discussion, I'd like\nto know if it would be feasible on Raspberry Pi platforms to adjust the\ncrop rectangle transparently by one pixel to keep the Bayer pattern\nstable, or if that's not technically possible or not desired for\nparticular reasons.\n\n> > So there's no reason for this to be Camera specific at the moment, but I\n> > do wonder when we'll see a video-mux hooked up to the RaspberryPi (Too\n> > much working with GMSL on my mind)\n> >\n> > So,\n> >\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > >       /*\n> > >        * List the available output streams.\n> > >        * Currently cannot do Unicam streams!\n> > > @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n> > >                                             { V4L2_CID_EXPOSURE, result.data[1] } });\n> > >                       sensorMetadata_ = result.data[2];\n> > >               }\n> > > -\n> > > -             /* Configure the H/V flip controls based on the sensor rotation. */\n> > > -             ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> > > -             int32_t rotation = sensor_->properties().get(properties::Rotation);\n> > > -             ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > > -             ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > > -             unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > >       }\n> > >\n> > >       if (result.operation & RPI_IPA_CONFIG_SENSOR) {","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 AAB47BD878\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 25 Jul 2020 00:20:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2550A61223;\n\tSat, 25 Jul 2020 02:20:41 +0200 (CEST)","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 71E9160496\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 25 Jul 2020 02:20:40 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id DD4E1538;\n\tSat, 25 Jul 2020 02:20:39 +0200 (CEST)"],"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=\"Z18F7DcA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1595636440;\n\tbh=TH4T/9r/s6Ovh1jqJBKGHDHRPmSggsTg4KujZJXtvRo=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Z18F7DcA7oPImNRR+XMs43uiBQW06G4rpsFWqxbSrtDgvvpUV6Oz8sw9GSehaOmmv\n\tP/Qs9Jy9bRBg10hC1K5m1L16GdSMXECiAwmQlY5+SBrzTK416cmlYeuvW4kZ+u8NZQ\n\tzMlvkP5wUkztUizUDkHIIbyproidq75njL9p3fqI=","Date":"Sat, 25 Jul 2020 03:20:33 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<20200725002033.GO5921@pendragon.ideasonboard.com>","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<350fa5b3-7007-0c71-5880-d4c079445bda@ideasonboard.com>\n\t<CAEmqJPrwkpcQ7pwbyBNEiKJPDMXZ_tU2kiGT=Yj-fkqCCdt2pA@mail.gmail.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPrwkpcQ7pwbyBNEiKJPDMXZ_tU2kiGT=Yj-fkqCCdt2pA@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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":11614,"web_url":"https://patchwork.libcamera.org/comment/11614/","msgid":"<CAEmqJPrGgpMc6K4uYmWzbpsj-71-Y-KP=e0ahGZn2i031yn1+w@mail.gmail.com>","date":"2020-07-27T08:06:45","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Sat, 25 Jul 2020 at 01:20, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi Naush,\n>\n> On Tue, Jul 21, 2020 at 01:40:09PM +0100, Naushir Patuck wrote:\n> > On Tue, 21 Jul 2020 at 12:35, Kieran Bingham wrote:\n> > > On 21/07/2020 10:23, Naushir Patuck wrote:\n> > > > The default sensor orientation must be set early on in match() to ensure\n> > > > generateConfiguration() and configure() return out the correct Bayer\n> > > > ordering to the application. This is particularly important for RAW\n> > > > capture streams.\n> > > >\n> > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > ---\n> > > >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n> > > >  1 file changed, 7 insertions(+), 7 deletions(-)\n> > > >\n> > > > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > > index bf1c7714..e9084afd 100644\n> > > > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > > @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n> > > >       /* Initialize the camera properties. */\n> > > >       data->properties_ = data->sensor_->properties();\n> > > >\n> > > > +     /* Configure the H/V flip controls based on the sensor rotation. */\n> > > > +     ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> > > > +     int32_t rotation = data->properties_.get(properties::Rotation);\n> > > > +     ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > > > +     ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > > > +     data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > > > +\n> > >\n> > > I wonder if this should be done in some CameraData initialisation, but\n> > > maybe that's just over abstracting and imagining supporting multiple\n> > > cameras on this pipeline, which /aren't/ supported.\n> >\n> > Yes, that's a good point.  It won't make a difference now, but if we\n> > were to have multiple cameras, we would have to move this code to\n> > another place.\n>\n> If it's easy to do I'd rather have the code moved already. Otherwise,\n>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nI could be wrong, but right now, I don't think there is another\nappropriate hook to place this in for multiple camera cases.  Kieran,\nplease do correct me if I am wrong.\n\n>\n> On a separate but related topic, when we'll implement support for\n> transformations, the Bayer pattern will be affected. There are different\n> options to deal with that, but before starting that discussion, I'd like\n> to know if it would be feasible on Raspberry Pi platforms to adjust the\n> crop rectangle transparently by one pixel to keep the Bayer pattern\n> stable, or if that's not technically possible or not desired for\n> particular reasons.\n\nThe BCM2835 ISP should be able to crop on an odd pixel boundary,\neffectively modifying the bayer order.  However, I have never tried\nthis in anger, so I would fully expect it to have some underlying\nissues :-)\n\nRegards,\nNaush\n\n\n>\n> > > So there's no reason for this to be Camera specific at the moment, but I\n> > > do wonder when we'll see a video-mux hooked up to the RaspberryPi (Too\n> > > much working with GMSL on my mind)\n> > >\n> > > So,\n> > >\n> > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > >\n> > > >       /*\n> > > >        * List the available output streams.\n> > > >        * Currently cannot do Unicam streams!\n> > > > @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n> > > >                                             { V4L2_CID_EXPOSURE, result.data[1] } });\n> > > >                       sensorMetadata_ = result.data[2];\n> > > >               }\n> > > > -\n> > > > -             /* Configure the H/V flip controls based on the sensor rotation. */\n> > > > -             ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> > > > -             int32_t rotation = sensor_->properties().get(properties::Rotation);\n> > > > -             ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > > > -             ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > > > -             unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > > >       }\n> > > >\n> > > >       if (result.operation & RPI_IPA_CONFIG_SENSOR) {\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 DA5DABD878\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Jul 2020 08:07:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 64CAF61223;\n\tMon, 27 Jul 2020 10:07:04 +0200 (CEST)","from mail-lj1-x241.google.com (mail-lj1-x241.google.com\n\t[IPv6:2a00:1450:4864:20::241])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 58BFD60939\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Jul 2020 10:07:02 +0200 (CEST)","by mail-lj1-x241.google.com with SMTP id q6so16183678ljp.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Jul 2020 01:07:02 -0700 (PDT)"],"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=\"JjrafQ/U\"; 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=8D8X1wTd9EpAoicen6mATag55Vo1g7WyezyoKOzapxE=;\n\tb=JjrafQ/U3jPYTVz4MJQaZJ4LCFfEfM7IklTq5DFZHl5phDlu6Xy6DI1raEQgsz1tl0\n\t7NnZvuVOiCmdgtmaIrjaHxhfH06E7+S3ShzFDYJNKTYn9ftEyw/4GiJcq/EkUIQGoz70\n\t6DotuAGBjgqwvn0yHBLTJao9es9bRSCHDk2j92aVr/HkcyZAUUcpfLRVSan98ST0Q6T5\n\txXwgXAwW2qbsPcbt2oTJDTXU41HzxbI9ZUl2SIk6vcWm/bmzqunrQ0xzMa/ktpm/Dlcm\n\t6Kmj340K+DcrN2MLaSMxf6Kyuxi7IIqFjtvsZhYBG78bHWgXXTtzZD1sFvuS/Fvig6Nn\n\t9Fvw==","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=8D8X1wTd9EpAoicen6mATag55Vo1g7WyezyoKOzapxE=;\n\tb=gxvbVpmWyYucIKrEzHH2TTiiCENGlcduSEmdAthLgEd3oZphgl+sBa85w/kS94vUy0\n\toy3ile4geTZCKFq/ced9dRW6GT2amU3oEPb2LwrcO00E2NETDDwA5UPARROw65pxyRQV\n\thH0MRv+wUSNBX8/p3FCG4cAqNot0bef2NCCFxRzbwcj+/2vDP7xP6vhjchZbpw/CR9kS\n\t+9GIcXd0M8hjkqsoJ7ScJ/ZsLj/iqZLKnyvGNKCKleKrz6hKb9OXftijFTziYcnjXnRL\n\tfty/MMmbNw8cvWFGi8xVWtuWmALPV3kIj2KRtDFLREMgnyPljSGZ79V4uVtdxJNYlEn6\n\t/ZtA==","X-Gm-Message-State":"AOAM533SaKCzqKsDUxxkNLhYFXUXBSFv+lCtGLjtFfmpFQgseLHv57bC\n\tzY7y1mOOiLtL61C1rB1iHqSvNKFdcbBnUCthF3oZwg==","X-Google-Smtp-Source":"ABdhPJzYMnk5e1dyyDaSwNmcdf7Bd7Yq15HdG4I/7dk+NLrZ3glhso83Nir+6dOiB3prdqFBFRO84SeP1ZpVy9WgETw=","X-Received":"by 2002:a2e:88c3:: with SMTP id a3mr9110184ljk.112.1595837221365;\n\tMon, 27 Jul 2020 01:07:01 -0700 (PDT)","MIME-Version":"1.0","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<350fa5b3-7007-0c71-5880-d4c079445bda@ideasonboard.com>\n\t<CAEmqJPrwkpcQ7pwbyBNEiKJPDMXZ_tU2kiGT=Yj-fkqCCdt2pA@mail.gmail.com>\n\t<20200725002033.GO5921@pendragon.ideasonboard.com>","In-Reply-To":"<20200725002033.GO5921@pendragon.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Mon, 27 Jul 2020 09:06:45 +0100","Message-ID":"<CAEmqJPrGgpMc6K4uYmWzbpsj-71-Y-KP=e0ahGZn2i031yn1+w@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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":11622,"web_url":"https://patchwork.libcamera.org/comment/11622/","msgid":"<CAHW6GY+grvJbSj2eG0zHKojB+UQiReNS_drVkR1M4=hK9-N1bw@mail.gmail.com>","date":"2020-07-27T10:46:30","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi everyone\n\nOn Mon, 27 Jul 2020 at 09:07, Naushir Patuck <naush@raspberrypi.com> wrote:\n>\n> Hi Laurent,\n>\n> On Sat, 25 Jul 2020 at 01:20, Laurent Pinchart\n> <laurent.pinchart@ideasonboard.com> wrote:\n> >\n> > Hi Naush,\n> >\n> > On Tue, Jul 21, 2020 at 01:40:09PM +0100, Naushir Patuck wrote:\n> > > On Tue, 21 Jul 2020 at 12:35, Kieran Bingham wrote:\n> > > > On 21/07/2020 10:23, Naushir Patuck wrote:\n> > > > > The default sensor orientation must be set early on in match() to ensure\n> > > > > generateConfiguration() and configure() return out the correct Bayer\n> > > > > ordering to the application. This is particularly important for RAW\n> > > > > capture streams.\n> > > > >\n> > > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > > > ---\n> > > > >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n> > > > >  1 file changed, 7 insertions(+), 7 deletions(-)\n> > > > >\n> > > > > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > > > index bf1c7714..e9084afd 100644\n> > > > > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > > > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > > > @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n> > > > >       /* Initialize the camera properties. */\n> > > > >       data->properties_ = data->sensor_->properties();\n> > > > >\n> > > > > +     /* Configure the H/V flip controls based on the sensor rotation. */\n> > > > > +     ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> > > > > +     int32_t rotation = data->properties_.get(properties::Rotation);\n> > > > > +     ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > > > > +     ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > > > > +     data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > > > > +\n> > > >\n> > > > I wonder if this should be done in some CameraData initialisation, but\n> > > > maybe that's just over abstracting and imagining supporting multiple\n> > > > cameras on this pipeline, which /aren't/ supported.\n> > >\n> > > Yes, that's a good point.  It won't make a difference now, but if we\n> > > were to have multiple cameras, we would have to move this code to\n> > > another place.\n> >\n> > If it's easy to do I'd rather have the code moved already. Otherwise,\n> >\n> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n> I could be wrong, but right now, I don't think there is another\n> appropriate hook to place this in for multiple camera cases.  Kieran,\n> please do correct me if I am wrong.\n>\n> >\n> > On a separate but related topic, when we'll implement support for\n> > transformations, the Bayer pattern will be affected. There are different\n> > options to deal with that, but before starting that discussion, I'd like\n> > to know if it would be feasible on Raspberry Pi platforms to adjust the\n> > crop rectangle transparently by one pixel to keep the Bayer pattern\n> > stable, or if that's not technically possible or not desired for\n> > particular reasons.\n>\n> The BCM2835 ISP should be able to crop on an odd pixel boundary,\n> effectively modifying the bayer order.  However, I have never tried\n> this in anger, so I would fully expect it to have some underlying\n> issues :-)\n\nFor what it's worth, and this is just a matter of personal taste, I'm\nnot keen on the idea of applying teeny 1-pixel crops just to preserve\nthe Bayer pattern. It means you can't rely on being able to read out\nthe full native resolution of the sensor, which seems a bit\nunfortunate to me.\n\nBest regards\nDavid\n\n>\n> Regards,\n> Naush\n>\n>\n> >\n> > > > So there's no reason for this to be Camera specific at the moment, but I\n> > > > do wonder when we'll see a video-mux hooked up to the RaspberryPi (Too\n> > > > much working with GMSL on my mind)\n> > > >\n> > > > So,\n> > > >\n> > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > >\n> > > > >       /*\n> > > > >        * List the available output streams.\n> > > > >        * Currently cannot do Unicam streams!\n> > > > > @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n> > > > >                                             { V4L2_CID_EXPOSURE, result.data[1] } });\n> > > > >                       sensorMetadata_ = result.data[2];\n> > > > >               }\n> > > > > -\n> > > > > -             /* Configure the H/V flip controls based on the sensor rotation. */\n> > > > > -             ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> > > > > -             int32_t rotation = sensor_->properties().get(properties::Rotation);\n> > > > > -             ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > > > > -             ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > > > > -             unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > > > >       }\n> > > > >\n> > > > >       if (result.operation & RPI_IPA_CONFIG_SENSOR) {\n> >\n> > --\n> > Regards,\n> >\n> > Laurent Pinchart\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 CF839BD878\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Jul 2020 10:46:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5141D61253;\n\tMon, 27 Jul 2020 12:46:45 +0200 (CEST)","from mail-ot1-x344.google.com (mail-ot1-x344.google.com\n\t[IPv6:2607:f8b0:4864:20::344])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2439B60536\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Jul 2020 12:46:44 +0200 (CEST)","by mail-ot1-x344.google.com with SMTP id w17so11972978otl.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Jul 2020 03:46:44 -0700 (PDT)"],"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=\"BoqsfYzg\"; 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=1ZPtLVrlKi30yOWFIEjt8vSYrfsODjxXmApOZATcSeU=;\n\tb=BoqsfYzgESzs+TJFq3GWlIq84hDca7LC6BghlkqopkGRm+qGPCx6LWLZUVkb8XIx5C\n\tFTEdYa8GnDdSvxxaCx5krZQ/Q/TqcqeKukBA9hGYCamRylVFcItjvHPkqeCUIEMSMWEq\n\twPzjbsw067HipCvgEOWbJOE3MUjUepSFBnn2e88krKPUalxYLPKBDJW3KDfH5/Yfpkcl\n\t6bXxo5akF6ELb83EFYr4c3FL9WgscGOkG3LoAL30lNOTylYKcroJmgtllByiLJzCnnD8\n\tG2p1mfyL7CEGeu7K6eFSWxWynXIwWTdp2C5YBuXEbvC3LeRBD2FPGnrpWzINIGKhuH7f\n\tpclA==","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=1ZPtLVrlKi30yOWFIEjt8vSYrfsODjxXmApOZATcSeU=;\n\tb=bQWMW+n3R6+vsWlD+ULqSxcHNqj0eo3JiAlZ+e4cDdJJRe/FuXnkmGk4pjbiOtHUi4\n\t2pxFlV9761AEMk7qhITvgfTSnz+7lAiLObuaUSkiITO+AxDEcI7nUQQTgIxFBM+6rXWf\n\tAazELpc6p1/jVWNoTK2sYVRHDb/JvkQol5oA7ftxdF3OOQa87uwNSy8K/cqCJLZjhYit\n\tvebkmQXZniR9mGoVvDraYeNeeYmUUD4rhXDinF7x4fyXWabn36WLimC3Uap9lcCnx2No\n\thd/G0EzdPqouCZeq6K9YfKoljuTxTBMHAX2LTQPh/8DnMZDXNLHvl7e+E+8xihNzavs+\n\tX6FA==","X-Gm-Message-State":"AOAM532BY1D7rafK4OjwxwhvBog34v3haDkGqxx5wWg6Mj/m6Vc56g2R\n\ttOI5waMk0QxcnK99rXBm95vMfvSfv3yXe6CzOqlLPA==","X-Google-Smtp-Source":"ABdhPJw4rIPcrPj7EgxQbtQokbx9v8ZTas6FcwSqhqkRvHO6WWYZG1Z5/Y7OdY055AgSmVVAMIBtVl1FvGCjoXK5OCM=","X-Received":"by 2002:a05:6830:14d4:: with SMTP id\n\tt20mr19452678otq.166.1595846802626; \n\tMon, 27 Jul 2020 03:46:42 -0700 (PDT)","MIME-Version":"1.0","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<350fa5b3-7007-0c71-5880-d4c079445bda@ideasonboard.com>\n\t<CAEmqJPrwkpcQ7pwbyBNEiKJPDMXZ_tU2kiGT=Yj-fkqCCdt2pA@mail.gmail.com>\n\t<20200725002033.GO5921@pendragon.ideasonboard.com>\n\t<CAEmqJPrGgpMc6K4uYmWzbpsj-71-Y-KP=e0ahGZn2i031yn1+w@mail.gmail.com>","In-Reply-To":"<CAEmqJPrGgpMc6K4uYmWzbpsj-71-Y-KP=e0ahGZn2i031yn1+w@mail.gmail.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Mon, 27 Jul 2020 11:46:30 +0100","Message-ID":"<CAHW6GY+grvJbSj2eG0zHKojB+UQiReNS_drVkR1M4=hK9-N1bw@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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":11941,"web_url":"https://patchwork.libcamera.org/comment/11941/","msgid":"<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>","date":"2020-08-07T12:12:01","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi all,\n\nJust a gentle ping for the below change to be submitted when you can.\n\nRegards,\nNaush\n\nOn Tue, 21 Jul 2020 at 10:23, Naushir Patuck <naush@raspberrypi.com> wrote:\n>\n> The default sensor orientation must be set early on in match() to ensure\n> generateConfiguration() and configure() return out the correct Bayer\n> ordering to the application. This is particularly important for RAW\n> capture streams.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n>  1 file changed, 7 insertions(+), 7 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index bf1c7714..e9084afd 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n>         /* Initialize the camera properties. */\n>         data->properties_ = data->sensor_->properties();\n>\n> +       /* Configure the H/V flip controls based on the sensor rotation. */\n> +       ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> +       int32_t rotation = data->properties_.get(properties::Rotation);\n> +       ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> +       ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> +       data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> +\n>         /*\n>          * List the available output streams.\n>          * Currently cannot do Unicam streams!\n> @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n>                                               { V4L2_CID_EXPOSURE, result.data[1] } });\n>                         sensorMetadata_ = result.data[2];\n>                 }\n> -\n> -               /* Configure the H/V flip controls based on the sensor rotation. */\n> -               ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> -               int32_t rotation = sensor_->properties().get(properties::Rotation);\n> -               ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> -               ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> -               unicam_[Unicam::Image].dev()->setControls(&ctrls);\n>         }\n>\n>         if (result.operation & RPI_IPA_CONFIG_SENSOR) {\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 BB426BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  7 Aug 2020 12:12:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F296B60DFE;\n\tFri,  7 Aug 2020 14:12:19 +0200 (CEST)","from mail-lj1-x241.google.com (mail-lj1-x241.google.com\n\t[IPv6:2a00:1450:4864:20::241])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 853856055A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  7 Aug 2020 14:12:18 +0200 (CEST)","by mail-lj1-x241.google.com with SMTP id h19so1924201ljg.13\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 07 Aug 2020 05:12:18 -0700 (PDT)"],"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=\"mDmDEnYX\"; 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\tbh=oM8Zq+77yGDhd6aeKvYE+5mzhBZsVDy3RUBArdSZPxE=;\n\tb=mDmDEnYX0xqS7bM9t8PAZdVreJvgv9wLQzc5RzrB8h3vEfRyJhpUtg1RMCbXAuKeZX\n\t6kNxAP6UN43MDw126wl+Ia9ttAb70e73oeLrek99iCqWmkns+99YgZl1Gq6+ybhu44iV\n\tJ3uSzwajNSNAyxNx2xiG0yY6tIt3gbCHRXL0l4+nG8MuFe2EMuCp9JFYFmz5hLV/WCwe\n\tUlwRyCqgCtHfCrlYficLwVeOv2tjfeBzb5XvnT5CYDdqkQb55PZeqqVNIiluhC5ltXgZ\n\t5tDJ8dmcWxfc85VerojdVnh3i8YBLSrWW9ztnmapD6sUYKVnUzlN58f2TOcOHEKWTYEG\n\t5COg==","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;\n\tbh=oM8Zq+77yGDhd6aeKvYE+5mzhBZsVDy3RUBArdSZPxE=;\n\tb=eH/18/NQ1ndNe9ELhp82yfnpbbzq4l2QUgJ370JJ62FVpjNU8rBTIsamccQh0Wpgko\n\t/bf60gwTttM5svz4hqQvbz68L8+i/fHJ6PcMTQA6HpACl/ttSk5qTlqHZWQtTS4+cZ0H\n\tVCTauUVD8S7SiAfqO275FIfynCnY/w8tTuXrafY7idJcF8fhPz6PTvO3AAW9tAD8Q6Ln\n\t7pD/3NZW8CFlF3BVcIFBOWB38ncqeiyzUiFWWqi+Lc0ip2L4Y63QGYy+AXA1IG5JEqIJ\n\tCd6Pj/fRtbalZnMPbv07A/l6REPywbNMlHJFbbcNWaX2/B7M45VuG3eqstejwmuO7sDr\n\tsQQQ==","X-Gm-Message-State":"AOAM531AC3WtpgZDyYWzOJJDBbDhszQmwMzVb+8B2FkYXkFcnQKgE8KG\n\tdXvlBeX/vs9buDABQ6lRiaqXaL449/N6uQeBUcjqqTAtoKk=","X-Google-Smtp-Source":"ABdhPJyrHtP27uIcM8NpexVg9YhEUdRKdC/ftcd1PeJKV8djH8VKywW0zJ8SazD9OKy9/rM7oswNWlgKNlKQLGtHS3U=","X-Received":"by 2002:a2e:9050:: with SMTP id\n\tn16mr6225079ljg.228.1596802337184; \n\tFri, 07 Aug 2020 05:12:17 -0700 (PDT)","MIME-Version":"1.0","References":"<20200721092306.823447-1-naush@raspberrypi.com>","In-Reply-To":"<20200721092306.823447-1-naush@raspberrypi.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Fri, 7 Aug 2020 13:12:01 +0100","Message-ID":"<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>","To":"libcamera-devel@lists.libcamera.org","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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>","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":11959,"web_url":"https://patchwork.libcamera.org/comment/11959/","msgid":"<20200810053811.GD12018@pendragon.ideasonboard.com>","date":"2020-08-10T05:38:11","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nOn Fri, Aug 07, 2020 at 01:12:01PM +0100, Naushir Patuck wrote:\n> Hi all,\n> \n> Just a gentle ping for the below change to be submitted when you can.\n\nI know I have a fairly large backlog of RPi libcamera patches to review,\nI apologize about that, even more so as I will have very little time\nthis week. I'll do my best and try to address as much of the backlog as\npossible on Thursday.\n\n> On Tue, 21 Jul 2020 at 10:23, Naushir Patuck <naush@raspberrypi.com> wrote:\n> >\n> > The default sensor orientation must be set early on in match() to ensure\n> > generateConfiguration() and configure() return out the correct Bayer\n> > ordering to the application. This is particularly important for RAW\n> > capture streams.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n> >  1 file changed, 7 insertions(+), 7 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > index bf1c7714..e9084afd 100644\n> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n> >         /* Initialize the camera properties. */\n> >         data->properties_ = data->sensor_->properties();\n> >\n> > +       /* Configure the H/V flip controls based on the sensor rotation. */\n> > +       ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> > +       int32_t rotation = data->properties_.get(properties::Rotation);\n> > +       ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > +       ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > +       data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > +\n> >         /*\n> >          * List the available output streams.\n> >          * Currently cannot do Unicam streams!\n> > @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n> >                                               { V4L2_CID_EXPOSURE, result.data[1] } });\n> >                         sensorMetadata_ = result.data[2];\n> >                 }\n> > -\n> > -               /* Configure the H/V flip controls based on the sensor rotation. */\n> > -               ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> > -               int32_t rotation = sensor_->properties().get(properties::Rotation);\n> > -               ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > -               ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > -               unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> >         }\n> >\n> >         if (result.operation & RPI_IPA_CONFIG_SENSOR) {","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 53A97BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 10 Aug 2020 05:38:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C59CD60DCA;\n\tMon, 10 Aug 2020 07:38:26 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 47EED60388\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 10 Aug 2020 07:38:25 +0200 (CEST)","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 AE4BDF9;\n\tMon, 10 Aug 2020 07:38:24 +0200 (CEST)"],"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=\"SB5LpeiA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1597037904;\n\tbh=ziYxhXioUbrKg+rT1BuNQQo5l0idSfponXmVMR81Zno=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=SB5LpeiAFYCGJYzllp8H4GXojd+awlIbCgmS5zv6xCOOZXE+6iYb70T2Yv9z25ZRT\n\tYGRMybu8ub7jTX9VyxcQLyF8pEFosPKp7hl434LZS1WGKF4hsdwd1cWpAtfxP8WjWT\n\tBu4nEzR170gUl3Eogg+sK9XmWomTF5mqU8MeMl3s=","Date":"Mon, 10 Aug 2020 08:38:11 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<20200810053811.GD12018@pendragon.ideasonboard.com>","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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":11964,"web_url":"https://patchwork.libcamera.org/comment/11964/","msgid":"<CAEmqJPr8U-hSCUZV-gERphf2jXoNqg3+3vzks0d5VnVMMY886w@mail.gmail.com>","date":"2020-08-10T08:30:14","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Mon, 10 Aug 2020 at 06:38, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi Naush,\n>\n> On Fri, Aug 07, 2020 at 01:12:01PM +0100, Naushir Patuck wrote:\n> > Hi all,\n> >\n> > Just a gentle ping for the below change to be submitted when you can.\n>\n> I know I have a fairly large backlog of RPi libcamera patches to review,\n> I apologize about that, even more so as I will have very little time\n> this week. I'll do my best and try to address as much of the backlog as\n> possible on Thursday.\n\nNo problem at all :)\n\nRegards,\nNaush\n\n\n>\n> > On Tue, 21 Jul 2020 at 10:23, Naushir Patuck <naush@raspberrypi.com> wrote:\n> > >\n> > > The default sensor orientation must be set early on in match() to ensure\n> > > generateConfiguration() and configure() return out the correct Bayer\n> > > ordering to the application. This is particularly important for RAW\n> > > capture streams.\n> > >\n> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > ---\n> > >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n> > >  1 file changed, 7 insertions(+), 7 deletions(-)\n> > >\n> > > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > index bf1c7714..e9084afd 100644\n> > > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > > @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n> > >         /* Initialize the camera properties. */\n> > >         data->properties_ = data->sensor_->properties();\n> > >\n> > > +       /* Configure the H/V flip controls based on the sensor rotation. */\n> > > +       ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> > > +       int32_t rotation = data->properties_.get(properties::Rotation);\n> > > +       ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > > +       ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > > +       data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > > +\n> > >         /*\n> > >          * List the available output streams.\n> > >          * Currently cannot do Unicam streams!\n> > > @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n> > >                                               { V4L2_CID_EXPOSURE, result.data[1] } });\n> > >                         sensorMetadata_ = result.data[2];\n> > >                 }\n> > > -\n> > > -               /* Configure the H/V flip controls based on the sensor rotation. */\n> > > -               ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> > > -               int32_t rotation = sensor_->properties().get(properties::Rotation);\n> > > -               ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > > -               ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > > -               unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > >         }\n> > >\n> > >         if (result.operation & RPI_IPA_CONFIG_SENSOR) {\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 A2B96BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 10 Aug 2020 08:30:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2801960DCA;\n\tMon, 10 Aug 2020 10:30:34 +0200 (CEST)","from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com\n\t[IPv6:2a00:1450:4864:20::22c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2E08F6038B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 10 Aug 2020 10:30:32 +0200 (CEST)","by mail-lj1-x22c.google.com with SMTP id f26so7207780ljc.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 10 Aug 2020 01:30:32 -0700 (PDT)"],"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=\"WRs7eF81\"; 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=/n0sPLU+18p+zAYCX9QeuleU6jEUa+VLh+nlgZkuC4U=;\n\tb=WRs7eF81q+3bmOsxbfI0VxpRrtZTc9xfsSFC1fu7AmRaAtNNNX3BkWPQbBiis62dQD\n\tkouU+XGyF1WCIO6iQSGl/c6osHHZUBwuTvoGHKRLOaF7loZwistgKcp9ER0WOD3w4GG1\n\tpBn5DhIFtCaJ/Sr2m1OCUSfETSJdtc0m1xlpcT/OXnJb7ak7edQqdMP6mJ4SVBSY9y9y\n\t6QlKQAk9/pLIBQnR7o4zai0uTVOCakhoW8d9KiqQLdY9FZtLicUtTFhSziMKo/7njLdx\n\tpychfpDEIvfSZrAEdkkyubypFs7RRD5jV5GZVKsk+ytFQzSEf9PazEKrOhoJ1hlw/DaF\n\t2IxQ==","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=/n0sPLU+18p+zAYCX9QeuleU6jEUa+VLh+nlgZkuC4U=;\n\tb=NXUzh1DW/cciPHTeVYMwTk6EBtM7xNRhi6Sf29vD9cbXx5PmFBwp+/B1yyIZW6/2TY\n\twrXl+YB2U1X2EQ+AK7FU8QaZPSUzmZMZVbY14xfSD+KrmJED21qQet7VcTdhVeSZttUP\n\t0hx5sgGMkfd1jGq3JUQLRgVCTpqIGeZf2k4M3ua1TpqlWBtH6iDf6saIUyk8PNaVWfnY\n\t/K4qiVN7SnYzolOWHDkuXZhNfcibE+85YAUERaSO1EpmTE75cL8s8TJz9FyeNXimZHSX\n\tAVcLpykIWZAD5Kq8Vefy3P9HckqgWkiTn2bPlNS/1ixMZGj3YS4zGutercSKFv/lHZFY\n\totJA==","X-Gm-Message-State":"AOAM531XsS/980Omnm6yLxaDVxFqBkVL4pLNPPsWtdvwVgjvVDl+ihUK\n\tynpbN/Sr5TU5eJ9W8dMVdbPrEF47ZBi82/vH7A0/eQ==","X-Google-Smtp-Source":"ABdhPJyNGpB7JsyjankwshB9VDl/dmO/LkV1+qFsP/Ouoj5XtbRD0JffW3a5PZO+/PMYBLXicZgDP0mOdvFVPHcYvUw=","X-Received":"by 2002:a2e:80a:: with SMTP id 10mr1948lji.103.1597048231255;\n\tMon, 10 Aug 2020 01:30:31 -0700 (PDT)","MIME-Version":"1.0","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>\n\t<20200810053811.GD12018@pendragon.ideasonboard.com>","In-Reply-To":"<20200810053811.GD12018@pendragon.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Mon, 10 Aug 2020 09:30:14 +0100","Message-ID":"<CAEmqJPr8U-hSCUZV-gERphf2jXoNqg3+3vzks0d5VnVMMY886w@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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":12163,"web_url":"https://patchwork.libcamera.org/comment/12163/","msgid":"<CAEmqJPpBxXVOqDFJc6A6gOahrLFBbAWHY6CsfpOkqKh46qi78Q@mail.gmail.com>","date":"2020-08-27T08:30:27","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi all,\n\nAnother gentle ping for a review and submission of this patch please.\n\nThanks,\nNaush\n\nOn Fri, 7 Aug 2020 at 13:12, Naushir Patuck <naush@raspberrypi.com> wrote:\n>\n> Hi all,\n>\n> Just a gentle ping for the below change to be submitted when you can.\n>\n> Regards,\n> Naush\n>\n> On Tue, 21 Jul 2020 at 10:23, Naushir Patuck <naush@raspberrypi.com> wrote:\n> >\n> > The default sensor orientation must be set early on in match() to ensure\n> > generateConfiguration() and configure() return out the correct Bayer\n> > ordering to the application. This is particularly important for RAW\n> > capture streams.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n> >  1 file changed, 7 insertions(+), 7 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > index bf1c7714..e9084afd 100644\n> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> > @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n> >         /* Initialize the camera properties. */\n> >         data->properties_ = data->sensor_->properties();\n> >\n> > +       /* Configure the H/V flip controls based on the sensor rotation. */\n> > +       ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> > +       int32_t rotation = data->properties_.get(properties::Rotation);\n> > +       ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > +       ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > +       data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> > +\n> >         /*\n> >          * List the available output streams.\n> >          * Currently cannot do Unicam streams!\n> > @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n> >                                               { V4L2_CID_EXPOSURE, result.data[1] } });\n> >                         sensorMetadata_ = result.data[2];\n> >                 }\n> > -\n> > -               /* Configure the H/V flip controls based on the sensor rotation. */\n> > -               ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> > -               int32_t rotation = sensor_->properties().get(properties::Rotation);\n> > -               ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> > -               ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> > -               unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> >         }\n> >\n> >         if (result.operation & RPI_IPA_CONFIG_SENSOR) {\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 700D4BF019\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Aug 2020 08:30:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3ECF3628F7;\n\tThu, 27 Aug 2020 10:30:49 +0200 (CEST)","from mail-lf1-x142.google.com (mail-lf1-x142.google.com\n\t[IPv6:2a00:1450:4864:20::142])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 81AAF60379\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Aug 2020 10:30:48 +0200 (CEST)","by mail-lf1-x142.google.com with SMTP id c8so2457437lfh.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Aug 2020 01:30:48 -0700 (PDT)"],"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=\"jYYAUYUK\"; 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\tbh=5Q5Q7hUICTNjLV+fQvKQHXxioHafGD4+hM7OSkJGBtE=;\n\tb=jYYAUYUKlJDcSVJFwirHuZ91otYX8p0pw8dmvl0LLXhFuQYWeldYu/F10SVlmagSwO\n\t8lHZ/WZ+Wu1gUjqmATEsmIgXsO9Fw5vZBMkxTy7mVr4796xVxG5/KnkHk+DvRnd8dYKo\n\thtryFM+2CRHrHfBzBA7uWKaLcEEK7YHss/U5w9sxcslmDuBzSts4ltCeKDNHNoJSDifo\n\t8we+trIwzNO6Bn0rSwsVFxbquzTveVAjm1NXnkonVYvhhaV15wYSBgkswDqsBfJ7XSg1\n\tk0U+6MXaXOQU139GOfaKlJOooSGpBg3pwr2f/G0hZLTgt58qQzFXShKmXzqx7WpbS8Xs\n\tAdGw==","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;\n\tbh=5Q5Q7hUICTNjLV+fQvKQHXxioHafGD4+hM7OSkJGBtE=;\n\tb=b6qxqaz9hsT7iA0PpNXEwoDMbanQRwUZkq54Oar5CeLISIFWfe4wLAtBOYYXW4+p7D\n\tr78bGNvk9QrQGJekBJa+8alzCiqMaBcz6nZhIZgYAEtDsfdX4/xac+l851CUw//a6WBh\n\tG9IuP2hPBmmJwfF/Gk2UUKMA4MNkwPd0i+/oJTRGwmjczWE+bKKKUK4Aid419nGFYTML\n\t+0K5EnS2/Gh25MkIGKQVWJRuUB7IPxc5dS/uKFGptGg93GUf046usTzU7tvf0xbUIGGI\n\twFRVin2U+XwltpK2GxDx2c6wTJDqA7tZ3xLHR+RYobd+zBxOOTr2x/oPuPYd6Ry8Xcch\n\tfXJg==","X-Gm-Message-State":"AOAM53148MwQ2vwHKsdfYCjA4oMkFkH3KPWCspj+a8EcMlovMqBhUdlV\n\tsuwBxIiAkgB6wVOPqx0nzzsB9ysbjhNaJQcl+lG55LCwlqSaKw==","X-Google-Smtp-Source":"ABdhPJx2fDA6XlxFqBcO+0xUmCeX2f70lgmthIbkAEZmFJRl6/tqntZQHNq+CuPLTmkq2XPn9P1Nv2rELvX2rgMwpiU=","X-Received":"by 2002:a19:4853:: with SMTP id\n\tv80mr5690360lfa.125.1598517047653; \n\tThu, 27 Aug 2020 01:30:47 -0700 (PDT)","MIME-Version":"1.0","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>","In-Reply-To":"<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Thu, 27 Aug 2020 09:30:27 +0100","Message-ID":"<CAEmqJPpBxXVOqDFJc6A6gOahrLFBbAWHY6CsfpOkqKh46qi78Q@mail.gmail.com>","To":"libcamera-devel@lists.libcamera.org","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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>","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":12164,"web_url":"https://patchwork.libcamera.org/comment/12164/","msgid":"<d5428c0a-9c97-0242-e1b6-5f64fde7f391@ideasonboard.com>","date":"2020-08-27T09:57:28","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Naush,\n\nOn 27/08/2020 09:30, Naushir Patuck wrote:\n> Hi all,\n> \n> Another gentle ping for a review and submission of this patch please.\n\nThis has a tag from both me and Laurent, so I don't see any reason it\ncan't already be in.\n\nWe'll have to look at how to optimise the integration paths for\ncontributions, as we of course just push our own patches after review.\n\nI wonder if it would help to make a pull-request (git-request-pull) when\na series is ready.\n\nI don't want to add extra burden to you though, and I can't see any\nreason not to apply this now.\n\nPushing ...\n\n\nI'll try to work through the status of the other raw patches now.\n--\nKieran\n\n\n> Thanks,\n> Naush\n> \n> On Fri, 7 Aug 2020 at 13:12, Naushir Patuck <naush@raspberrypi.com> wrote:\n>>\n>> Hi all,\n>>\n>> Just a gentle ping for the below change to be submitted when you can.\n>>\n>> Regards,\n>> Naush\n>>\n>> On Tue, 21 Jul 2020 at 10:23, Naushir Patuck <naush@raspberrypi.com> wrote:\n>>>\n>>> The default sensor orientation must be set early on in match() to ensure\n>>> generateConfiguration() and configure() return out the correct Bayer\n>>> ordering to the application. This is particularly important for RAW\n>>> capture streams.\n>>>\n>>> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n>>> ---\n>>>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n>>>  1 file changed, 7 insertions(+), 7 deletions(-)\n>>>\n>>> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n>>> index bf1c7714..e9084afd 100644\n>>> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n>>> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n>>> @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n>>>         /* Initialize the camera properties. */\n>>>         data->properties_ = data->sensor_->properties();\n>>>\n>>> +       /* Configure the H/V flip controls based on the sensor rotation. */\n>>> +       ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n>>> +       int32_t rotation = data->properties_.get(properties::Rotation);\n>>> +       ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n>>> +       ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n>>> +       data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n>>> +\n>>>         /*\n>>>          * List the available output streams.\n>>>          * Currently cannot do Unicam streams!\n>>> @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n>>>                                               { V4L2_CID_EXPOSURE, result.data[1] } });\n>>>                         sensorMetadata_ = result.data[2];\n>>>                 }\n>>> -\n>>> -               /* Configure the H/V flip controls based on the sensor rotation. */\n>>> -               ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n>>> -               int32_t rotation = sensor_->properties().get(properties::Rotation);\n>>> -               ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n>>> -               ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n>>> -               unicam_[Unicam::Image].dev()->setControls(&ctrls);\n>>>         }\n>>>\n>>>         if (result.operation & RPI_IPA_CONFIG_SENSOR) {\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 D519CBF019\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Aug 2020 09:57:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 69E3A6037B;\n\tThu, 27 Aug 2020 11:57:36 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 11C9C6037B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Aug 2020 11:57:34 +0200 (CEST)","from [192.168.0.20]\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 71B8F9B1;\n\tThu, 27 Aug 2020 11:57:31 +0200 (CEST)"],"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=\"JZkReAwJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1598522253;\n\tbh=3CuH6AK/HrGWlLu8+6Tg+m9d8y9mfRLnj9/oQiaeA34=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=JZkReAwJCM14VBcZeOWcWfABtn9JHTpMHZw48obVOOsWoAl7LO4xH9+nnp9r88UQq\n\tuaWzuDBktPUtarPHuEjUe+NxwT2XFKaqz0exMTs96FQinsTqeXX0iKdxvs4cCLglHe\n\tKLs+lOsNMdKs8rDW4PHv9cROHJp9CJ3SduUpu/eI=","To":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>\n\t<CAEmqJPpBxXVOqDFJc6A6gOahrLFBbAWHY6CsfpOkqKh46qi78Q@mail.gmail.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<d5428c0a-9c97-0242-e1b6-5f64fde7f391@ideasonboard.com>","Date":"Thu, 27 Aug 2020 10:57:28 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<CAEmqJPpBxXVOqDFJc6A6gOahrLFBbAWHY6CsfpOkqKh46qi78Q@mail.gmail.com>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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>","Reply-To":"kieran.bingham@ideasonboard.com","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":12166,"web_url":"https://patchwork.libcamera.org/comment/12166/","msgid":"<CAEmqJPp9Nhoc9a+W=vX9=mrMj+TzRy4n6hUkAXT9zHp5YbHBRA@mail.gmail.com>","date":"2020-08-27T10:17:17","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Kieran,\n\n\nOn Thu, 27 Aug 2020 at 10:57, Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Hi Naush,\n>\n> On 27/08/2020 09:30, Naushir Patuck wrote:\n> > Hi all,\n> >\n> > Another gentle ping for a review and submission of this patch please.\n>\n> This has a tag from both me and Laurent, so I don't see any reason it\n> can't already be in.\n\nYes, this can go in as-is.  Thanks!\n\n>\n> We'll have to look at how to optimise the integration paths for\n> contributions, as we of course just push our own patches after review.\n>\n> I wonder if it would help to make a pull-request (git-request-pull) when\n> a series is ready.\n>\n> I don't want to add extra burden to you though, and I can't see any\n> reason not to apply this now.\n>\n\nI do not have a problem doing an extra git-request-pull when a patch\nis ready if that helps the workflow for you and the team.  I'm sure\nother external contributors would not have a problem either :)  Let me\nknow if this is the preferred way going forward.\n\nRegards,\nNaush\n\n> Pushing ...\n>\n>\n> I'll try to work through the status of the other raw patches now.\n> --\n> Kieran\n>\n>\n> > Thanks,\n> > Naush\n> >\n> > On Fri, 7 Aug 2020 at 13:12, Naushir Patuck <naush@raspberrypi.com> wrote:\n> >>\n> >> Hi all,\n> >>\n> >> Just a gentle ping for the below change to be submitted when you can.\n> >>\n> >> Regards,\n> >> Naush\n> >>\n> >> On Tue, 21 Jul 2020 at 10:23, Naushir Patuck <naush@raspberrypi.com> wrote:\n> >>>\n> >>> The default sensor orientation must be set early on in match() to ensure\n> >>> generateConfiguration() and configure() return out the correct Bayer\n> >>> ordering to the application. This is particularly important for RAW\n> >>> capture streams.\n> >>>\n> >>> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> >>> ---\n> >>>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n> >>>  1 file changed, 7 insertions(+), 7 deletions(-)\n> >>>\n> >>> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> >>> index bf1c7714..e9084afd 100644\n> >>> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> >>> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> >>> @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n> >>>         /* Initialize the camera properties. */\n> >>>         data->properties_ = data->sensor_->properties();\n> >>>\n> >>> +       /* Configure the H/V flip controls based on the sensor rotation. */\n> >>> +       ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n> >>> +       int32_t rotation = data->properties_.get(properties::Rotation);\n> >>> +       ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> >>> +       ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> >>> +       data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> >>> +\n> >>>         /*\n> >>>          * List the available output streams.\n> >>>          * Currently cannot do Unicam streams!\n> >>> @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n> >>>                                               { V4L2_CID_EXPOSURE, result.data[1] } });\n> >>>                         sensorMetadata_ = result.data[2];\n> >>>                 }\n> >>> -\n> >>> -               /* Configure the H/V flip controls based on the sensor rotation. */\n> >>> -               ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n> >>> -               int32_t rotation = sensor_->properties().get(properties::Rotation);\n> >>> -               ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n> >>> -               ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n> >>> -               unicam_[Unicam::Image].dev()->setControls(&ctrls);\n> >>>         }\n> >>>\n> >>>         if (result.operation & RPI_IPA_CONFIG_SENSOR) {\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> >\n>\n> --\n> Regards\n> --\n> Kieran","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 7A194BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Aug 2020 10:17:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E2C53628F9;\n\tThu, 27 Aug 2020 12:17:36 +0200 (CEST)","from mail-lj1-x241.google.com (mail-lj1-x241.google.com\n\t[IPv6:2a00:1450:4864:20::241])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EE4DA6037A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Aug 2020 12:17:35 +0200 (CEST)","by mail-lj1-x241.google.com with SMTP id v9so5776808ljk.6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Aug 2020 03:17:35 -0700 (PDT)"],"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=\"lkOlmvih\"; 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=nCV6QjJ5SLRQDXFFRTLoLbHVDq0eeqdWf1UQzBQGWxc=;\n\tb=lkOlmvih5GbVfzWxdOWqM0i9m9FXLgaE9SKEW0WWodIUU4iNol3j6LqSqcmcHvErgW\n\t+cUXVEPs6BGLaQPVnJyaICEoSsRumbsVzPkXpmCFnDoaebQ6v6bQQJgEEZp43ouwrRD5\n\tbVgHqArvLaGG884prdQ46u6OlJ7AZb+cP731gZrtVSMmDYOVeC6GReFTgfwlZgzIaElA\n\tAFAp7yoZQZOMqUpU51hGBsFX5H++8jZyZTEkeTveu9UX1ZWsz5i3M2tr6TbbKF277fGm\n\tQj+Bi+VbZIsppckP+u2e4guqDqGTH6LcvGeOY88SS8b+wEaHyadr2lfcaYQfvFPfMBHK\n\tDGRw==","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=nCV6QjJ5SLRQDXFFRTLoLbHVDq0eeqdWf1UQzBQGWxc=;\n\tb=lxsS48dNyv/h9bcIhusIA48tl1jbKEGkYJWv9RDpYGrwpNM6cBbgBq9/7s6T9AOSVi\n\tZgz5vLzcPHR6PwjKXAxtbMHXLVKiGHfFBuUgajQKSU83dW8GGr92H5TVXQcwGlyt4SMc\n\tG1rV2X0r7pX00vl6cSQsFhE5zLWWXFgMo3yHYa5vP2p1hackfTF+hV0Q/cZAZ5vi2Mmw\n\tAjoERcINo7SMfVfze2hV/AHYd/24O8J6eRHEcBPIXCU4FC7ptlASh0ri7lOquNNfn41g\n\tA3+6/B7dgNbLv4KQ5Fn7mP5mVrAjVRsO2FcK4uAENdtYkr1gDodrxpeHgbng27+uxZ4h\n\tOlvA==","X-Gm-Message-State":"AOAM5312K/gdCvsOh7PXpjS5/6TJQB/q7pdV/NBfW7ug3b2uiFx1wzBx\n\tWJ0rnA9ahhrpdonqIlCp6eIRkGQp3sZS1SaEeaWP2XQvs40yKQ==","X-Google-Smtp-Source":"ABdhPJxDMsTBIty3SxjtBhuqfpdhn+Orc9T4uTbBCypZ82mEPcigSBFtmkMzy6OLyudKtO80GI4WsULNR+1gvuaPSx4=","X-Received":"by 2002:a2e:8705:: with SMTP id m5mr9669590lji.103.1598523455343;\n\tThu, 27 Aug 2020 03:17:35 -0700 (PDT)","MIME-Version":"1.0","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>\n\t<CAEmqJPpBxXVOqDFJc6A6gOahrLFBbAWHY6CsfpOkqKh46qi78Q@mail.gmail.com>\n\t<d5428c0a-9c97-0242-e1b6-5f64fde7f391@ideasonboard.com>","In-Reply-To":"<d5428c0a-9c97-0242-e1b6-5f64fde7f391@ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Thu, 27 Aug 2020 11:17:17 +0100","Message-ID":"<CAEmqJPp9Nhoc9a+W=vX9=mrMj+TzRy4n6hUkAXT9zHp5YbHBRA@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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":12169,"web_url":"https://patchwork.libcamera.org/comment/12169/","msgid":"<bd21d884-5e82-7f29-ba08-0f223039166f@ideasonboard.com>","date":"2020-08-27T10:44:15","subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Naush,\n\nOn 27/08/2020 11:17, Naushir Patuck wrote:\n> Hi Kieran,\n> \n> \n> On Thu, 27 Aug 2020 at 10:57, Kieran Bingham\n> <kieran.bingham@ideasonboard.com> wrote:\n>>\n>> Hi Naush,\n>>\n>> On 27/08/2020 09:30, Naushir Patuck wrote:\n>>> Hi all,\n>>>\n>>> Another gentle ping for a review and submission of this patch please.\n>>\n>> This has a tag from both me and Laurent, so I don't see any reason it\n>> can't already be in.\n> \n> Yes, this can go in as-is.  Thanks!\n> \n>>\n>> We'll have to look at how to optimise the integration paths for\n>> contributions, as we of course just push our own patches after review.\n>>\n>> I wonder if it would help to make a pull-request (git-request-pull) when\n>> a series is ready.\n>>\n>> I don't want to add extra burden to you though, and I can't see any\n>> reason not to apply this now.\n>>\n> \n> I do not have a problem doing an extra git-request-pull when a patch\n> is ready if that helps the workflow for you and the team.  I'm sure\n> other external contributors would not have a problem either :)  Let me\n> know if this is the preferred way going forward.\n\nFor this one, I think it wasn't obvious at a glance it was ready to go\nin, so it got missed (it's in now).\n\nWe have a patchwork instance running, but it still needs some more\nrefinement to hook up the mail server correctly. I've also got a bot\nrunning against that instance to automate tasks - so I think perhaps\nthat a good addition would be to have mail reminders from the bot if it\nsees a patch with sufficient RB tags, which is not yet integrated.\n\n--\nKieran\n\n\n\n> Regards,\n> Naush\n> \n>> Pushing ...\n>>\n>>\n>> I'll try to work through the status of the other raw patches now.\n>> --\n>> Kieran\n>>\n>>\n>>> Thanks,\n>>> Naush\n>>>\n>>> On Fri, 7 Aug 2020 at 13:12, Naushir Patuck <naush@raspberrypi.com> wrote:\n>>>>\n>>>> Hi all,\n>>>>\n>>>> Just a gentle ping for the below change to be submitted when you can.\n>>>>\n>>>> Regards,\n>>>> Naush\n>>>>\n>>>> On Tue, 21 Jul 2020 at 10:23, Naushir Patuck <naush@raspberrypi.com> wrote:\n>>>>>\n>>>>> The default sensor orientation must be set early on in match() to ensure\n>>>>> generateConfiguration() and configure() return out the correct Bayer\n>>>>> ordering to the application. This is particularly important for RAW\n>>>>> capture streams.\n>>>>>\n>>>>> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n>>>>> ---\n>>>>>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 14 +++++++-------\n>>>>>  1 file changed, 7 insertions(+), 7 deletions(-)\n>>>>>\n>>>>> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n>>>>> index bf1c7714..e9084afd 100644\n>>>>> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n>>>>> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n>>>>> @@ -962,6 +962,13 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)\n>>>>>         /* Initialize the camera properties. */\n>>>>>         data->properties_ = data->sensor_->properties();\n>>>>>\n>>>>> +       /* Configure the H/V flip controls based on the sensor rotation. */\n>>>>> +       ControlList ctrls(data->unicam_[Unicam::Image].dev()->controls());\n>>>>> +       int32_t rotation = data->properties_.get(properties::Rotation);\n>>>>> +       ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n>>>>> +       ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n>>>>> +       data->unicam_[Unicam::Image].dev()->setControls(&ctrls);\n>>>>> +\n>>>>>         /*\n>>>>>          * List the available output streams.\n>>>>>          * Currently cannot do Unicam streams!\n>>>>> @@ -1165,13 +1172,6 @@ int RPiCameraData::configureIPA()\n>>>>>                                               { V4L2_CID_EXPOSURE, result.data[1] } });\n>>>>>                         sensorMetadata_ = result.data[2];\n>>>>>                 }\n>>>>> -\n>>>>> -               /* Configure the H/V flip controls based on the sensor rotation. */\n>>>>> -               ControlList ctrls(unicam_[Unicam::Image].dev()->controls());\n>>>>> -               int32_t rotation = sensor_->properties().get(properties::Rotation);\n>>>>> -               ctrls.set(V4L2_CID_HFLIP, static_cast<int32_t>(!!rotation));\n>>>>> -               ctrls.set(V4L2_CID_VFLIP, static_cast<int32_t>(!!rotation));\n>>>>> -               unicam_[Unicam::Image].dev()->setControls(&ctrls);\n>>>>>         }\n>>>>>\n>>>>>         if (result.operation & RPI_IPA_CONFIG_SENSOR) {\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>>>\n>>\n>> --\n>> Regards\n>> --\n>> Kieran","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 E8ACDBF019\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Aug 2020 10:44:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 69E1362901;\n\tThu, 27 Aug 2020 12:44:20 +0200 (CEST)","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 EE663628D4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Aug 2020 12:44:18 +0200 (CEST)","from [192.168.0.20]\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 4C3129B1;\n\tThu, 27 Aug 2020 12:44:18 +0200 (CEST)"],"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=\"mPGXBlDR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1598525058;\n\tbh=f+EyC0m08OD067OEj6kanQc9E+cQEByqV9qei3U1gn0=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=mPGXBlDR18dFB8rP6D+w0BWoWtbAz392iWYd058q7A0Bw7/XFohAqH/cP/59Y26ay\n\tcxkGYXV+YjRF7Onr/I68U8LGhiw6RSB1c5nnWeg/Vk/0aYSFn2xNbuoz8njyHDAGPT\n\tuf6qpVdmtPM73lDe5gu5O/cXnGnnSOjkjFjooMXQ=","To":"Naushir Patuck <naush@raspberrypi.com>","References":"<20200721092306.823447-1-naush@raspberrypi.com>\n\t<CAEmqJPp_8XU1mdNyjsinz8=+=5rROKogouu4EX6-ze6xrHqmNg@mail.gmail.com>\n\t<CAEmqJPpBxXVOqDFJc6A6gOahrLFBbAWHY6CsfpOkqKh46qi78Q@mail.gmail.com>\n\t<d5428c0a-9c97-0242-e1b6-5f64fde7f391@ideasonboard.com>\n\t<CAEmqJPp9Nhoc9a+W=vX9=mrMj+TzRy4n6hUkAXT9zHp5YbHBRA@mail.gmail.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<bd21d884-5e82-7f29-ba08-0f223039166f@ideasonboard.com>","Date":"Thu, 27 Aug 2020 11:44:15 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<CAEmqJPp9Nhoc9a+W=vX9=mrMj+TzRy4n6hUkAXT9zHp5YbHBRA@mail.gmail.com>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH] pipeline: raspberrypi: Set sensor\n\tdefault orientation before configure()","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>","Reply-To":"kieran.bingham@ideasonboard.com","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>"}}]