[{"id":34105,"web_url":"https://patchwork.libcamera.org/comment/34105/","msgid":"<igcb2jkgi6mgnvtaph5ehg2ubc43nzj7sgzzj4fhjio2pmb2if@5ugoexj5wrt3>","date":"2025-05-02T08:31:55","subject":"Re: [PATCH 3/3] apps: cam: Support full orientation options","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Kieran\n\nOn Thu, May 01, 2025 at 03:16:09PM +0100, Kieran Bingham wrote:\n> The Orientation control was implemented in commit 7e5f1e1cedf5 \"apps:\n\nnit: could you use the canonical commit reference style ?\n\nThe Orientation control was implemented in commit 7e5f1e1cedf5 (\"apps:\n cam: Add option to set stream orientation\") but did not fully add all of\n\n> cam: Add option to set stream orientation\" but did not fully add all of\n> the supported Orientation types.\n>\n> The upcoming dewarp support on RkISP1 will provide full rotation\n> implementation options, including previously difficult '90' degree\n> rotations.\n>\n> Extend the cam application to support setting any of the valid options.\n>\n> The existing 'mirror' and 'flip' options are not consistent with the\n\nWhere are these existing already ?\n\n> rest of the option definitions, but maintain them as useful aliases to\n> their corresponding type.\n>\n> Fixes: 7e5f1e1cedf5 (\"apps: cam: Add option to set stream orientation\")\n\nNot really a fixes..\n\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> ---\n> It might be debatable if this really is a 'Fixes' as the existing commit\n> wasn't broken - just not fully implemented - however the full set of\n> Orientation types were there at the time the patch was merged.\n\nAh yes. Doesn't matter at all to me\n\n>\n>  src/apps/cam/camera_session.cpp | 9 +++++++++\n>  src/apps/cam/main.cpp           | 5 ++++-\n>  2 files changed, 13 insertions(+), 1 deletion(-)\n>\n> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n> index f63fcb228519..43188133d9cb 100644\n> --- a/src/apps/cam/camera_session.cpp\n> +++ b/src/apps/cam/camera_session.cpp\n> @@ -97,7 +97,16 @@ CameraSession::CameraSession(CameraManager *cm,\n>  \t\tstd::string orientOpt = options_[OptOrientation].toString();\n>  \t\tstatic const std::map<std::string, libcamera::Orientation> orientations{\n>  \t\t\t{ \"rot0\", libcamera::Orientation::Rotate0 },\n> +\t\t\t{ \"rot90\", libcamera::Orientation::Rotate90 },\n>  \t\t\t{ \"rot180\", libcamera::Orientation::Rotate180 },\n> +\t\t\t{ \"rot270\", libcamera::Orientation::Rotate270 },\n> +\n> +\t\t\t{ \"rot0mirror\", libcamera::Orientation::Rotate0Mirror },\n> +\t\t\t{ \"rot90mirror\", libcamera::Orientation::Rotate90Mirror },\n> +\t\t\t{ \"rot180mirror\", libcamera::Orientation::Rotate180Mirror },\n> +\t\t\t{ \"rot270mirror\", libcamera::Orientation::Rotate270Mirror },\n> +\n> +\t\t\t/* Helpful aliases */\n>  \t\t\t{ \"mirror\", libcamera::Orientation::Rotate0Mirror },\n>  \t\t\t{ \"flip\", libcamera::Orientation::Rotate180Mirror },\n>  \t\t};\n> diff --git a/src/apps/cam/main.cpp b/src/apps/cam/main.cpp\n> index fa266eca6d30..f1495a2db465 100644\n> --- a/src/apps/cam/main.cpp\n> +++ b/src/apps/cam/main.cpp\n> @@ -136,7 +136,10 @@ int CamApp::parseOptions(int argc, char *argv[])\n>  \t\t\t OptCamera);\n>\n>  \tparser.addOption(OptOrientation, OptionString,\n> -\t\t\t \"Desired image orientation (rot0, rot180, mirror, flip)\",\n> +\t\t\t \"Desired image orientation. Supported values:\\n\"\n> +\t\t\t \"- rot0, rot90, rot180, rot270,\\n\"\n> +\t\t\t \"- rot0mirror, rot90mirror, rot180mirror, rot270mirror,\\n\"\n> +\t\t\t \"- mirror (alias for rot0mirror), flip (alias for rot180mirror)\",\n>  \t\t\t \"orientation\", ArgumentRequired, \"orientation\", false,\n>  \t\t\t OptCamera);\n\nHave you tested this on a platform that doesn't support\ntranspositions?\n\nWith the above confirmed\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n  j\n\n\n>  #ifdef HAVE_KMS\n> --\n> 2.48.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 61402C327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  2 May 2025 08:32:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 842FD68AD8;\n\tFri,  2 May 2025 10:32:00 +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 4FE4668ACB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  2 May 2025 10:31:59 +0200 (CEST)","from ideasonboard.com (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 70158353;\n\tFri,  2 May 2025 10:31:51 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"QRucyJbh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1746174711;\n\tbh=6DMBr+bG3iuOFPoE7vCIhcChr+p+HeZTHmJLIsPGKwc=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=QRucyJbh30FPyb9e8TZ/89AqodDsuokE1gk2nJ35dgil8VgqX/ZKFpcWwI+wByIkf\n\t7mk6Jn7Lox23ZJPkjX38FgRrHVi24Gb7RsLIp9CIIMGtAhefn0d2hh6O5jJ3MBBBbP\n\tBq+KAsqWtP0H73SRz+RTaxQIJpdvHC+QmTSpAMVc=","Date":"Fri, 2 May 2025 10:31:55 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Subject":"Re: [PATCH 3/3] apps: cam: Support full orientation options","Message-ID":"<igcb2jkgi6mgnvtaph5ehg2ubc43nzj7sgzzj4fhjio2pmb2if@5ugoexj5wrt3>","References":"<20250501141609.717148-1-kieran.bingham@ideasonboard.com>\n\t<20250501141609.717148-4-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20250501141609.717148-4-kieran.bingham@ideasonboard.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":34107,"web_url":"https://patchwork.libcamera.org/comment/34107/","msgid":"<174618033954.1586992.11701135900899368456@ping.linuxembedded.co.uk>","date":"2025-05-02T10:05:39","subject":"Re: [PATCH 3/3] apps: cam: Support full orientation options","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Jacopo Mondi (2025-05-02 09:31:55)\n> Hi Kieran\n> \n> On Thu, May 01, 2025 at 03:16:09PM +0100, Kieran Bingham wrote:\n> > The Orientation control was implemented in commit 7e5f1e1cedf5 \"apps:\n> \n> nit: could you use the canonical commit reference style ?\n\nArgh - the brackets got dropped/lost somehow in escaping on the\ncommandline. But yes I'll fix this.\n\n> The Orientation control was implemented in commit 7e5f1e1cedf5 (\"apps:\n>  cam: Add option to set stream orientation\") but did not fully add all of\n> \n> > cam: Add option to set stream orientation\" but did not fully add all of\n> > the supported Orientation types.\n> >\n> > The upcoming dewarp support on RkISP1 will provide full rotation\n> > implementation options, including previously difficult '90' degree\n> > rotations.\n> >\n> > Extend the cam application to support setting any of the valid options.\n> >\n> > The existing 'mirror' and 'flip' options are not consistent with the\n> \n> Where are these existing already ?\n\nIn your commit you added at 7e5f1e1cedf5 in cam/camera_session.cpp in 2023 ;-)\n> \n> > rest of the option definitions, but maintain them as useful aliases to\n> > their corresponding type.\n> >\n> > Fixes: 7e5f1e1cedf5 (\"apps: cam: Add option to set stream orientation\")\n> \n> Not really a fixes..\n\nIndeed, hence below ... mayb I'll remove it in fact, it wasn't \"broken\"\njust reduced functionality.\n\nMostly I only care about the tags as a way of highlighting things in the\nrelease notes ;-)\n\n> > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > ---\n> > It might be debatable if this really is a 'Fixes' as the existing commit\n> > wasn't broken - just not fully implemented - however the full set of\n> > Orientation types were there at the time the patch was merged.\n> \n> Ah yes. Doesn't matter at all to me\n> \n> >\n> >  src/apps/cam/camera_session.cpp | 9 +++++++++\n> >  src/apps/cam/main.cpp           | 5 ++++-\n> >  2 files changed, 13 insertions(+), 1 deletion(-)\n> >\n> > diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n> > index f63fcb228519..43188133d9cb 100644\n> > --- a/src/apps/cam/camera_session.cpp\n> > +++ b/src/apps/cam/camera_session.cpp\n> > @@ -97,7 +97,16 @@ CameraSession::CameraSession(CameraManager *cm,\n> >               std::string orientOpt = options_[OptOrientation].toString();\n> >               static const std::map<std::string, libcamera::Orientation> orientations{\n> >                       { \"rot0\", libcamera::Orientation::Rotate0 },\n> > +                     { \"rot90\", libcamera::Orientation::Rotate90 },\n> >                       { \"rot180\", libcamera::Orientation::Rotate180 },\n> > +                     { \"rot270\", libcamera::Orientation::Rotate270 },\n> > +\n> > +                     { \"rot0mirror\", libcamera::Orientation::Rotate0Mirror },\n> > +                     { \"rot90mirror\", libcamera::Orientation::Rotate90Mirror },\n> > +                     { \"rot180mirror\", libcamera::Orientation::Rotate180Mirror },\n> > +                     { \"rot270mirror\", libcamera::Orientation::Rotate270Mirror },\n> > +\n> > +                     /* Helpful aliases */\n> >                       { \"mirror\", libcamera::Orientation::Rotate0Mirror },\n> >                       { \"flip\", libcamera::Orientation::Rotate180Mirror },\n> >               };\n> > diff --git a/src/apps/cam/main.cpp b/src/apps/cam/main.cpp\n> > index fa266eca6d30..f1495a2db465 100644\n> > --- a/src/apps/cam/main.cpp\n> > +++ b/src/apps/cam/main.cpp\n> > @@ -136,7 +136,10 @@ int CamApp::parseOptions(int argc, char *argv[])\n> >                        OptCamera);\n> >\n> >       parser.addOption(OptOrientation, OptionString,\n> > -                      \"Desired image orientation (rot0, rot180, mirror, flip)\",\n> > +                      \"Desired image orientation. Supported values:\\n\"\n> > +                      \"- rot0, rot90, rot180, rot270,\\n\"\n> > +                      \"- rot0mirror, rot90mirror, rot180mirror, rot270mirror,\\n\"\n> > +                      \"- mirror (alias for rot0mirror), flip (alias for rot180mirror)\",\n> >                        \"orientation\", ArgumentRequired, \"orientation\", false,\n> >                        OptCamera);\n> \n> Have you tested this on a platform that doesn't support\n> transpositions?\n\nNo I haven't yet actually - but I don't think 'some platforms not\nsupporting' should limit the api options from cam.\n\nI would expect that the platform should adjust or return invalid - and\nif it doesn't - that's a fault of the pipeline handler - not cam.\n\n> With the above confirmed\n> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> \n\n\nThanks\n\nKieran\n\n> Thanks\n>   j\n> \n> \n> >  #ifdef HAVE_KMS\n> > --\n> > 2.48.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 4A2FCC327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  2 May 2025 10:05:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4C72A68ADC;\n\tFri,  2 May 2025 12:05:44 +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 74E4968AD3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  2 May 2025 12:05:42 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9BBB6353;\n\tFri,  2 May 2025 12:05:34 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"T/ExoV7N\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1746180334;\n\tbh=PyJjVMwji506JqXw+I134BgqMC4YZaB0wYp8CVHGOoQ=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=T/ExoV7NW8v62PDdxIGRoiE78wfgaOUjjiffx1DeEcK+JMQv7MAEw71heTPtOgojt\n\tsOXQmFDsxj02edCNQPUK8/9lcXZ9XANMGrirdP+oRirNpmW2tqVOVcy5/jYNL0pV+M\n\tB6O4xK5eK6KmFWZyxZEcvamwssYDAy/ChD9QMxXc=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<igcb2jkgi6mgnvtaph5ehg2ubc43nzj7sgzzj4fhjio2pmb2if@5ugoexj5wrt3>","References":"<20250501141609.717148-1-kieran.bingham@ideasonboard.com>\n\t<20250501141609.717148-4-kieran.bingham@ideasonboard.com>\n\t<igcb2jkgi6mgnvtaph5ehg2ubc43nzj7sgzzj4fhjio2pmb2if@5ugoexj5wrt3>","Subject":"Re: [PATCH 3/3] apps: cam: Support full orientation options","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Date":"Fri, 02 May 2025 11:05:39 +0100","Message-ID":"<174618033954.1586992.11701135900899368456@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":34110,"web_url":"https://patchwork.libcamera.org/comment/34110/","msgid":"<763ex3nufr2nnhnqwsoopqylnl5gvpfdt6hhkrmaxoiu6cdtja@2slzf6dystmn>","date":"2025-05-02T10:15:10","subject":"Re: [PATCH 3/3] apps: cam: Support full orientation options","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Kieran\n\nOn Fri, May 02, 2025 at 11:05:39AM +0100, Kieran Bingham wrote:\n> Quoting Jacopo Mondi (2025-05-02 09:31:55)\n> > Hi Kieran\n> >\n> > On Thu, May 01, 2025 at 03:16:09PM +0100, Kieran Bingham wrote:\n> > > The Orientation control was implemented in commit 7e5f1e1cedf5 \"apps:\n> >\n> > nit: could you use the canonical commit reference style ?\n>\n> Argh - the brackets got dropped/lost somehow in escaping on the\n> commandline. But yes I'll fix this.\n>\n> > The Orientation control was implemented in commit 7e5f1e1cedf5 (\"apps:\n> >  cam: Add option to set stream orientation\") but did not fully add all of\n> >\n> > > cam: Add option to set stream orientation\" but did not fully add all of\n> > > the supported Orientation types.\n> > >\n> > > The upcoming dewarp support on RkISP1 will provide full rotation\n> > > implementation options, including previously difficult '90' degree\n> > > rotations.\n> > >\n> > > Extend the cam application to support setting any of the valid options.\n> > >\n> > > The existing 'mirror' and 'flip' options are not consistent with the\n> >\n> > Where are these existing already ?\n>\n> In your commit you added at 7e5f1e1cedf5 in cam/camera_session.cpp in 2023 ;-)\n> >\n> > > rest of the option definitions, but maintain them as useful aliases to\n> > > their corresponding type.\n> > >\n> > > Fixes: 7e5f1e1cedf5 (\"apps: cam: Add option to set stream orientation\")\n> >\n> > Not really a fixes..\n>\n> Indeed, hence below ... mayb I'll remove it in fact, it wasn't \"broken\"\n> just reduced functionality.\n>\n> Mostly I only care about the tags as a way of highlighting things in the\n> release notes ;-)\n>\n> > > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > >\n> > > ---\n> > > It might be debatable if this really is a 'Fixes' as the existing commit\n> > > wasn't broken - just not fully implemented - however the full set of\n> > > Orientation types were there at the time the patch was merged.\n> >\n> > Ah yes. Doesn't matter at all to me\n> >\n> > >\n> > >  src/apps/cam/camera_session.cpp | 9 +++++++++\n> > >  src/apps/cam/main.cpp           | 5 ++++-\n> > >  2 files changed, 13 insertions(+), 1 deletion(-)\n> > >\n> > > diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n> > > index f63fcb228519..43188133d9cb 100644\n> > > --- a/src/apps/cam/camera_session.cpp\n> > > +++ b/src/apps/cam/camera_session.cpp\n> > > @@ -97,7 +97,16 @@ CameraSession::CameraSession(CameraManager *cm,\n> > >               std::string orientOpt = options_[OptOrientation].toString();\n> > >               static const std::map<std::string, libcamera::Orientation> orientations{\n> > >                       { \"rot0\", libcamera::Orientation::Rotate0 },\n> > > +                     { \"rot90\", libcamera::Orientation::Rotate90 },\n> > >                       { \"rot180\", libcamera::Orientation::Rotate180 },\n> > > +                     { \"rot270\", libcamera::Orientation::Rotate270 },\n> > > +\n> > > +                     { \"rot0mirror\", libcamera::Orientation::Rotate0Mirror },\n> > > +                     { \"rot90mirror\", libcamera::Orientation::Rotate90Mirror },\n> > > +                     { \"rot180mirror\", libcamera::Orientation::Rotate180Mirror },\n> > > +                     { \"rot270mirror\", libcamera::Orientation::Rotate270Mirror },\n> > > +\n> > > +                     /* Helpful aliases */\n> > >                       { \"mirror\", libcamera::Orientation::Rotate0Mirror },\n> > >                       { \"flip\", libcamera::Orientation::Rotate180Mirror },\n> > >               };\n> > > diff --git a/src/apps/cam/main.cpp b/src/apps/cam/main.cpp\n> > > index fa266eca6d30..f1495a2db465 100644\n> > > --- a/src/apps/cam/main.cpp\n> > > +++ b/src/apps/cam/main.cpp\n> > > @@ -136,7 +136,10 @@ int CamApp::parseOptions(int argc, char *argv[])\n> > >                        OptCamera);\n> > >\n> > >       parser.addOption(OptOrientation, OptionString,\n> > > -                      \"Desired image orientation (rot0, rot180, mirror, flip)\",\n> > > +                      \"Desired image orientation. Supported values:\\n\"\n> > > +                      \"- rot0, rot90, rot180, rot270,\\n\"\n> > > +                      \"- rot0mirror, rot90mirror, rot180mirror, rot270mirror,\\n\"\n> > > +                      \"- mirror (alias for rot0mirror), flip (alias for rot180mirror)\",\n> > >                        \"orientation\", ArgumentRequired, \"orientation\", false,\n> > >                        OptCamera);\n> >\n> > Have you tested this on a platform that doesn't support\n> > transpositions?\n>\n> No I haven't yet actually - but I don't think 'some platforms not\n> supporting' should limit the api options from cam.\n\nAbsolutely, I wasn't implying that.\n\n-Ideally- we should only list the supported rotations, but that's not\nsomething our API supports afaict. And this is cam anyway, so best\neffort at most.\n\n>\n> I would expect that the platform should adjust or return invalid - and\n> if it doesn't - that's a fault of the pipeline handler - not cam.\n\nYes, just wanted to make sure passing in an invalid roation doesn't\ncause unexpected issues.\n\n>\n> > With the above confirmed\n> > Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> >\n>\n>\n> Thanks\n>\n> Kieran\n>\n> > Thanks\n> >   j\n> >\n> >\n> > >  #ifdef HAVE_KMS\n> > > --\n> > > 2.48.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 EE2E3C327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  2 May 2025 10:15:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2F1CC68AD8;\n\tFri,  2 May 2025 12:15:15 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8A53468AD3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  2 May 2025 12:15:13 +0200 (CEST)","from ideasonboard.com (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 84C1DA98;\n\tFri,  2 May 2025 12:15:05 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"VMUMdx8r\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1746180905;\n\tbh=6v9ydgh3J0yToOA1hsiPHJUTPsHuwkwQWvKbk4RZH8Q=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=VMUMdx8rKpd6z4+bbP5XcZ0NTOEXVuZeQtY64Ooc41X9i0GNXLCnL4rpvl0j6De7r\n\t4olrTP2R4miq0ZocwNTi3Mf1vi+Ss3x19akAXedJ+qAIAiNeNH31v0i/US9XpkwUOk\n\txvFP5p3HEuahI+4E4bYpoanh5cxboSBXbP64lkKw=","Date":"Fri, 2 May 2025 12:15:10 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, \n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","Subject":"Re: [PATCH 3/3] apps: cam: Support full orientation options","Message-ID":"<763ex3nufr2nnhnqwsoopqylnl5gvpfdt6hhkrmaxoiu6cdtja@2slzf6dystmn>","References":"<20250501141609.717148-1-kieran.bingham@ideasonboard.com>\n\t<20250501141609.717148-4-kieran.bingham@ideasonboard.com>\n\t<igcb2jkgi6mgnvtaph5ehg2ubc43nzj7sgzzj4fhjio2pmb2if@5ugoexj5wrt3>\n\t<174618033954.1586992.11701135900899368456@ping.linuxembedded.co.uk>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<174618033954.1586992.11701135900899368456@ping.linuxembedded.co.uk>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]