[{"id":24824,"web_url":"https://patchwork.libcamera.org/comment/24824/","msgid":"<Yw1hel6X5EhuekzU@pendragon.ideasonboard.com>","date":"2022-08-30T01:01:46","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Umang,\n\nThank you for the patch.\n\nOn Mon, Aug 29, 2022 at 03:32:51PM +0530, Umang Jain via libcamera-devel wrote:\n> The 'interlace-mode' for libcamerasrc will always be 'progressive'.\n\nI'm *really* crossing my fingers, hoping that you're right :-)\n\n> Provide it via fixated caps mechanism [1]\n> \n> [1] https://gstreamer.freedesktop.org/documentation/plugin-development/advanced/negotiation.html?gi-language=c#fixed-negotiation\n> \n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> ---\n> Rishi, Can you please check this patch as well? I think it will closely\n> co-relate with the framerate being captured in caps, as fixate\n> negotitation mechanism.\n> ---\n>  src/gstreamer/gstlibcamerasrc.cpp | 26 ++++++++++++++++++++++++++\n>  1 file changed, 26 insertions(+)\n> \n> diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\n> index 16d70fea..24a2e33e 100644\n> --- a/src/gstreamer/gstlibcamerasrc.cpp\n> +++ b/src/gstreamer/gstlibcamerasrc.cpp\n> @@ -800,11 +800,37 @@ gst_libcamera_src_release_pad(GstElement *element, GstPad *pad)\n>  \tgst_element_remove_pad(element, pad);\n>  }\n>  \n> +static GstCaps *gst_libcamera_src_src_fixate([[maybe_unused]] GstBaseSrc *bsrc,\n> +\t\t\t\t\t     GstCaps *caps)\n> +{\n> +\tGstStructure *structure;\n\nThis could be a local variable within the loop, up to you.\n\n> +\tGstCaps *fixated_caps;\n> +\n> +\tfixated_caps = gst_caps_make_writable(caps);\n> +\n> +\tfor (guint i = 0; i < gst_caps_get_size(fixated_caps); ++i) {\n> +\t\tstructure = gst_caps_get_structure(fixated_caps, i);\n> +\t\tif (gst_structure_has_field(structure, \"interlace-mode\"))\n> +\t\t\tgst_structure_fixate_field_string(structure, \"interlace-mode\",\n> +\t\t\t\t\t\t\t  \"progressive\");\n> +\t\telse\n> +\t\t\tgst_structure_set(structure, \"interlace-mode\", G_TYPE_STRING,\n> +\t\t\t\t\t  \"progressive\", NULL);\n> +\t}\n> +\n> +\tfixated_caps = gst_caps_fixate(fixated_caps);\n> +\n> +\treturn fixated_caps;\n\nJust\n\n\treturn gst_caps_fixate(fixated_caps);\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nBut I'm no expert here.\n\n> +}\n> +\n>  static void\n>  gst_libcamera_src_class_init(GstLibcameraSrcClass *klass)\n>  {\n>  \tGstElementClass *element_class = GST_ELEMENT_CLASS(klass);\n>  \tGObjectClass *object_class = G_OBJECT_CLASS(klass);\n> +\tGstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *)klass;\n> +\n> +\tgstbasesrc_class->fixate = gst_libcamera_src_src_fixate;\n>  \n>  \tobject_class->set_property = gst_libcamera_src_set_property;\n>  \tobject_class->get_property = gst_libcamera_src_get_property;","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 33CB5C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 30 Aug 2022 01:01:58 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 533B761FC0;\n\tTue, 30 Aug 2022 03:01:57 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C3D7161F9C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 30 Aug 2022 03:01:56 +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 1312A481;\n\tTue, 30 Aug 2022 03:01:56 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661821317;\n\tbh=onZT9sctpgj8jRqrc1kjobGDrR8IYdDt05yOIO+Vzxw=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=wxE05NWdbIygRMAJdURnBTOVKcyQPbjyxfu3sDg4JC7M0j373Q5FWzB/1uDoAhm3w\n\tu0u2dw09xXJTHFtQ73DxtORRR25bXkTuM5CsEDHtvgUCQDdTeYU53DZ9sL0rCdpM27\n\t94hhY151/ibkGIuopLqd3aHrYXZ139i1h3myroWLE4TVtF0jv9Y8G8+FBt8hO5/JOY\n\t3WVGJDQn8CvLTMBtbQrpmYbg3nAqQW6r5qcpkPtl654iVm6eWUZh37UdCrtL6HRXTz\n\tIdQvwCxtlemAlQDJD4mCB8ld8XT32VPb54271NI7Gd/pqX4Z+VZOXLjBBsrjATUzto\n\ttRYVgpEh3ItIw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661821316;\n\tbh=onZT9sctpgj8jRqrc1kjobGDrR8IYdDt05yOIO+Vzxw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=AvUWk33v8PV5F0f1/TNZdlorXZlxU9UQBHAljIEc47O4OecqiMHekzHMcrTMOcn4F\n\tWrVQF0EUcMOtNrtIejbYDQH26YcY7pD7ln4P/trqisIjDlqumIs1qnW1erJPEgH3l2\n\tcUuCiNttAbGJ3vIxdysuQDBFLslTl36ZgL5FWFwo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"AvUWk33v\"; dkim-atps=neutral","Date":"Tue, 30 Aug 2022 04:01:46 +0300","To":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<Yw1hel6X5EhuekzU@pendragon.ideasonboard.com>","References":"<20220829100251.935217-1-umang.jain@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220829100251.935217-1-umang.jain@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"rishikeshdonadkar@gmail.com, libcamera-devel@lists.libcamera.org,\n\tvedantparanjape160201@gmail.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24865,"web_url":"https://patchwork.libcamera.org/comment/24865/","msgid":"<166195165940.15972.17912450834464793167@Monstersaurus>","date":"2022-08-31T13:14:19","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart via libcamera-devel (2022-08-30 02:01:46)\n> Hi Umang,\n> \n> Thank you for the patch.\n> \n> On Mon, Aug 29, 2022 at 03:32:51PM +0530, Umang Jain via libcamera-devel wrote:\n> > The 'interlace-mode' for libcamerasrc will always be 'progressive'.\n> \n> I'm *really* crossing my fingers, hoping that you're right :-)\n> \n> > Provide it via fixated caps mechanism [1]\n> > \n> > [1] https://gstreamer.freedesktop.org/documentation/plugin-development/advanced/negotiation.html?gi-language=c#fixed-negotiation\n> > \n> > Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> > ---\n> > Rishi, Can you please check this patch as well? I think it will closely\n> > co-relate with the framerate being captured in caps, as fixate\n> > negotitation mechanism.\n> > ---\n> >  src/gstreamer/gstlibcamerasrc.cpp | 26 ++++++++++++++++++++++++++\n> >  1 file changed, 26 insertions(+)\n> > \n> > diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\n> > index 16d70fea..24a2e33e 100644\n> > --- a/src/gstreamer/gstlibcamerasrc.cpp\n> > +++ b/src/gstreamer/gstlibcamerasrc.cpp\n> > @@ -800,11 +800,37 @@ gst_libcamera_src_release_pad(GstElement *element, GstPad *pad)\n> >       gst_element_remove_pad(element, pad);\n> >  }\n> >  \n> > +static GstCaps *gst_libcamera_src_src_fixate([[maybe_unused]] GstBaseSrc *bsrc,\n> > +                                          GstCaps *caps)\n> > +{\n> > +     GstStructure *structure;\n> \n> This could be a local variable within the loop, up to you.\n> \n> > +     GstCaps *fixated_caps;\n> > +\n> > +     fixated_caps = gst_caps_make_writable(caps);\n> > +\n> > +     for (guint i = 0; i < gst_caps_get_size(fixated_caps); ++i) {\n> > +             structure = gst_caps_get_structure(fixated_caps, i);\n> > +             if (gst_structure_has_field(structure, \"interlace-mode\"))\n> > +                     gst_structure_fixate_field_string(structure, \"interlace-mode\",\n> > +                                                       \"progressive\");\n> > +             else\n> > +                     gst_structure_set(structure, \"interlace-mode\", G_TYPE_STRING,\n> > +                                       \"progressive\", NULL);\n> > +     }\n> > +\n> > +     fixated_caps = gst_caps_fixate(fixated_caps);\n> > +\n> > +     return fixated_caps;\n> \n> Just\n> \n>         return gst_caps_fixate(fixated_caps);\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> But I'm no expert here.\n\nAha - I'm excited to see more gstreamer improvements here.\n\nI believe this was reported when trying to connect the v4l2h264enc\ntesting on RPi.\n\nPerhaps it would be nice to have a before and after test case, but I'm\nnot currently sure of the whole pipeline that caused issues with\ninterlace-mode.\n\nThis sounds and looks good though.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> \n> > +}\n> > +\n> >  static void\n> >  gst_libcamera_src_class_init(GstLibcameraSrcClass *klass)\n> >  {\n> >       GstElementClass *element_class = GST_ELEMENT_CLASS(klass);\n> >       GObjectClass *object_class = G_OBJECT_CLASS(klass);\n> > +     GstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *)klass;\n> > +\n> > +     gstbasesrc_class->fixate = gst_libcamera_src_src_fixate;\n> >  \n> >       object_class->set_property = gst_libcamera_src_set_property;\n> >       object_class->get_property = gst_libcamera_src_get_property;\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 D0C26C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Aug 2022 13:14:24 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 19F0461FC0;\n\tWed, 31 Aug 2022 15:14:24 +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 04DB361F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Aug 2022 15:14:22 +0200 (CEST)","from pendragon.ideasonboard.com\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 50CE6481;\n\tWed, 31 Aug 2022 15:14:22 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661951664;\n\tbh=aVflUMMmF/rI5f4xyxk8IudamNXmLnmH9pXOVI2Pxyo=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=u4HY4pN6vA8Pi/NlHQM4zLFyJD8yMzX6UaXArC1pdsDUngu3I5whntAN3GODu3aEx\n\tPCRL4ubwrSoGSVGeYnZV+OtrFfZ5zdLzhuE4hsZ6F1hirphwFWVwgJcDdShpkMJJVj\n\tMacFvuKMQm9TFdUwIp9KcCXJ/mAii26lS4l7hdqqVvm9bWQEqmbnyiFxqmeTsd/gn2\n\tD7uq8ft1cEPsnYh88YFFRph8ttGJrjAAVAng4e19Ghdw6m9FN9NJxnPTtMt6aM1aJd\n\t9t5JAB61o8BGCJGDrMEllIX7nfZLeClCM4oL3cRHpaN/GF4jgzE8TaudwlXlth2EYw\n\tzF4zh8e+j3VfA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661951662;\n\tbh=aVflUMMmF/rI5f4xyxk8IudamNXmLnmH9pXOVI2Pxyo=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=kt0MubCFG86JCUFTjqclKXZp2KjYgoW+kAeQqQhV9ckMXVkI8GRPLJerBnX0KdIoZ\n\tGBiwF9BhZ2ICt2QF/rk5tB48uQeTDpUpUW0XKUZoDOOtOkutEwPDZ0iuUPxLe940HD\n\t1idZZGtd5NcqtmdiWqGQO8r/o4yrAEJysYbceFjs="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"kt0MubCF\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<Yw1hel6X5EhuekzU@pendragon.ideasonboard.com>","References":"<20220829100251.935217-1-umang.jain@ideasonboard.com>\n\t<Yw1hel6X5EhuekzU@pendragon.ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tLaurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>, \n\tUmang Jain <umang.jain@ideasonboard.com>","Date":"Wed, 31 Aug 2022 14:14:19 +0100","Message-ID":"<166195165940.15972.17912450834464793167@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","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":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"rishikeshdonadkar@gmail.com, libcamera-devel@lists.libcamera.org,\n\tvedantparanjape160201@gmail.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24866,"web_url":"https://patchwork.libcamera.org/comment/24866/","msgid":"<d0258936-7cf7-5ab7-5858-68d501783467@ideasonboard.com>","date":"2022-08-31T13:18:16","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Kieran,\n\nOn 8/31/22 6:44 PM, Kieran Bingham wrote:\n> Quoting Laurent Pinchart via libcamera-devel (2022-08-30 02:01:46)\n>> Hi Umang,\n>>\n>> Thank you for the patch.\n>>\n>> On Mon, Aug 29, 2022 at 03:32:51PM +0530, Umang Jain via libcamera-devel wrote:\n>>> The 'interlace-mode' for libcamerasrc will always be 'progressive'.\n>> I'm *really* crossing my fingers, hoping that you're right :-)\n>>\n>>> Provide it via fixated caps mechanism [1]\n>>>\n>>> [1] https://gstreamer.freedesktop.org/documentation/plugin-development/advanced/negotiation.html?gi-language=c#fixed-negotiation\n>>>\n>>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n>>> ---\n>>> Rishi, Can you please check this patch as well? I think it will closely\n>>> co-relate with the framerate being captured in caps, as fixate\n>>> negotitation mechanism.\n>>> ---\n>>>   src/gstreamer/gstlibcamerasrc.cpp | 26 ++++++++++++++++++++++++++\n>>>   1 file changed, 26 insertions(+)\n>>>\n>>> diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\n>>> index 16d70fea..24a2e33e 100644\n>>> --- a/src/gstreamer/gstlibcamerasrc.cpp\n>>> +++ b/src/gstreamer/gstlibcamerasrc.cpp\n>>> @@ -800,11 +800,37 @@ gst_libcamera_src_release_pad(GstElement *element, GstPad *pad)\n>>>        gst_element_remove_pad(element, pad);\n>>>   }\n>>>   \n>>> +static GstCaps *gst_libcamera_src_src_fixate([[maybe_unused]] GstBaseSrc *bsrc,\n>>> +                                          GstCaps *caps)\n>>> +{\n>>> +     GstStructure *structure;\n>> This could be a local variable within the loop, up to you.\n>>\n>>> +     GstCaps *fixated_caps;\n>>> +\n>>> +     fixated_caps = gst_caps_make_writable(caps);\n>>> +\n>>> +     for (guint i = 0; i < gst_caps_get_size(fixated_caps); ++i) {\n>>> +             structure = gst_caps_get_structure(fixated_caps, i);\n>>> +             if (gst_structure_has_field(structure, \"interlace-mode\"))\n>>> +                     gst_structure_fixate_field_string(structure, \"interlace-mode\",\n>>> +                                                       \"progressive\");\n>>> +             else\n>>> +                     gst_structure_set(structure, \"interlace-mode\", G_TYPE_STRING,\n>>> +                                       \"progressive\", NULL);\n>>> +     }\n>>> +\n>>> +     fixated_caps = gst_caps_fixate(fixated_caps);\n>>> +\n>>> +     return fixated_caps;\n>> Just\n>>\n>>          return gst_caps_fixate(fixated_caps);\n>>\n>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>\n>> But I'm no expert here.\n> Aha - I'm excited to see more gstreamer improvements here.\n>\n> I believe this was reported when trying to connect the v4l2h264enc\n> testing on RPi.\n\nI've asked Rishi to test the patch on RPi.\n\nRishikesh, do you have any update? As far as I can remember the \nconversation was around:\n\nhttps://bugs.libcamera.org/show_bug.cgi?id=75#c8\n\nWith this patch, one doesn't need to manually specify 'interlace-mode' \nto make the pipeline work\n>\n> Perhaps it would be nice to have a before and after test case, but I'm\n> not currently sure of the whole pipeline that caused issues with\n> interlace-mode.\n>\n> This sounds and looks good though.\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n>>> +}\n>>> +\n>>>   static void\n>>>   gst_libcamera_src_class_init(GstLibcameraSrcClass *klass)\n>>>   {\n>>>        GstElementClass *element_class = GST_ELEMENT_CLASS(klass);\n>>>        GObjectClass *object_class = G_OBJECT_CLASS(klass);\n>>> +     GstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *)klass;\n>>> +\n>>> +     gstbasesrc_class->fixate = gst_libcamera_src_src_fixate;\n>>>   \n>>>        object_class->set_property = gst_libcamera_src_set_property;\n>>>        object_class->get_property = gst_libcamera_src_get_property;\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 90641C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Aug 2022 13:18:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E8A7A61FC0;\n\tWed, 31 Aug 2022 15:18: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 73C8861F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Aug 2022 15:18:25 +0200 (CEST)","from [IPV6:2401:4900:1f3f:1548:78ac:4a3:edc3:c28a] (unknown\n\t[IPv6:2401:4900:1f3f:1548:78ac:4a3:edc3:c28a])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 94189481;\n\tWed, 31 Aug 2022 15:18:23 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661951907;\n\tbh=dpc7UPqsgC1UEuq1PCgCpSFK1Rrqn26UzNbTxMuNy20=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=bwyA//XRbMHTWW6afWdvm0AhRxI9uKtrMP2kSBFtjUdmQHGOdAhwUFuHUFVj92KLR\n\t6daEqiAI7N/4Wauf7zFXIrwHUxYHQnu7jW21WYJs6IP8TjAb6ikAM9z0STl0gPEXRp\n\td+nUMqK4B36/j/yq1XK4iBg9cdJiL/a+KacmIp6rrCFJZ12qH9YUmJUHcdfmda8ZjI\n\tD+mbvGsZH9FZk3vepx13sPiFosl5rIXmYWMpyHuBdHSFG+aNxPhjci/44UQoRVEbqD\n\t+UT1wsInKEWfyFjab4jo9IruYUujMgJlzwGesVc6pRlaNUK2NgDYsLyXzehXKSSUfS\n\tn+R6I7LS9/5nQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661951904;\n\tbh=dpc7UPqsgC1UEuq1PCgCpSFK1Rrqn26UzNbTxMuNy20=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=vmVyTUKMmGm0XPg16RbsyRpUTVdn7wLu5LgLRSp88L2u2i4Hz0XHzba3UjENAyMLg\n\tF9A2MSXrSbQH2kddezMVUGFWizp8vA014JOGW5hTtl+ssy6CgCkwxAUE3uGY0SHuy9\n\tHCSFiNdaMaNLkYdgjPwC6exLc1ywa2SDnQrsS5ew="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"vmVyTUKM\"; dkim-atps=neutral","Message-ID":"<d0258936-7cf7-5ab7-5858-68d501783467@ideasonboard.com>","Date":"Wed, 31 Aug 2022 18:48:16 +0530","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.12.0","Content-Language":"en-US","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tLaurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","References":"<20220829100251.935217-1-umang.jain@ideasonboard.com>\n\t<Yw1hel6X5EhuekzU@pendragon.ideasonboard.com>\n\t<166195165940.15972.17912450834464793167@Monstersaurus>","In-Reply-To":"<166195165940.15972.17912450834464793167@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","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":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Cc":"rishikeshdonadkar@gmail.com, vedantparanjape160201@gmail.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24868,"web_url":"https://patchwork.libcamera.org/comment/24868/","msgid":"<166195283781.15972.11254719981234441159@Monstersaurus>","date":"2022-08-31T13:33:57","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Umang Jain (2022-08-31 14:18:16)\n> Hi Kieran,\n> \n> On 8/31/22 6:44 PM, Kieran Bingham wrote:\n> > Quoting Laurent Pinchart via libcamera-devel (2022-08-30 02:01:46)\n> >> Hi Umang,\n> >>\n> >> Thank you for the patch.\n> >>\n> >> On Mon, Aug 29, 2022 at 03:32:51PM +0530, Umang Jain via libcamera-devel wrote:\n> >>> The 'interlace-mode' for libcamerasrc will always be 'progressive'.\n> >> I'm *really* crossing my fingers, hoping that you're right :-)\n> >>\n> >>> Provide it via fixated caps mechanism [1]\n> >>>\n> >>> [1] https://gstreamer.freedesktop.org/documentation/plugin-development/advanced/negotiation.html?gi-language=c#fixed-negotiation\n> >>>\n> >>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> >>> ---\n> >>> Rishi, Can you please check this patch as well? I think it will closely\n> >>> co-relate with the framerate being captured in caps, as fixate\n> >>> negotitation mechanism.\n> >>> ---\n> >>>   src/gstreamer/gstlibcamerasrc.cpp | 26 ++++++++++++++++++++++++++\n> >>>   1 file changed, 26 insertions(+)\n> >>>\n> >>> diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\n> >>> index 16d70fea..24a2e33e 100644\n> >>> --- a/src/gstreamer/gstlibcamerasrc.cpp\n> >>> +++ b/src/gstreamer/gstlibcamerasrc.cpp\n> >>> @@ -800,11 +800,37 @@ gst_libcamera_src_release_pad(GstElement *element, GstPad *pad)\n> >>>        gst_element_remove_pad(element, pad);\n> >>>   }\n> >>>   \n> >>> +static GstCaps *gst_libcamera_src_src_fixate([[maybe_unused]] GstBaseSrc *bsrc,\n> >>> +                                          GstCaps *caps)\n> >>> +{\n> >>> +     GstStructure *structure;\n> >> This could be a local variable within the loop, up to you.\n> >>\n> >>> +     GstCaps *fixated_caps;\n> >>> +\n> >>> +     fixated_caps = gst_caps_make_writable(caps);\n> >>> +\n> >>> +     for (guint i = 0; i < gst_caps_get_size(fixated_caps); ++i) {\n> >>> +             structure = gst_caps_get_structure(fixated_caps, i);\n> >>> +             if (gst_structure_has_field(structure, \"interlace-mode\"))\n> >>> +                     gst_structure_fixate_field_string(structure, \"interlace-mode\",\n> >>> +                                                       \"progressive\");\n> >>> +             else\n> >>> +                     gst_structure_set(structure, \"interlace-mode\", G_TYPE_STRING,\n> >>> +                                       \"progressive\", NULL);\n> >>> +     }\n> >>> +\n> >>> +     fixated_caps = gst_caps_fixate(fixated_caps);\n> >>> +\n> >>> +     return fixated_caps;\n> >> Just\n> >>\n> >>          return gst_caps_fixate(fixated_caps);\n> >>\n> >> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> >>\n> >> But I'm no expert here.\n> > Aha - I'm excited to see more gstreamer improvements here.\n> >\n> > I believe this was reported when trying to connect the v4l2h264enc\n> > testing on RPi.\n> \n> I've asked Rishi to test the patch on RPi.\n> \n> Rishikesh, do you have any update? As far as I can remember the \n> conversation was around:\n> \n> https://bugs.libcamera.org/show_bug.cgi?id=75#c8\n> \n> With this patch, one doesn't need to manually specify 'interlace-mode' \n> to make the pipeline work\n\nGreat. Perhaps a reference to\n\nBug: https://bugs.libcamera.org/show_bug.cgi?id=75#c8\n\nIt's related enough by the looks of it, but that bug will be closed\nafter we have this, colorimetry and framerate support integrated I\nguess.\n\n--\nKieran\n\n> >\n> > Perhaps it would be nice to have a before and after test case, but I'm\n> > not currently sure of the whole pipeline that caused issues with\n> > interlace-mode.\n> >\n> > This sounds and looks good though.\n> >\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> >>> +}\n> >>> +\n> >>>   static void\n> >>>   gst_libcamera_src_class_init(GstLibcameraSrcClass *klass)\n> >>>   {\n> >>>        GstElementClass *element_class = GST_ELEMENT_CLASS(klass);\n> >>>        GObjectClass *object_class = G_OBJECT_CLASS(klass);\n> >>> +     GstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *)klass;\n> >>> +\n> >>> +     gstbasesrc_class->fixate = gst_libcamera_src_src_fixate;\n> >>>   \n> >>>        object_class->set_property = gst_libcamera_src_set_property;\n> >>>        object_class->get_property = gst_libcamera_src_get_property;\n> >> -- \n> >> Regards,\n> >>\n> >> Laurent Pinchart\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id A4A3DC3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 31 Aug 2022 13:34:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EB95B61FC0;\n\tWed, 31 Aug 2022 15:34:02 +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 20F7461F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 31 Aug 2022 15:34:01 +0200 (CEST)","from pendragon.ideasonboard.com\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 8A92B481;\n\tWed, 31 Aug 2022 15:34:00 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661952843;\n\tbh=H5qF8VpVopr9uCC2M+FtOO8mMpEXOtBkt2UolNS/k1s=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=EnLJGroLqBk8YYG+FmyALaq8r601ywsu9pr0ETB/JEQLJbuW0q4GeLy0dtXoHDkD0\n\tW0KfKr4Jh7JhyBYDav1DF4v8NZ3SdLLoYfFS+QF/MlX+/jTGWTKbSxPDD6A+/KBf+t\n\t1djLUb+fBDuGi/MDzA3ICXMDxlV5xVKh0/0FXnvJHLaWESNYvPlQPI7IjagK53Pk0M\n\tJiASdvTpVa9S9jBZtsK1ylAT//OInbPoFFkNxStdkTq/e8Fa+rqqtabyiwWYkTvdtR\n\tppUrpW22iSrJc3XCgm75TaAmpuSMLzE4Y4WMlXhLpmEZ08RUnG85HB1dlE+ioid6cL\n\tjOEhj64ieJuRg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661952840;\n\tbh=H5qF8VpVopr9uCC2M+FtOO8mMpEXOtBkt2UolNS/k1s=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=X8U9PW6+67SbB+nwJjdrte/8Sq4KJOXpgo99P2ddMiL7qKnfYEGlI3GKul/PJ4BiI\n\tLDuocT84/E3I7mj9R8XyQbeF78pfT5e/UTpRgQhPxsbTKWOspRcjouBhmmMyUfQA0h\n\t9+pPvLWpE56eg+mzsD0UiKYh9lFmKdIF217gGhw4="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"X8U9PW6+\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<d0258936-7cf7-5ab7-5858-68d501783467@ideasonboard.com>","References":"<20220829100251.935217-1-umang.jain@ideasonboard.com>\n\t<Yw1hel6X5EhuekzU@pendragon.ideasonboard.com>\n\t<166195165940.15972.17912450834464793167@Monstersaurus>\n\t<d0258936-7cf7-5ab7-5858-68d501783467@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tLaurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>, \n\tUmang Jain <umang.jain@ideasonboard.com>","Date":"Wed, 31 Aug 2022 14:33:57 +0100","Message-ID":"<166195283781.15972.11254719981234441159@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","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":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"rishikeshdonadkar@gmail.com, vedantparanjape160201@gmail.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24885,"web_url":"https://patchwork.libcamera.org/comment/24885/","msgid":"<84fdc47c-65db-ab18-e2c3-f624dd2f1454@ideasonboard.com>","date":"2022-09-01T12:50:11","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"On 8/31/22 6:48 PM, Umang Jain via libcamera-devel wrote:\n> Hi Kieran,\n>\n> On 8/31/22 6:44 PM, Kieran Bingham wrote:\n>> Quoting Laurent Pinchart via libcamera-devel (2022-08-30 02:01:46)\n>>> Hi Umang,\n>>>\n>>> Thank you for the patch.\n>>>\n>>> On Mon, Aug 29, 2022 at 03:32:51PM +0530, Umang Jain via \n>>> libcamera-devel wrote:\n>>>> The 'interlace-mode' for libcamerasrc will always be 'progressive'.\n>>> I'm *really* crossing my fingers, hoping that you're right :-)\n>>>\n>>>> Provide it via fixated caps mechanism [1]\n>>>>\n>>>> [1] \n>>>> https://gstreamer.freedesktop.org/documentation/plugin-development/advanced/negotiation.html?gi-language=c#fixed-negotiation\n>>>>\n>>>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n>>>> ---\n>>>> Rishi, Can you please check this patch as well? I think it will \n>>>> closely\n>>>> co-relate with the framerate being captured in caps, as fixate\n>>>> negotitation mechanism.\n>>>> ---\n>>>>   src/gstreamer/gstlibcamerasrc.cpp | 26 ++++++++++++++++++++++++++\n>>>>   1 file changed, 26 insertions(+)\n>>>>\n>>>> diff --git a/src/gstreamer/gstlibcamerasrc.cpp \n>>>> b/src/gstreamer/gstlibcamerasrc.cpp\n>>>> index 16d70fea..24a2e33e 100644\n>>>> --- a/src/gstreamer/gstlibcamerasrc.cpp\n>>>> +++ b/src/gstreamer/gstlibcamerasrc.cpp\n>>>> @@ -800,11 +800,37 @@ gst_libcamera_src_release_pad(GstElement \n>>>> *element, GstPad *pad)\n>>>>        gst_element_remove_pad(element, pad);\n>>>>   }\n>>>>   +static GstCaps *gst_libcamera_src_src_fixate([[maybe_unused]] \n>>>> GstBaseSrc *bsrc,\n>>>> +                                          GstCaps *caps)\n>>>> +{\n>>>> +     GstStructure *structure;\n>>> This could be a local variable within the loop, up to you.\n>>>\n>>>> +     GstCaps *fixated_caps;\n>>>> +\n>>>> +     fixated_caps = gst_caps_make_writable(caps);\n>>>> +\n>>>> +     for (guint i = 0; i < gst_caps_get_size(fixated_caps); ++i) {\n>>>> +             structure = gst_caps_get_structure(fixated_caps, i);\n>>>> +             if (gst_structure_has_field(structure, \n>>>> \"interlace-mode\"))\n>>>> + gst_structure_fixate_field_string(structure, \"interlace-mode\",\n>>>> + \"progressive\");\n>>>> +             else\n>>>> +                     gst_structure_set(structure, \n>>>> \"interlace-mode\", G_TYPE_STRING,\n>>>> +                                       \"progressive\", NULL);\n>>>> +     }\n>>>> +\n>>>> +     fixated_caps = gst_caps_fixate(fixated_caps);\n>>>> +\n>>>> +     return fixated_caps;\n>>> Just\n>>>\n>>>          return gst_caps_fixate(fixated_caps);\n>>>\n>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>>\n>>> But I'm no expert here.\n>> Aha - I'm excited to see more gstreamer improvements here.\n>>\n>> I believe this was reported when trying to connect the v4l2h264enc\n>> testing on RPi.\n>\n> I've asked Rishi to test the patch on RPi.\n>\n> Rishikesh, do you have any update? As far as I can remember the \n> conversation was around:\n>\n> https://bugs.libcamera.org/show_bug.cgi?id=75#c8\n>\n> With this patch, one doesn't need to manually specify 'interlace-mode' \n> to make the pipeline work\n\nhmm, still failing in my testing, I will investigate but later...\n>>\n>> Perhaps it would be nice to have a before and after test case, but I'm\n>> not currently sure of the whole pipeline that caused issues with\n>> interlace-mode.\n>>\n>> This sounds and looks good though.\n>>\n>> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>\n>>>> +}\n>>>> +\n>>>>   static void\n>>>>   gst_libcamera_src_class_init(GstLibcameraSrcClass *klass)\n>>>>   {\n>>>>        GstElementClass *element_class = GST_ELEMENT_CLASS(klass);\n>>>>        GObjectClass *object_class = G_OBJECT_CLASS(klass);\n>>>> +     GstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *)klass;\n>>>> +\n>>>> +     gstbasesrc_class->fixate = gst_libcamera_src_src_fixate;\n>>>>          object_class->set_property = gst_libcamera_src_set_property;\n>>>>        object_class->get_property = gst_libcamera_src_get_property;\n>>> -- \n>>> Regards,\n>>>\n>>> Laurent Pinchart\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 081D4C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  1 Sep 2022 12:50:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 79B6461FB9;\n\tThu,  1 Sep 2022 14:50:19 +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 0450B61FB9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  1 Sep 2022 14:50:17 +0200 (CEST)","from [IPV6:2401:4900:1f3f:1548:78ac:4a3:edc3:c28a] (unknown\n\t[IPv6:2401:4900:1f3f:1548:78ac:4a3:edc3:c28a])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 11E7725B;\n\tThu,  1 Sep 2022 14:50:15 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1662036619;\n\tbh=50EipTgKJeLPMlM9y0dIICp97zBTSnnYuc+faPTZb90=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=D86LBxe/gWFfLSpqbz0eL4qsEUASKIAD/xHxFevdY/RD3enb5eUmGo2lLNyaEegfI\n\tGiHXYB5w6UH0T3UZsfy0qNGn38+ij2V3D9FDu3jO6dP34BJpHb6smJjHWlbsqLU0eP\n\tpT3j0B0vt/dT8DB3Usc+Jt2SPHN9B6f/JWpmolV1FvHC7YaLF8WRyIdJ413faLdx30\n\tPGceAL9GbdYC+GiO4zi9JEAQc8dTB6DCWrQNcSwGMMGZ5OhDhjvV9zpgSMtyJcRAUa\n\tJa6ARYU5G5TGaivMT+0J7wNLrVEN/8RQleEvd2DB2erp68GtcSGuAKRpgv6UQXRmPp\n\tmTBNGYBz5RYyQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1662036617;\n\tbh=50EipTgKJeLPMlM9y0dIICp97zBTSnnYuc+faPTZb90=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=wdAxw0gOvDMl3H7r7OpeNRD5G1JO3tpL0Cr5YGT7Bdea0ydw7+8LYnaumWA8fSTgo\n\tue3gqgvgyy/vl30d6zH2YrArz26OhykxgxLuhC/yINaFwCGFKy2CbbY4jjnDLceUNk\n\t+EolH0U2QKRogzzyeta3rKli7T63S0YQoFvAruss="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"wdAxw0gO\"; dkim-atps=neutral","Message-ID":"<84fdc47c-65db-ab18-e2c3-f624dd2f1454@ideasonboard.com>","Date":"Thu, 1 Sep 2022 18:20:11 +0530","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.12.0","Content-Language":"en-US","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tLaurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","References":"<20220829100251.935217-1-umang.jain@ideasonboard.com>\n\t<Yw1hel6X5EhuekzU@pendragon.ideasonboard.com>\n\t<166195165940.15972.17912450834464793167@Monstersaurus>\n\t<d0258936-7cf7-5ab7-5858-68d501783467@ideasonboard.com>","In-Reply-To":"<d0258936-7cf7-5ab7-5858-68d501783467@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Provide interlace-mode as\n\tfixated caps","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":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Cc":"rishikeshdonadkar@gmail.com, vedantparanjape160201@gmail.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]