[{"id":37488,"web_url":"https://patchwork.libcamera.org/comment/37488/","msgid":"<20260106010713.GO10026@pendragon.ideasonboard.com>","date":"2026-01-06T01:07:13","subject":"Re: [PATCH v2] v4l2_camera_proxy: Fix for getting deafult\n\tcontrols::FrameDurationLimits","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Typo in the subject line, s/deafult/default/. While at it, I'd add a\n\"v4l2: \" prefix:\n\nv4l2: v4l2_camera_proxy: Fix for getting default FrameDurationLimits\n\nOn Mon, Jan 05, 2026 at 02:31:45PM +0000, Naushir Patuck wrote:\n> The default values for controls::FrameDurationLimits is now an array but\n> the v4l2 proxy is fetching it as a scalar value, causing a runtime\n> error. Fix this by templating the getter with the correct\n> Span<const int64_t, 2> type.\n> \n> Also related, fix the RPi IPA's initial default value for\n> controls::FrameDurationLimits to be an array and use the default const\n> values.\n> \n> Fixes: 4e9be7d11b9df (\"ipa: ipu3, mali-c55, rkisp1, rpi: Fix reporting non-scalar controls\")\n> Closes: https://github.com/raspberrypi/libcamera/issues/321\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> ---\n>  src/ipa/rpi/common/ipa_base.cpp | 6 ++++--\n>  src/v4l2/v4l2_camera_proxy.cpp  | 4 ++--\n\nI'd have split the patch in two.\n\n>  2 files changed, 6 insertions(+), 4 deletions(-)\n> \n> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp\n> index 14aba4500ae4..322694985e72 100644\n> --- a/src/ipa/rpi/common/ipa_base.cpp\n> +++ b/src/ipa/rpi/common/ipa_base.cpp\n> @@ -84,8 +84,10 @@ const ControlInfoMap::Map ipaControls{\n>  \t{ &controls::Sharpness, ControlInfo(0.0f, 16.0f, 1.0f) },\n>  \t{ &controls::ScalerCrop, ControlInfo(Rectangle{}, Rectangle(65535, 65535, 65535, 65535), Rectangle{}) },\n>  \t{ &controls::FrameDurationLimits,\n> -\t  ControlInfo(INT64_C(33333), INT64_C(120000),\n\nThis is a change in behaviour, moving from 120ms to 250s. Is it intended\n?\n\n> -\t\t      static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>())) },\n> +\t  ControlInfo(static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()),\n> +\t\t      static_cast<int64_t>(defaultMaxFrameDuration.get<std::micro>()),\n> +\t\t      Span<const int64_t, 2>{ { static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()),\n> +\t\t\t\t\t\tstatic_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()) } }) },\n>  \t{ &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) },\n>  \t{ &controls::rpi::StatsOutputEnable, ControlInfo(false, true, false) },\n>  };\n> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\n> index 559ffc6170b1..03cd4810cc05 100644\n> --- a/src/v4l2/v4l2_camera_proxy.cpp\n> +++ b/src/v4l2/v4l2_camera_proxy.cpp\n> @@ -200,9 +200,9 @@ void V4L2CameraProxy::setFmtFromConfig(const StreamConfiguration &streamConfig)\n>  \tconst auto &it = controls.find(&controls::FrameDurationLimits);\n>  \n>  \tif (it != controls.end()) {\n> -\t\tconst int64_t duration = it->second.def().get<int64_t>();\n> +\t\tSpan<const int64_t, 2> duration = it->second.def().get<Span<const int64_t, 2>>();\n\nWe need a better API to make this kind of error impossible by\npropagating the type from the Control<T> passed to find() to the get()\nfunction. Not a candidate for this patch of course.\n\n>  \n> -\t\tv4l2TimePerFrame_.numerator = duration;\n> +\t\tv4l2TimePerFrame_.numerator = duration[0];\n>  \t\tv4l2TimePerFrame_.denominator = 1000000;\n>  \t} else {\n>  \t\t/*","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 26CB7BDCC0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  6 Jan 2026 01:07:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6AEB261F9F;\n\tTue,  6 Jan 2026 02:07:34 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 87EED6142F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  6 Jan 2026 02:07:32 +0100 (CET)","from pendragon.ideasonboard.com (81-175-209-152.bb.dnainternet.fi\n\t[81.175.209.152])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id BBB71129;\n\tTue,  6 Jan 2026 02:07:11 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"sg4pUPX/\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1767661631;\n\tbh=HiVZ27EcD3f5lUooKdhw+2c5vmDZt1jqi52HT3Wr8vI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=sg4pUPX/yZRNbSsPEbXamX3GwCPZSFbA41AAkePRk2D4p8HywAVU9i4+NdOwJSP9X\n\tcHiUHWYf+yL+Lix1y+MiYoU4ghCNDZANHzH7j0LFxuMsb2fb3KHsuro6qDAE+Vd0fx\n\t78Nt0pZkvdcF62B48M+sV1aRv7AXK5I5T1iN2sPw=","Date":"Tue, 6 Jan 2026 03:07:13 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org, =?utf-8?b?QmFybmFiw6FzIFDFkWN6?=\n\t=?utf-8?q?e?= <barnabas.pocze@ideasonboard.com>","Subject":"Re: [PATCH v2] v4l2_camera_proxy: Fix for getting deafult\n\tcontrols::FrameDurationLimits","Message-ID":"<20260106010713.GO10026@pendragon.ideasonboard.com>","References":"<20260105143206.115011-1-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20260105143206.115011-1-naush@raspberrypi.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":37490,"web_url":"https://patchwork.libcamera.org/comment/37490/","msgid":"<20260106035051.GQ10026@pendragon.ideasonboard.com>","date":"2026-01-06T03:50:51","subject":"Re: [PATCH v2] v4l2_camera_proxy: Fix for getting deafult\n\tcontrols::FrameDurationLimits","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Tue, Jan 06, 2026 at 03:07:13AM +0200, Laurent Pinchart wrote:\n> Typo in the subject line, s/deafult/default/. While at it, I'd add a\n> \"v4l2: \" prefix:\n> \n> v4l2: v4l2_camera_proxy: Fix for getting default FrameDurationLimits\n> \n> On Mon, Jan 05, 2026 at 02:31:45PM +0000, Naushir Patuck wrote:\n> > The default values for controls::FrameDurationLimits is now an array but\n> > the v4l2 proxy is fetching it as a scalar value, causing a runtime\n> > error. Fix this by templating the getter with the correct\n> > Span<const int64_t, 2> type.\n> > \n> > Also related, fix the RPi IPA's initial default value for\n> > controls::FrameDurationLimits to be an array and use the default const\n> > values.\n> > \n> > Fixes: 4e9be7d11b9df (\"ipa: ipu3, mali-c55, rkisp1, rpi: Fix reporting non-scalar controls\")\n> > Closes: https://github.com/raspberrypi/libcamera/issues/321\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > ---\n> >  src/ipa/rpi/common/ipa_base.cpp | 6 ++++--\n> >  src/v4l2/v4l2_camera_proxy.cpp  | 4 ++--\n> \n> I'd have split the patch in two.\n> \n> >  2 files changed, 6 insertions(+), 4 deletions(-)\n> > \n> > diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp\n> > index 14aba4500ae4..322694985e72 100644\n> > --- a/src/ipa/rpi/common/ipa_base.cpp\n> > +++ b/src/ipa/rpi/common/ipa_base.cpp\n> > @@ -84,8 +84,10 @@ const ControlInfoMap::Map ipaControls{\n> >  \t{ &controls::Sharpness, ControlInfo(0.0f, 16.0f, 1.0f) },\n> >  \t{ &controls::ScalerCrop, ControlInfo(Rectangle{}, Rectangle(65535, 65535, 65535, 65535), Rectangle{}) },\n> >  \t{ &controls::FrameDurationLimits,\n> > -\t  ControlInfo(INT64_C(33333), INT64_C(120000),\n> \n> This is a change in behaviour, moving from 120ms to 250s. Is it intended\n> ?\n\nI've now seen the discussion in v1. Could you update the commit message\nto explain this ? If you decide not to split the patch then I can update\nthe commit message when applying (or you can send a v3 if it's equally\neasy).\n\n> > -\t\t      static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>())) },\n> > +\t  ControlInfo(static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()),\n> > +\t\t      static_cast<int64_t>(defaultMaxFrameDuration.get<std::micro>()),\n> > +\t\t      Span<const int64_t, 2>{ { static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()),\n> > +\t\t\t\t\t\tstatic_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()) } }) },\n> >  \t{ &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) },\n> >  \t{ &controls::rpi::StatsOutputEnable, ControlInfo(false, true, false) },\n> >  };\n> > diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\n> > index 559ffc6170b1..03cd4810cc05 100644\n> > --- a/src/v4l2/v4l2_camera_proxy.cpp\n> > +++ b/src/v4l2/v4l2_camera_proxy.cpp\n> > @@ -200,9 +200,9 @@ void V4L2CameraProxy::setFmtFromConfig(const StreamConfiguration &streamConfig)\n> >  \tconst auto &it = controls.find(&controls::FrameDurationLimits);\n> >  \n> >  \tif (it != controls.end()) {\n> > -\t\tconst int64_t duration = it->second.def().get<int64_t>();\n> > +\t\tSpan<const int64_t, 2> duration = it->second.def().get<Span<const int64_t, 2>>();\n> \n> We need a better API to make this kind of error impossible by\n> propagating the type from the Control<T> passed to find() to the get()\n> function. Not a candidate for this patch of course.\n> \n> > -\t\tv4l2TimePerFrame_.numerator = duration;\n> > +\t\tv4l2TimePerFrame_.numerator = duration[0];\n> >  \t\tv4l2TimePerFrame_.denominator = 1000000;\n> >  \t} else {\n> >  \t\t/*","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 DFB97BDCC0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  6 Jan 2026 03:51:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2CD5761F9F;\n\tTue,  6 Jan 2026 04:51:12 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DBCB66142F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  6 Jan 2026 04:51:10 +0100 (CET)","from pendragon.ideasonboard.com (81-175-209-152.bb.dnainternet.fi\n\t[81.175.209.152])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id E256DC7A;\n\tTue,  6 Jan 2026 04:50:49 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"vgcbImFG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1767671450;\n\tbh=D3+9Lm+97cFYaWgnBwGmZujrhA0ErSBJLhdfFYNxFYQ=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=vgcbImFGvDLT3MnugVtJbEdBpi/ewauRxtKD/8xLfXw2C5j5M+motNLH4ZcAaJ+Aj\n\tMwurYmY1BMAOzws0MNsdg2KY6GbBBCiHzE12yndUy3Oo9wgiYBhPpz9sIiKjkKinSX\n\tXFprYtohYSpjOxhuPG/Le0A82O5ArtJSzpc2GShw=","Date":"Tue, 6 Jan 2026 05:50:51 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org, =?utf-8?b?QmFybmFiw6FzIFDFkWN6?=\n\t=?utf-8?q?e?= <barnabas.pocze@ideasonboard.com>","Subject":"Re: [PATCH v2] v4l2_camera_proxy: Fix for getting deafult\n\tcontrols::FrameDurationLimits","Message-ID":"<20260106035051.GQ10026@pendragon.ideasonboard.com>","References":"<20260105143206.115011-1-naush@raspberrypi.com>\n\t<20260106010713.GO10026@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20260106010713.GO10026@pendragon.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":37492,"web_url":"https://patchwork.libcamera.org/comment/37492/","msgid":"<CAEmqJPp5YRsa9qbno1aW0C_t3o-iaLCKcCQ7sP0vjvJuO3XjqQ@mail.gmail.com>","date":"2026-01-06T09:06:36","subject":"Re: [PATCH v2] v4l2_camera_proxy: Fix for getting deafult\n\tcontrols::FrameDurationLimits","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Tue, 6 Jan 2026 at 03:51, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> On Tue, Jan 06, 2026 at 03:07:13AM +0200, Laurent Pinchart wrote:\n> > Typo in the subject line, s/deafult/default/. While at it, I'd add a\n> > \"v4l2: \" prefix:\n> >\n> > v4l2: v4l2_camera_proxy: Fix for getting default FrameDurationLimits\n> >\n> > On Mon, Jan 05, 2026 at 02:31:45PM +0000, Naushir Patuck wrote:\n> > > The default values for controls::FrameDurationLimits is now an array but\n> > > the v4l2 proxy is fetching it as a scalar value, causing a runtime\n> > > error. Fix this by templating the getter with the correct\n> > > Span<const int64_t, 2> type.\n> > >\n> > > Also related, fix the RPi IPA's initial default value for\n> > > controls::FrameDurationLimits to be an array and use the default const\n> > > values.\n> > >\n> > > Fixes: 4e9be7d11b9df (\"ipa: ipu3, mali-c55, rkisp1, rpi: Fix reporting non-scalar controls\")\n> > > Closes: https://github.com/raspberrypi/libcamera/issues/321\n> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > > ---\n> > >  src/ipa/rpi/common/ipa_base.cpp | 6 ++++--\n> > >  src/v4l2/v4l2_camera_proxy.cpp  | 4 ++--\n> >\n> > I'd have split the patch in two.\n> >\n> > >  2 files changed, 6 insertions(+), 4 deletions(-)\n> > >\n> > > diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp\n> > > index 14aba4500ae4..322694985e72 100644\n> > > --- a/src/ipa/rpi/common/ipa_base.cpp\n> > > +++ b/src/ipa/rpi/common/ipa_base.cpp\n> > > @@ -84,8 +84,10 @@ const ControlInfoMap::Map ipaControls{\n> > >     { &controls::Sharpness, ControlInfo(0.0f, 16.0f, 1.0f) },\n> > >     { &controls::ScalerCrop, ControlInfo(Rectangle{}, Rectangle(65535, 65535, 65535, 65535), Rectangle{}) },\n> > >     { &controls::FrameDurationLimits,\n> > > -     ControlInfo(INT64_C(33333), INT64_C(120000),\n> >\n> > This is a change in behaviour, moving from 120ms to 250s. Is it intended\n> > ?\n>\n> I've now seen the discussion in v1. Could you update the commit message\n> to explain this ? If you decide not to split the patch then I can update\n> the commit message when applying (or you can send a v3 if it's equally\n> easy).\n\nI think let's keep both changes in one patch this time as both are\nrelevant for fixing this issue.\n\nI'll update the commit message to be more clear and post a v3 shortly.\n\nRegards,\nNaush\n\n\n>\n> > > -                 static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>())) },\n> > > +     ControlInfo(static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()),\n> > > +                 static_cast<int64_t>(defaultMaxFrameDuration.get<std::micro>()),\n> > > +                 Span<const int64_t, 2>{ { static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()),\n> > > +                                           static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()) } }) },\n> > >     { &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) },\n> > >     { &controls::rpi::StatsOutputEnable, ControlInfo(false, true, false) },\n> > >  };\n> > > diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp\n> > > index 559ffc6170b1..03cd4810cc05 100644\n> > > --- a/src/v4l2/v4l2_camera_proxy.cpp\n> > > +++ b/src/v4l2/v4l2_camera_proxy.cpp\n> > > @@ -200,9 +200,9 @@ void V4L2CameraProxy::setFmtFromConfig(const StreamConfiguration &streamConfig)\n> > >     const auto &it = controls.find(&controls::FrameDurationLimits);\n> > >\n> > >     if (it != controls.end()) {\n> > > -           const int64_t duration = it->second.def().get<int64_t>();\n> > > +           Span<const int64_t, 2> duration = it->second.def().get<Span<const int64_t, 2>>();\n> >\n> > We need a better API to make this kind of error impossible by\n> > propagating the type from the Control<T> passed to find() to the get()\n> > function. Not a candidate for this patch of course.\n> >\n> > > -           v4l2TimePerFrame_.numerator = duration;\n> > > +           v4l2TimePerFrame_.numerator = duration[0];\n> > >             v4l2TimePerFrame_.denominator = 1000000;\n> > >     } else {\n> > >             /*\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 14B08BDCC0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  6 Jan 2026 09:07:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0DEB561FC0;\n\tTue,  6 Jan 2026 10:07:15 +0100 (CET)","from mail-vs1-xe2a.google.com (mail-vs1-xe2a.google.com\n\t[IPv6:2607:f8b0:4864:20::e2a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8ED5F615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  6 Jan 2026 10:07:13 +0100 (CET)","by mail-vs1-xe2a.google.com with SMTP id\n\tada2fe7eead31-5dfac1bac03so41323137.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 06 Jan 2026 01:07:13 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"KI2d3UfH\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1767690432; x=1768295232;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=AVT9RYbDDodO4DsMyXUsuQafikLsalJJ57BgSH+O36Y=;\n\tb=KI2d3UfHHBjNJKbiHSuapD/cJu705lbrpB2DyC6HE9kErV3XCDQSj6yP2ZW/ORomcl\n\tSqn/9tHHkZbaIh25oTnh6HoZu4qJczZpLmM/Tci7LePEqwhwZ/GUZGrvVUo5GBAgP7Vr\n\tVEX21dQrYo+HIawQ1pVJqHpKkB72NQx0ogCVxY4bUCge6lBkVxX9u3YjLYm8Lkl7GwZc\n\tL7v9hBVlF0ynnahIlNucS6zAQAOFMk0rhWSQlaqGYjLbk8m5NcVNP6Rtbjcu4FUgLjYA\n\tR9KVaZfQulPmpFb6HFaEyjhxYyXtviHn4aLt1tZMmDi/fMA/O3xx2xq88by1EyMXX3np\n\txnEg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1767690432; x=1768295232;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=AVT9RYbDDodO4DsMyXUsuQafikLsalJJ57BgSH+O36Y=;\n\tb=Aocix+gumiQV2iSVWXlFKgujhYvXYBm2KP9oeLe9ibweagfG7y9fWxeC3VOZMW5Apz\n\tfrng1Lx33jwOQsksBhTDepQDGUnlT6kf8o3mQRfqE8ySzDsKaAuh0xqyUgUi3fwIIdT4\n\tyN96bzJgoo9rMqoLlFbp42gfWLHQEsek7KXs9/kg20uOUYBY1EjowMQbR1WCtt01S6AE\n\tFgcKqBoEUaSFrSDGzXqVLIgnLKMDqm2k6jZirTkKDmstZZYFFZngNG9vLpnxcEAzBcbg\n\tpbBCtCipxMWWx3Udfq+R09KPWobdMPkKi2MhRaUzg03ZeLMjHn7aT0T/GjCFMKDK4HJh\n\toZ8g==","X-Gm-Message-State":"AOJu0YzGTypZnLsG029bv8FS0d5sP9m8ZgVGat+HRULCgypBT2HCQzGg\n\tcHiAzx2ivG0zincrqCH5spDqcyufOKI5M4Ldd4zviyA9b87rWDoFeVwlgIoLtO+gMzOaDouvV/V\n\t/Kiz7KKnkKbQU+eN9KQvs85nOe0i4ppC3L5UTwDnKSA==","X-Gm-Gg":"AY/fxX4Iv9/hc8k7daZJ7TJQqne8JsUplTnbV6y/ohd6CPcK4dXPSH1DgvZvXeAHBQD\n\tZBei31nw/InoutzaeG8vM/eBeMpwBTPyalFyRuQSFM0wm2q3cjpe9rjTS5/+qdQs+JaZjMloBR/\n\tSfIYdSa0cshHuII0xRo3k3G9ajtr1KQJOhzMLdhhfl291US4iVxx3IQtqlVTY264t0BuPHwO7ln\n\tzH/hRIe0C+bCHQAb6VyF7AjELqveHkxHk9KdMXh7VKFaYMwPNAj60dKh+0wQxpFOfkvGYAoE0Ec\n\tKqEuC1BcquCDr5Yzkd/BRPHXGB4=","X-Google-Smtp-Source":"AGHT+IGQGpW/fJ99fQk0HLtYNvJL6hJ37VNIPTRR4Kp3WYqzWhPBdKkbDvucRXqWBI9Bk61UAX3mt2kogJmtDiwwccs=","X-Received":"by 2002:a67:c90d:0:b0:5e8:1e15:bddf with SMTP id\n\tada2fe7eead31-5ec742d6cdamr291540137.1.1767690432126; Tue, 06 Jan 2026\n\t01:07:12 -0800 (PST)","MIME-Version":"1.0","References":"<20260105143206.115011-1-naush@raspberrypi.com>\n\t<20260106010713.GO10026@pendragon.ideasonboard.com>\n\t<20260106035051.GQ10026@pendragon.ideasonboard.com>","In-Reply-To":"<20260106035051.GQ10026@pendragon.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Tue, 6 Jan 2026 09:06:36 +0000","X-Gm-Features":"AQt7F2qll9QH3RgkZlQ_0JZkVrEWoIPNfaH0COeWSxrvi81XjzT7nzNi8ioEG1A","Message-ID":"<CAEmqJPp5YRsa9qbno1aW0C_t3o-iaLCKcCQ7sP0vjvJuO3XjqQ@mail.gmail.com>","Subject":"Re: [PATCH v2] v4l2_camera_proxy: Fix for getting deafult\n\tcontrols::FrameDurationLimits","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, =?utf-8?b?QmFybmFiw6FzIFDFkWN6?=\n\t=?utf-8?q?e?= <barnabas.pocze@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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>"}}]