[{"id":26228,"web_url":"https://patchwork.libcamera.org/comment/26228/","msgid":"<CAHW6GYJjbEEfmsm_Umh8s_3uy_8az50s_4Ac4kvEBhkmJtOPgw@mail.gmail.com>","date":"2023-01-16T11:54:48","subject":"Re: [libcamera-devel] [PATCH v2 1/5] libcamera: camera_sensor:\n\tVerify flips support","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi Jacopo\n\nThanks for the patch!\n\nOn Sat, 14 Jan 2023 at 19:47, Jacopo Mondi\n<jacopo.mondi@ideasonboard.com> wrote:\n>\n> During the camera sensor driver validation, verify if the sensor\n> supports horizontal and vertical flips and store a flag as\n> CameraSensor::supportFlips_ class member.\n>\n> The flag will be later inspected when applying flips.\n>\n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThis looks good to me! I know that we should at some point consider\nhandling h and v flips separately, but obviously that will be a\nseparate future change.\n\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\n\nThanks!\nDavid\n\n> ---\n>  include/libcamera/internal/camera_sensor.h |  1 +\n>  src/libcamera/camera_sensor.cpp            | 18 +++++++++++++++++-\n>  2 files changed, 18 insertions(+), 1 deletion(-)\n>\n> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h\n> index b9f4d7867854..878f3c28a3c9 100644\n> --- a/include/libcamera/internal/camera_sensor.h\n> +++ b/include/libcamera/internal/camera_sensor.h\n> @@ -101,6 +101,7 @@ private:\n>         Size pixelArraySize_;\n>         Rectangle activeArea_;\n>         const BayerFormat *bayerFormat_;\n> +       bool supportFlips_;\n>\n>         ControlList properties_;\n>\n> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\n> index a210aa4fa370..83ac075a4265 100644\n> --- a/src/libcamera/camera_sensor.cpp\n> +++ b/src/libcamera/camera_sensor.cpp\n> @@ -55,7 +55,8 @@ LOG_DEFINE_CATEGORY(CameraSensor)\n>   */\n>  CameraSensor::CameraSensor(const MediaEntity *entity)\n>         : entity_(entity), pad_(UINT_MAX), staticProps_(nullptr),\n> -         bayerFormat_(nullptr), properties_(properties::properties)\n> +         bayerFormat_(nullptr), supportFlips_(false),\n> +         properties_(properties::properties)\n>  {\n>  }\n>\n> @@ -247,6 +248,21 @@ int CameraSensor::validateSensorDriver()\n>                 }\n>         }\n>\n> +       /*\n> +        * Verify if sensor supports horizontal/vertical flips\n> +        *\n> +        * \\todo Handle horizontal and vertical flips independently.\n> +        */\n> +       const struct v4l2_query_ext_ctrl *hflipInfo = subdev_->controlInfo(V4L2_CID_HFLIP);\n> +       const struct v4l2_query_ext_ctrl *vflipInfo = subdev_->controlInfo(V4L2_CID_VFLIP);\n> +       if (hflipInfo && !(hflipInfo->flags & V4L2_CTRL_FLAG_READ_ONLY) &&\n> +           vflipInfo && !(vflipInfo->flags & V4L2_CTRL_FLAG_READ_ONLY))\n> +               supportFlips_ = true;\n> +\n> +       if (!supportFlips_)\n> +               LOG(CameraSensor, Warning)\n> +                       << \"Camera sensor does not support horizontal/vertical flip\";\n> +\n>         /*\n>          * Make sure the required selection targets are supported.\n>          *\n> --\n> 2.39.0\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 52E3FC3240\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Jan 2023 11:55:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 83078625E4;\n\tMon, 16 Jan 2023 12:55:02 +0100 (CET)","from mail-oi1-x233.google.com (mail-oi1-x233.google.com\n\t[IPv6:2607:f8b0:4864:20::233])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D8DB461F01\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Jan 2023 12:55:00 +0100 (CET)","by mail-oi1-x233.google.com with SMTP id p133so7827400oig.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Jan 2023 03:55:00 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1673870102;\n\tbh=NoH0uVFS2mrmTVkUg4vmJVc06uwNANaL+IWqehOi27A=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=vlnfekD0nwWiJ5QX2c7taitgWMOj3q5WcihPK+GYEguTO29H8Vm0sIqglLgdqcZdA\n\tORuYJT1KP4XqY02lxfUzzAVU1X7kGyMK4LP1IFIs3t64ukmz+MvAEC5QCQkeTHgW3x\n\tUjBGlTFnMmsk5glWqAO7aQPx4ND+veuXdvAzxDIIRYha5r6JLCk4g6neAjT+aQpOlP\n\tBC1nDin6J/RuDbP8y/1A5J2yNZi0BT+0aC5SIC2IW18clXGlzDvnZQ5VcNEsHp5ntt\n\tawDguO4i5TaPopxQiZnLLZlhQdzS6QrMEHzHKxePlnDv1c3ClX8ydLiOxXeuVdDOfr\n\t1dPyhPSkUaqkw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=7jPwjFT+gvgJG5lz5MG6TyuXS+eX3YEVkWiJYIwlBac=;\n\tb=s0VT5PgJTuWg+JHro0WPa/W6eb9lC1Q5Dse0DdO17fNjBBEI6L+ITck5O7Fw+x+ts8\n\tSCOvYcJblVXIQH+llHcjLqWaxJT+Ire/inrNyqLWj1mqvrjXRgydLAvzugI6dlGhRqc4\n\tLNxp+5uG3W0jdPOPXXJtcNX+/tSnRrUEZVZugUrMhXCBjvfTVaxg0UKfBM/tuHMdhYbq\n\t28enojfRfjnO55sljakWiPnZD1z5RTDs3ZNTbEYLyysBWgUKR+TbrYbo5r1hO+IjtARD\n\tfN93G3rtZuk+KU+9CRpEBR3qVNlYEX8qcrGyZrZXDvtZrlztrEjRbfd8zXpRpTMMPRXU\n\tMZxA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"s0VT5PgJ\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=7jPwjFT+gvgJG5lz5MG6TyuXS+eX3YEVkWiJYIwlBac=;\n\tb=aUEiNwqsW5/s+r/Cd8vHdqaaCIwFYiis7AADD0d8dSsqccEbDxBMLmWOw02kBsP/6X\n\tiDOC1wqCmhabgocZ85TqEvTj1QqoLi5m/0PSSg998JZv0eoQ3tXNSIKpm7yvs3f/L4ph\n\tOY2qoOSH+y90MaBl1QBWkZPKR0R9+FTKszBJbbmqajMO9/OEl5FoBJQrw9kB5b7flzdV\n\tmYpsp1wUDJ6M3EpFRWZJsnMQh1B8VTnluoRJUHZr/SUB8hUJdm8a7sD8oVAAov4/osX9\n\t3AP7FbgCiaPHktEzueaNHstcD6b22zq4QiJfGUF/QeZDg/7K8gkZdrnqVUq3/y8i3G8i\n\t8CLg==","X-Gm-Message-State":"AFqh2kr2JyfGMCRgwMolMxdS2gCTUUlJ5Rq9E9ig0qZNN2bg+IUyTI7Q\n\tJlIdsE2renHtRqE6Z4TwJrnuyUS5LFG7/E0igJyq7wq5iRgLZg==","X-Google-Smtp-Source":"AMrXdXs3bMcQnSKmqU6qtiBTDHuuCg1rJqW+anaTSlRw8C7LfGH/E0t47BLuT0hrMHW/0r+5W15k8FN8j4CEL8seqXQ=","X-Received":"by 2002:a05:6808:196:b0:360:fbf1:4489 with SMTP id\n\tw22-20020a056808019600b00360fbf14489mr5183946oic.20.1673870099498;\n\tMon, 16 Jan 2023 03:54:59 -0800 (PST)","MIME-Version":"1.0","References":"<20230114194712.23272-1-jacopo.mondi@ideasonboard.com>\n\t<20230114194712.23272-2-jacopo.mondi@ideasonboard.com>","In-Reply-To":"<20230114194712.23272-2-jacopo.mondi@ideasonboard.com>","Date":"Mon, 16 Jan 2023 11:54:48 +0000","Message-ID":"<CAHW6GYJjbEEfmsm_Umh8s_3uy_8az50s_4Ac4kvEBhkmJtOPgw@mail.gmail.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 1/5] libcamera: camera_sensor:\n\tVerify flips support","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]