[{"id":19747,"web_url":"https://patchwork.libcamera.org/comment/19747/","msgid":"<YUoLCg3e27/TypNY@pendragon.ideasonboard.com>","date":"2021-09-21T16:40:42","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nThank you for the patch.\n\nOn Tue, Sep 21, 2021 at 04:35:15PM +0100, Kieran Bingham wrote:\n> Existing pipeline handlers already support planar YUV formats.\n> Extend the gstreamer format map to incorporate them.\n> \n> While here, split the formats into distinct groups.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n>  1 file changed, 13 insertions(+)\n> \n> diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n> index 0af91c1acb67..5636f3e7e1a6 100644\n> --- a/src/gstreamer/gstlibcamera-utils.cpp\n> +++ b/src/gstreamer/gstlibcamera-utils.cpp\n> @@ -16,19 +16,32 @@ static struct {\n>  \tGstVideoFormat gst_format;\n>  \tPixelFormat format;\n>  } format_map[] = {\n> +\t/* Compressed */\n>  \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n> +\n> +\t/* RGB */\n>  \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n>  \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n>  \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n> +\n> +\t/* YUV Semiplanar */\n>  \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n>  \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n>  \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n>  \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n>  \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n> +\n> +\t/* YUV Packed */\n>  \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n>  \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n>  \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n>  \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n> +\n> +\t/* Planar Formats */\n> +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n> +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n> +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n\nI would have put the planar formats just after the semi-planar, but that\ndoesn't matter much.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> +\n>  \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n>  };\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 D47C6BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Sep 2021 16:41:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3312E6918B;\n\tTue, 21 Sep 2021 18:41:14 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 981B169185\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Sep 2021 18:41:13 +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 1465D2BA;\n\tTue, 21 Sep 2021 18:41:13 +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=\"LZK/M/pA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632242473;\n\tbh=nyis6vaN+2RfdlF5z58Y/0OsklOCDpvOh3Ff9I/ReLI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=LZK/M/pAo/menMhgqWkj+BmidbLQguoAI4gztsJmWWC67ITow69Vnxaw5tRepc6SY\n\tprPLImj6yX74du2UPUnknb7d6rvU8csd8jGRg7GW05aWgN0XtZx/RzB4h8oZhzAnZL\n\tL6+uQOBmNIsqrMIHp+GzWDStT/0raUfr9CbhnH2U=","Date":"Tue, 21 Sep 2021 19:40:42 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YUoLCg3e27/TypNY@pendragon.ideasonboard.com>","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19748,"web_url":"https://patchwork.libcamera.org/comment/19748/","msgid":"<483960af-7e26-f46e-3a34-97a35ab67b31@ideasonboard.com>","date":"2021-09-21T16:44:10","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/people/75/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"content":"Hi Kieran,\n\nOn 21/09/2021 18:40, Laurent Pinchart wrote:\n> Hi Kieran,\n> \n> Thank you for the patch.\n> \n> On Tue, Sep 21, 2021 at 04:35:15PM +0100, Kieran Bingham wrote:\n>> Existing pipeline handlers already support planar YUV formats.\n>> Extend the gstreamer format map to incorporate them.\n>>\n>> While here, split the formats into distinct groups.\n>>\n>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>> ---\n>>  src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n>>  1 file changed, 13 insertions(+)\n>>\n>> diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n>> index 0af91c1acb67..5636f3e7e1a6 100644\n>> --- a/src/gstreamer/gstlibcamera-utils.cpp\n>> +++ b/src/gstreamer/gstlibcamera-utils.cpp\n>> @@ -16,19 +16,32 @@ static struct {\n>>  \tGstVideoFormat gst_format;\n>>  \tPixelFormat format;\n>>  } format_map[] = {\n>> +\t/* Compressed */\n>>  \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n>> +\n>> +\t/* RGB */\n>>  \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n>>  \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n>>  \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n>> +\n>> +\t/* YUV Semiplanar */\n>>  \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n>>  \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n>>  \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n>>  \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n>>  \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n>> +\n>> +\t/* YUV Packed */\n>>  \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n>>  \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n>>  \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n>>  \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n>> +\n>> +\t/* Planar Formats */\n>> +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n>> +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n>> +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n> \n> I would have put the planar formats just after the semi-planar, but that\n> doesn't matter much.\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n>> +\n>>  \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n\nIsn't it the right time for it ? Or is there a big issue to solve to\nremove this todo ?\n\nFor the patch:\nReviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n\n>>  };\n>>  \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 BD735BF01C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Sep 2021 16:44:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 225616918E;\n\tTue, 21 Sep 2021 18:44:14 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DEA166918B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Sep 2021 18:44:12 +0200 (CEST)","from tatooine.ideasonboard.com (unknown\n\t[IPv6:2a01:e0a:169:7140:e207:7102:ede1:58c3])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 873DC8F;\n\tTue, 21 Sep 2021 18:44:12 +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=\"sFfUFyrS\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632242652;\n\tbh=6USalocLLzyEw4lTij31GzZiysD805iroIkSNxmnVog=;\n\th=Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=sFfUFyrSXKQx72M3a1ZbEoiAUVPNY6pLtwFijz5dzx1Y0tsPSGqr+kJAUXm5v8w6H\n\tGLNcfdqTitpaDLBIZo5fUmkS/2lPjgffa9ez+65sEFLwltcpDcc/p+/KuDgl+JhzoR\n\tTqa44o8FN6DI8N/GtYXhC4xNQzA9CYp6V5rpl8SM=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>\n\t<YUoLCg3e27/TypNY@pendragon.ideasonboard.com>","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<483960af-7e26-f46e-3a34-97a35ab67b31@ideasonboard.com>","Date":"Tue, 21 Sep 2021 18:44:10 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.13.0","MIME-Version":"1.0","In-Reply-To":"<YUoLCg3e27/TypNY@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19749,"web_url":"https://patchwork.libcamera.org/comment/19749/","msgid":"<YUoNhEh7uiXDcD6Z@pendragon.ideasonboard.com>","date":"2021-09-21T16:51:16","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Tue, Sep 21, 2021 at 06:44:10PM +0200, Jean-Michel Hautbois wrote:\n> On 21/09/2021 18:40, Laurent Pinchart wrote:\n> > On Tue, Sep 21, 2021 at 04:35:15PM +0100, Kieran Bingham wrote:\n> >> Existing pipeline handlers already support planar YUV formats.\n> >> Extend the gstreamer format map to incorporate them.\n> >>\n> >> While here, split the formats into distinct groups.\n> >>\n> >> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >> ---\n> >>  src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n> >>  1 file changed, 13 insertions(+)\n> >>\n> >> diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n> >> index 0af91c1acb67..5636f3e7e1a6 100644\n> >> --- a/src/gstreamer/gstlibcamera-utils.cpp\n> >> +++ b/src/gstreamer/gstlibcamera-utils.cpp\n> >> @@ -16,19 +16,32 @@ static struct {\n> >>  \tGstVideoFormat gst_format;\n> >>  \tPixelFormat format;\n> >>  } format_map[] = {\n> >> +\t/* Compressed */\n> >>  \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n> >> +\n> >> +\t/* RGB */\n> >>  \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n> >>  \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n> >>  \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n> >> +\n> >> +\t/* YUV Semiplanar */\n> >>  \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n> >>  \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n> >>  \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n> >>  \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n> >>  \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n> >> +\n> >> +\t/* YUV Packed */\n> >>  \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n> >>  \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n> >>  \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n> >>  \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n> >> +\n> >> +\t/* Planar Formats */\n> >> +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n> >> +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n> >> +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n> > \n> > I would have put the planar formats just after the semi-planar, but that\n> > doesn't matter much.\n> > \n> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > \n> >> +\n> >>  \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n> \n> Isn't it the right time for it ? Or is there a big issue to solve to\n> remove this todo ?\n\nAs far as I know, GStreamer doesn't have a semi-planar YUV 4:4:4 format\nwith the chroma data interleaved in VU order\n(https://gstreamer.freedesktop.org/documentation/video/video-format.html).\n\n> For the patch:\n> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n> \n> >>  };\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 B6B55BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Sep 2021 16:51:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3292B6918B;\n\tTue, 21 Sep 2021 18:51:49 +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 27FC069185\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Sep 2021 18:51:47 +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 87E292BA;\n\tTue, 21 Sep 2021 18:51:46 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"g1jTsoVh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632243106;\n\tbh=JcE5oQ8FkTgLinPahbb8frZFXxzbvMg5HYrTvCiB6r4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=g1jTsoVhqgbT08JT2tAywd66m9KCCAvYrTkEX1EAemQ3UWrdzVcF9JtGCXPREprz/\n\tG1wosQUzaMuw1pPcPA18oQmH8ehk1FuVPRqUkPPJWhNGchPhRt4BwISWEAdb/T5aJw\n\tIiyM07eGpgl8x/TAtMPLYqI7Ajpu3EheGG+vYKKg=","Date":"Tue, 21 Sep 2021 19:51:16 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<YUoNhEh7uiXDcD6Z@pendragon.ideasonboard.com>","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>\n\t<YUoLCg3e27/TypNY@pendragon.ideasonboard.com>\n\t<483960af-7e26-f46e-3a34-97a35ab67b31@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<483960af-7e26-f46e-3a34-97a35ab67b31@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19754,"web_url":"https://patchwork.libcamera.org/comment/19754/","msgid":"<0100017c09e65c4b-3a5fe7a0-3d01-4c57-8883-89ee1d092822-000000@email.amazonses.com>","date":"2021-09-21T19:47:44","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":94,"url":"https://patchwork.libcamera.org/api/people/94/","name":"Thorsten von Eicken","email":"tve@voneicken.com"},"content":"Thanks!!\n\nOn 9/21/21 08:35, Kieran Bingham wrote:\n> Existing pipeline handlers already support planar YUV formats.\n> Extend the gstreamer format map to incorporate them.\n>\n> While here, split the formats into distinct groups.\n>\n> Signed-off-by: Kieran Bingham<kieran.bingham@ideasonboard.com>\n> ---\n>   src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n>   1 file changed, 13 insertions(+)\n>\n> diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n> index 0af91c1acb67..5636f3e7e1a6 100644\n> --- a/src/gstreamer/gstlibcamera-utils.cpp\n> +++ b/src/gstreamer/gstlibcamera-utils.cpp\n> @@ -16,19 +16,32 @@ static struct {\n>   \tGstVideoFormat gst_format;\n>   \tPixelFormat format;\n>   } format_map[] = {\n> +\t/* Compressed */\n>   \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n> +\n> +\t/* RGB */\n>   \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n>   \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n>   \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n> +\n> +\t/* YUV Semiplanar */\n>   \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n>   \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n>   \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n>   \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n>   \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n> +\n> +\t/* YUV Packed */\n>   \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n>   \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n>   \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n>   \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n> +\n> +\t/* Planar Formats */\n> +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n> +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n> +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n> +\n>   \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n>   };\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 25D92BF01C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Sep 2021 19:47:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7CF186918C;\n\tTue, 21 Sep 2021 21:47:48 +0200 (CEST)","from a48-92.smtp-out.amazonses.com (a48-92.smtp-out.amazonses.com\n\t[54.240.48.92])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 02C6860247\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Sep 2021 21:47:45 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=amazonses.com header.i=@amazonses.com\n\theader.b=\"Qz9UMn4n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;\n\ts=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1632253664;\n\th=Content-Type:Message-ID:Date:Mime-Version:Subject:To:References:From:In-Reply-To:Feedback-ID;\n\tbh=1WS2/kZ5++HBJPAxhMfRbBFuFrDFq/3xzUdwY7QAeak=;\n\tb=Qz9UMn4n+X+tEk6taRgkKBN0Erc2rfwN0w4X26iUJttw3GkEe2+Q7qyDzeMLezCi\n\tX1JsUX26A59pH6Oq+6SRxrWSLKXUOs9JohhTGdbBPONDwbG919rBpvjWlrry95M47z0\n\t/R9nIjcsT7vWgK+jOq5rqGrUiOypGwEAubVJmWXM=","X-Virus-Scanned":"Yes","Content-Type":"multipart/alternative;\n\tboundary=\"------------y50VncqGu0O0ySw5rmHST1od\"","Message-ID":"<0100017c09e65c4b-3a5fe7a0-3d01-4c57-8883-89ee1d092822-000000@email.amazonses.com>","Date":"Tue, 21 Sep 2021 19:47:44 +0000","Mime-Version":"1.0","Content-Language":"en-US","To":"libcamera-devel@lists.libcamera.org","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>","From":"Thorsten von Eicken <tve@voneicken.com>","In-Reply-To":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>","Feedback-ID":"1.us-east-1.0uQShx+xC1gpMvDYdtrXrmflO2ijtl8JKTrYGoo+ao8=:AmazonSES","X-SES-Outgoing":"2021.09.21-54.240.48.92","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","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":19755,"web_url":"https://patchwork.libcamera.org/comment/19755/","msgid":"<251cd71b1a711e200e2bcaa6faa47aaadda3b7c3.camel@ndufresne.ca>","date":"2021-09-21T20:27:51","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":30,"url":"https://patchwork.libcamera.org/api/people/30/","name":"Nicolas Dufresne","email":"nicolas@ndufresne.ca"},"content":"Le mardi 21 septembre 2021 à 19:51 +0300, Laurent Pinchart a écrit :\n> On Tue, Sep 21, 2021 at 06:44:10PM +0200, Jean-Michel Hautbois wrote:\n> > On 21/09/2021 18:40, Laurent Pinchart wrote:\n> > > On Tue, Sep 21, 2021 at 04:35:15PM +0100, Kieran Bingham wrote:\n> > > > Existing pipeline handlers already support planar YUV formats.\n> > > > Extend the gstreamer format map to incorporate them.\n> > > > \n> > > > While here, split the formats into distinct groups.\n> > > > \n> > > > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > > ---\n> > > >  src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n> > > >  1 file changed, 13 insertions(+)\n> > > > \n> > > > diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n> > > > index 0af91c1acb67..5636f3e7e1a6 100644\n> > > > --- a/src/gstreamer/gstlibcamera-utils.cpp\n> > > > +++ b/src/gstreamer/gstlibcamera-utils.cpp\n> > > > @@ -16,19 +16,32 @@ static struct {\n> > > >  \tGstVideoFormat gst_format;\n> > > >  \tPixelFormat format;\n> > > >  } format_map[] = {\n> > > > +\t/* Compressed */\n> > > >  \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n> > > > +\n> > > > +\t/* RGB */\n> > > >  \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n> > > >  \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n> > > >  \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n> > > > +\n> > > > +\t/* YUV Semiplanar */\n> > > >  \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n> > > >  \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n> > > >  \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n> > > >  \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n> > > >  \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n> > > > +\n> > > > +\t/* YUV Packed */\n> > > >  \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n> > > >  \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n> > > >  \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n> > > >  \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n> > > > +\n> > > > +\t/* Planar Formats */\n> > > > +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n> > > > +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n> > > > +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n> > > \n> > > I would have put the planar formats just after the semi-planar, but that\n> > > doesn't matter much.\n> > > \n> > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > \n> > > > +\n> > > >  \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n> > \n> > Isn't it the right time for it ? Or is there a big issue to solve to\n> > remove this todo ?\n> \n> As far as I know, GStreamer doesn't have a semi-planar YUV 4:4:4 format\n> with the chroma data interleaved in VU order\n> (https://gstreamer.freedesktop.org/documentation/video/video-format.html).\n\nThis is a simple thing to add to GStreamer, since NV24 is nearly identical, but\nthi is about adding it in libgstvideo.\n\n> \n> > For the patch:\n> > Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n> > \n> > > >  };\n> > > >  \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 92596BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Sep 2021 20:27:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CFE8A6918C;\n\tTue, 21 Sep 2021 22:27:56 +0200 (CEST)","from mail-qt1-x831.google.com (mail-qt1-x831.google.com\n\t[IPv6:2607:f8b0:4864:20::831])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 69DA260247\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Sep 2021 22:27:54 +0200 (CEST)","by mail-qt1-x831.google.com with SMTP id 2so576803qtw.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Sep 2021 13:27:54 -0700 (PDT)","from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net.\n\t[173.246.12.168]) by smtp.gmail.com with ESMTPSA id\n\tbm27sm76369qkb.6.2021.09.21.13.27.52\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 21 Sep 2021 13:27:52 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=ndufresne-ca.20210112.gappssmtp.com\n\theader.i=@ndufresne-ca.20210112.gappssmtp.com\n\theader.b=\"V3IB/9FK\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ndufresne-ca.20210112.gappssmtp.com; s=20210112;\n\th=message-id:subject:from:to:cc:date:in-reply-to:references\n\t:user-agent:mime-version:content-transfer-encoding;\n\tbh=Fbz+HOTSzc4P4YejsNSd8GTJND/m2AoDAEvfVjxRGmE=;\n\tb=V3IB/9FKtYKZsgGkeAR8ytnpaGlf3qfCgBSRujXpBv4iS7HMnazttw8kePrwrqDTqf\n\tgOYg4IkFvD/fLZeK1DtaaMHsIsJwNVt8W8sKguXuO7ym58s1wC2zYnvU+/MfsGGtCVBW\n\t+WEdI7SvZhnRYu2jvTMFQZ7i79uygu2W9usejB6pBam0P0RkMVFRrj/QrHwuLK+uJKXy\n\tK8UyRnVDdjGc3u//8c2Itjo4D9DQT31zOLBjJ+26wYV2EQ0Y0qaTl64V0ufPiz9Le2oQ\n\tLwBssX8S/bCuVm8JVU7+nYvh7zHxqGjAAJ2J6Zh+14ZZBZfQRkheOB4+0NSfzFDltUB3\n\toEUw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to\n\t:references:user-agent:mime-version:content-transfer-encoding;\n\tbh=Fbz+HOTSzc4P4YejsNSd8GTJND/m2AoDAEvfVjxRGmE=;\n\tb=d+C7ht/nMSPO/XFnkH7OtlaaXcFoy+bL4DssXMcuSmmPbgONIn4jOUFLsZfF8Tk4/j\n\tR2yXOWEeNimAhY7pDzBoSpvu6sK1CszcVkZpDUYWYBJjkq/8Mis5TyoUyy8E3I/ARoWK\n\tT5V1YLRKDMas5SZ5YEzZ1immxCOoiNMwR10MG/BsiLQExZ/eTO+CQKIwoN4U6SsUPivx\n\ty8ZkmVw0uwzbDXkcMnovHcdoUbK7yOEl1yDwEeuCkfub2EPIfaD4skhYZXtt0FAWw+eg\n\tGy236SJYanc1uOrk7Z/gDh9fx4xahQYV/QLm/NwYaxoRbpr6fyUMGNu/1iAasIleWjez\n\thAHw==","X-Gm-Message-State":"AOAM531R2UR/im43yNrJneDYPPyh+m0iVE/zXwALAIBdIVVWqLoAKu4N\n\t4meoN1JXsptKW86gmzhW5BUG73pRNTiP1A==","X-Google-Smtp-Source":"ABdhPJzqQR7ehrz10RLh+TcEgIRIF0DmRPz+17GBy2BIxely2IOoArjLqUWMpPQmEeqGt0Isko13ag==","X-Received":"by 2002:ac8:6893:: with SMTP id\n\tm19mr17044140qtq.116.1632256073065; \n\tTue, 21 Sep 2021 13:27:53 -0700 (PDT)","Message-ID":"<251cd71b1a711e200e2bcaa6faa47aaadda3b7c3.camel@ndufresne.ca>","From":"Nicolas Dufresne <nicolas@ndufresne.ca>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Jean-Michel\n\tHautbois <jeanmichel.hautbois@ideasonboard.com>","Date":"Tue, 21 Sep 2021 16:27:51 -0400","In-Reply-To":"<YUoNhEh7uiXDcD6Z@pendragon.ideasonboard.com>","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>\n\t<YUoLCg3e27/TypNY@pendragon.ideasonboard.com>\n\t<483960af-7e26-f46e-3a34-97a35ab67b31@ideasonboard.com>\n\t<YUoNhEh7uiXDcD6Z@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","User-Agent":"Evolution 3.40.4 (3.40.4-1.fc34) ","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19769,"web_url":"https://patchwork.libcamera.org/comment/19769/","msgid":"<20210922050030.GE4382@pyrite.rasen.tech>","date":"2021-09-22T05:00:30","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Tue, Sep 21, 2021 at 04:35:15PM +0100, Kieran Bingham wrote:\n> Existing pipeline handlers already support planar YUV formats.\n> Extend the gstreamer format map to incorporate them.\n> \n> While here, split the formats into distinct groups.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n>  1 file changed, 13 insertions(+)\n> \n> diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n> index 0af91c1acb67..5636f3e7e1a6 100644\n> --- a/src/gstreamer/gstlibcamera-utils.cpp\n> +++ b/src/gstreamer/gstlibcamera-utils.cpp\n> @@ -16,19 +16,32 @@ static struct {\n>  \tGstVideoFormat gst_format;\n>  \tPixelFormat format;\n>  } format_map[] = {\n> +\t/* Compressed */\n>  \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n> +\n> +\t/* RGB */\n>  \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n>  \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n>  \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n> +\n> +\t/* YUV Semiplanar */\n>  \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n>  \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n>  \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n>  \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n>  \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n> +\n> +\t/* YUV Packed */\n>  \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n>  \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n>  \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n>  \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n> +\n> +\t/* Planar Formats */\n> +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n> +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n> +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n> +\n>  \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n>  };\n>  \n> -- \n> 2.30.2\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 09E89BF01C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Sep 2021 05:00:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 58B226918C;\n\tWed, 22 Sep 2021 07:00:38 +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 D023E6012C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Sep 2021 07:00:37 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 435ECF1;\n\tWed, 22 Sep 2021 07:00:35 +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=\"WHakbLOh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632286837;\n\tbh=851OueEVp/lLP5sli9MOPqtvIEIx7ONBoBzzfcctkVU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=WHakbLOh+gu/QzlamvGvsIgu57qUvu2YsSBXoB+HQEcGCLeoKrSRxgDjJr30eLmI/\n\tLP/6h3+61qaOYh53yDXyyVGFS8SKXjnTLWAin34GSqZZ/7ScXDF9cH/a1IdkXh2HMT\n\t1QmUNeRDKJQEMokuZ9+Cjcpfgz1P7LpUVjm2L9ck=","Date":"Wed, 22 Sep 2021 14:00:30 +0900","From":"paul.elder@ideasonboard.com","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20210922050030.GE4382@pyrite.rasen.tech>","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19792,"web_url":"https://patchwork.libcamera.org/comment/19792/","msgid":"<41a491a71ff09761312a4f65efe9f390068dc007.camel@ndufresne.ca>","date":"2021-09-22T14:21:35","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":30,"url":"https://patchwork.libcamera.org/api/people/30/","name":"Nicolas Dufresne","email":"nicolas@ndufresne.ca"},"content":"Le mercredi 22 septembre 2021 à 14:00 +0900, paul.elder@ideasonboard.com a\nécrit :\n> Hi Kieran,\n> \n> On Tue, Sep 21, 2021 at 04:35:15PM +0100, Kieran Bingham wrote:\n> > Existing pipeline handlers already support planar YUV formats.\n> > Extend the gstreamer format map to incorporate them.\n> > \n> > While here, split the formats into distinct groups.\n> > \n> > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\nReviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> \n> > ---\n> >  src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n> >  1 file changed, 13 insertions(+)\n> > \n> > diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n> > index 0af91c1acb67..5636f3e7e1a6 100644\n> > --- a/src/gstreamer/gstlibcamera-utils.cpp\n> > +++ b/src/gstreamer/gstlibcamera-utils.cpp\n> > @@ -16,19 +16,32 @@ static struct {\n> >  \tGstVideoFormat gst_format;\n> >  \tPixelFormat format;\n> >  } format_map[] = {\n> > +\t/* Compressed */\n> >  \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n> > +\n> > +\t/* RGB */\n> >  \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n> >  \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n> >  \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n> > +\n> > +\t/* YUV Semiplanar */\n> >  \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n> >  \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n> >  \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n> >  \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n> >  \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n> > +\n> > +\t/* YUV Packed */\n> >  \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n> >  \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n> >  \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n> >  \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n> > +\n> > +\t/* Planar Formats */\n> > +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n> > +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n> > +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n> > +\n> >  \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n> >  };\n> >  \n> > -- \n> > 2.30.2\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 71659BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Sep 2021 14:21:40 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CDD346918C;\n\tWed, 22 Sep 2021 16:21:39 +0200 (CEST)","from mail-qk1-x729.google.com (mail-qk1-x729.google.com\n\t[IPv6:2607:f8b0:4864:20::729])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C031F6917F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Sep 2021 16:21:37 +0200 (CEST)","by mail-qk1-x729.google.com with SMTP id c7so10374761qka.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Sep 2021 07:21:37 -0700 (PDT)","from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net.\n\t[173.246.12.168]) by smtp.gmail.com with ESMTPSA id\n\t75sm1801732qkh.121.2021.09.22.07.21.35\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 22 Sep 2021 07:21:36 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=ndufresne-ca.20210112.gappssmtp.com\n\theader.i=@ndufresne-ca.20210112.gappssmtp.com\n\theader.b=\"ebHfhZkX\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ndufresne-ca.20210112.gappssmtp.com; s=20210112;\n\th=message-id:subject:from:to:cc:date:in-reply-to:references\n\t:user-agent:mime-version:content-transfer-encoding;\n\tbh=1EMkJwf/qiWdVCPc4q73TGWOZCcjdh11A6knpdz/qbo=;\n\tb=ebHfhZkXmlY3bIqlxdU0CDhzbUxaFhAt6G0/5Re0VOAErr7aL23M80L7V9Ot7aXIDt\n\tC8r2V6ZKfxijQSLairi/oM61N1LeNRbprzj9xmnFbyAMwL7ha3zahLman4z0CU7HK90u\n\t/Ol6dbFbeTr/0LWpNxMED/2nAn4Ll9nGFqzYwJiMwGoSLpdQup83PqueoyQDB/HftEOR\n\tx1h9qBLp/DcSObNq776nCwNTmH6Nr/nbLdFGATkTcnh3t48VcyKYMbLaEXjlkOvyZEdT\n\trL3+f8K0K91adCEOd8sq3h9dp/jvos7a2uce1D5L1qyasrOQii2m7SEY1sjVv5xtjzG2\n\tosAA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to\n\t:references:user-agent:mime-version:content-transfer-encoding;\n\tbh=1EMkJwf/qiWdVCPc4q73TGWOZCcjdh11A6knpdz/qbo=;\n\tb=saCoK6AupkmV6f052wrTvRG2Xh3Ya7yw8rJ6fre4LRarTf1nhbAUkP+5ggijVAoibn\n\thl1nk7jnnkSK3BYRborlIEH81ynEM9ZguZG+iy9CZEd0bk3B7LigA4XArKM5Oj/e/WZl\n\tJhuNB0+WXYBXuAOBGIVQj1+pcm6Ax3kthWXr1jdVwkwpr9BxXgourTvQosvt447cT4YI\n\tezf799sDMvdvdTTob9pjPLLe9egIeKPkqRFx0y6eONSYPsRKKQb8tqnccbRYGDtPYPlb\n\tFJpzNZUXs5P2n+gIKV750GTFieGe6UrTYuW3hhcdjbOhVdcjfj+fJiWZSx/Jttwrs6lE\n\t6Mqg==","X-Gm-Message-State":"AOAM5319zIrEWX3HK627jQ8iEsoO4aPF+F/0SaUtSKxYdE/5qvXQc/M7\n\t4JYjkvbJoOlyd3NFOFUeACl6DpJ5Xqb4tA==","X-Google-Smtp-Source":"ABdhPJzwMj+HNgGHDuhlQcRARrY/+/uCLyYmtYiRsDgmE+NSlFTZNg60RlJ6V8Cn0KIU8NvITflowg==","X-Received":"by 2002:a37:9a06:: with SMTP id c6mr30325qke.53.1632320496634;\n\tWed, 22 Sep 2021 07:21:36 -0700 (PDT)","Message-ID":"<41a491a71ff09761312a4f65efe9f390068dc007.camel@ndufresne.ca>","From":"Nicolas Dufresne <nicolas@ndufresne.ca>","To":"paul.elder@ideasonboard.com, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>","Date":"Wed, 22 Sep 2021 10:21:35 -0400","In-Reply-To":"<20210922050030.GE4382@pyrite.rasen.tech>","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>\n\t<20210922050030.GE4382@pyrite.rasen.tech>","Content-Type":"text/plain; charset=\"UTF-8\"","User-Agent":"Evolution 3.40.4 (3.40.4-1.fc34) ","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19794,"web_url":"https://patchwork.libcamera.org/comment/19794/","msgid":"<a25c07f9-c8bc-35a9-9e06-e973d8be2dfc@ideasonboard.com>","date":"2021-09-22T14:35:18","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Nicolas,\n\nOn 22/09/2021 15:21, Nicolas Dufresne wrote:\n> Le mercredi 22 septembre 2021 à 14:00 +0900, paul.elder@ideasonboard.com a\n> écrit :\n>> Hi Kieran,\n>>\n>> On Tue, Sep 21, 2021 at 04:35:15PM +0100, Kieran Bingham wrote:\n>>> Existing pipeline handlers already support planar YUV formats.\n>>> Extend the gstreamer format map to incorporate them.\n>>>\n>>> While here, split the formats into distinct groups.\n>>>\n>>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>\n>> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n> \n> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n\nThanks, I'll collect this, but a v2 was posted this morning swapping the\nordering as suggested by Laurent.\n\nAnyone have any good solutions for marking patches as superceeded in\ne-mail based reviews to prevent reviewing older versions of patches?\n\n--\nKieran\n\n\n>>\n>>> ---\n>>>  src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n>>>  1 file changed, 13 insertions(+)\n>>>\n>>> diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n>>> index 0af91c1acb67..5636f3e7e1a6 100644\n>>> --- a/src/gstreamer/gstlibcamera-utils.cpp\n>>> +++ b/src/gstreamer/gstlibcamera-utils.cpp\n>>> @@ -16,19 +16,32 @@ static struct {\n>>>  \tGstVideoFormat gst_format;\n>>>  \tPixelFormat format;\n>>>  } format_map[] = {\n>>> +\t/* Compressed */\n>>>  \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n>>> +\n>>> +\t/* RGB */\n>>>  \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n>>>  \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n>>>  \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n>>> +\n>>> +\t/* YUV Semiplanar */\n>>>  \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n>>>  \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n>>>  \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n>>>  \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n>>>  \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n>>> +\n>>> +\t/* YUV Packed */\n>>>  \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n>>>  \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n>>>  \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n>>>  \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n>>> +\n>>> +\t/* Planar Formats */\n>>> +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n>>> +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n>>> +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n>>> +\n>>>  \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n>>>  };\n>>>  \n>>> -- \n>>> 2.30.2\n>>>\n> \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 1D7FABDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Sep 2021 14:35:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 534BE69185;\n\tWed, 22 Sep 2021 16:35:22 +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 85D536917F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Sep 2021 16:35:21 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C2FF7F1;\n\tWed, 22 Sep 2021 16:35:20 +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=\"vlUZF9DT\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632321321;\n\tbh=4w1ixt3qHHHG8TIVNBJJ+4u/IqoXyCCr/ep59j2NUoQ=;\n\th=From:To:Cc:References:Subject:Date:In-Reply-To:From;\n\tb=vlUZF9DTO1G8/31bqVZiHTWILiK6LxYOjmb5LHa85AJmXqkzcfqT5rJrFmdKaJ7YM\n\tpTmWtTyrkJdheFfgRLWQYO1sMdPb9azsSZTTfvBgdajM7NS0t9LNawoEC6QMNSRktL\n\tCU7o6+9/cTzbbe8VUEM2SHMZ87QTuuJ9TEz7iOi0=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Nicolas Dufresne <nicolas@ndufresne.ca>, paul.elder@ideasonboard.com","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>\n\t<20210922050030.GE4382@pyrite.rasen.tech>\n\t<41a491a71ff09761312a4f65efe9f390068dc007.camel@ndufresne.ca>","Message-ID":"<a25c07f9-c8bc-35a9-9e06-e973d8be2dfc@ideasonboard.com>","Date":"Wed, 22 Sep 2021 15:35:18 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.11.0","MIME-Version":"1.0","In-Reply-To":"<41a491a71ff09761312a4f65efe9f390068dc007.camel@ndufresne.ca>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19795,"web_url":"https://patchwork.libcamera.org/comment/19795/","msgid":"<ad3b7fe58c87386ad777d621cd285bab8ff6f0bb.camel@ndufresne.ca>","date":"2021-09-22T15:31:06","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","submitter":{"id":30,"url":"https://patchwork.libcamera.org/api/people/30/","name":"Nicolas Dufresne","email":"nicolas@ndufresne.ca"},"content":"Le mercredi 22 septembre 2021 à 15:35 +0100, Kieran Bingham a écrit :\n> Hi Nicolas,\n> \n> On 22/09/2021 15:21, Nicolas Dufresne wrote:\n> > Le mercredi 22 septembre 2021 à 14:00 +0900, paul.elder@ideasonboard.com a\n> > écrit :\n> > > Hi Kieran,\n> > > \n> > > On Tue, Sep 21, 2021 at 04:35:15PM +0100, Kieran Bingham wrote:\n> > > > Existing pipeline handlers already support planar YUV formats.\n> > > > Extend the gstreamer format map to incorporate them.\n> > > > \n> > > > While here, split the formats into distinct groups.\n> > > > \n> > > > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > \n> > > Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n> > \n> > Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> \n> Thanks, I'll collect this, but a v2 was posted this morning swapping the\n> ordering as suggested by Laurent.\n> \n> Anyone have any good solutions for marking patches as superceeded in\n> e-mail based reviews to prevent reviewing older versions of patches?\n\nBeauty of emails reviews. I don't think you can fix this one.\n\nregards,\nNicolas\n\n> \n> --\n> Kieran\n> \n> \n> > > \n> > > > ---\n> > > >  src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++\n> > > >  1 file changed, 13 insertions(+)\n> > > > \n> > > > diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n> > > > index 0af91c1acb67..5636f3e7e1a6 100644\n> > > > --- a/src/gstreamer/gstlibcamera-utils.cpp\n> > > > +++ b/src/gstreamer/gstlibcamera-utils.cpp\n> > > > @@ -16,19 +16,32 @@ static struct {\n> > > >  \tGstVideoFormat gst_format;\n> > > >  \tPixelFormat format;\n> > > >  } format_map[] = {\n> > > > +\t/* Compressed */\n> > > >  \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n> > > > +\n> > > > +\t/* RGB */\n> > > >  \t{ GST_VIDEO_FORMAT_RGB, formats::BGR888 },\n> > > >  \t{ GST_VIDEO_FORMAT_BGR, formats::RGB888 },\n> > > >  \t{ GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },\n> > > > +\n> > > > +\t/* YUV Semiplanar */\n> > > >  \t{ GST_VIDEO_FORMAT_NV12, formats::NV12 },\n> > > >  \t{ GST_VIDEO_FORMAT_NV21, formats::NV21 },\n> > > >  \t{ GST_VIDEO_FORMAT_NV16, formats::NV16 },\n> > > >  \t{ GST_VIDEO_FORMAT_NV61, formats::NV61 },\n> > > >  \t{ GST_VIDEO_FORMAT_NV24, formats::NV24 },\n> > > > +\n> > > > +\t/* YUV Packed */\n> > > >  \t{ GST_VIDEO_FORMAT_UYVY, formats::UYVY },\n> > > >  \t{ GST_VIDEO_FORMAT_VYUY, formats::VYUY },\n> > > >  \t{ GST_VIDEO_FORMAT_YUY2, formats::YUYV },\n> > > >  \t{ GST_VIDEO_FORMAT_YVYU, formats::YVYU },\n> > > > +\n> > > > +\t/* Planar Formats */\n> > > > +\t{ GST_VIDEO_FORMAT_I420, formats::YUV420 },\n> > > > +\t{ GST_VIDEO_FORMAT_YV12, formats::YVU420 },\n> > > > +\t{ GST_VIDEO_FORMAT_Y42B, formats::YUV422 },\n> > > > +\n> > > >  \t/* \\todo NV42 is used in libcamera but is not mapped in GStreamer yet. */\n> > > >  };\n> > > >  \n> > > > -- \n> > > > 2.30.2\n> > > > \n> > \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 8A5EBBF01C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Sep 2021 15:31:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CCDA66918C;\n\tWed, 22 Sep 2021 17:31:10 +0200 (CEST)","from mail-qk1-x729.google.com (mail-qk1-x729.google.com\n\t[IPv6:2607:f8b0:4864:20::729])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 417086917F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Sep 2021 17:31:09 +0200 (CEST)","by mail-qk1-x729.google.com with SMTP id c7so11202176qka.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Sep 2021 08:31:09 -0700 (PDT)","from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net.\n\t[173.246.12.168]) by smtp.gmail.com with ESMTPSA id\n\tr5sm1537720qta.26.2021.09.22.08.31.07\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 22 Sep 2021 08:31:07 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=ndufresne-ca.20210112.gappssmtp.com\n\theader.i=@ndufresne-ca.20210112.gappssmtp.com\n\theader.b=\"1WjIHCyn\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ndufresne-ca.20210112.gappssmtp.com; s=20210112;\n\th=message-id:subject:from:to:cc:date:in-reply-to:references\n\t:user-agent:mime-version:content-transfer-encoding;\n\tbh=Y9NRPxhxely6hh97fdeovMXuDyewDDOhn+tyKWUJzBU=;\n\tb=1WjIHCyn2fhaXNUce6UH8L68AKUtjbzE+iSfMNA0ZCx6FNgLSL46lmMypPCHqimLZe\n\tiotl43WCXgBRpw7CHOGLZjVb9rJmefgdAu+JJaDtN3Err8IyFp08ZzG2ONCDFfAanGyA\n\t5PuBD2or9kCl9MJARkvlnC6o8jpUwtJoLzNQc0TS0KoOoTXWVKsaCf1Osmuet+EwlTGU\n\t/e0oVRPoKHWV1LINwRcWQWDMNwWWZM/R5x1CmWUslsvgH2a8ib+p13/1FqvWVcZm6kWe\n\t3UzqxWmtFODR0dB8XUnQ8HFKD1aGohJmld/RFJ77IfIFBeqLqxhKvJVSy5k+tOZY1lJf\n\tnXOw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to\n\t:references:user-agent:mime-version:content-transfer-encoding;\n\tbh=Y9NRPxhxely6hh97fdeovMXuDyewDDOhn+tyKWUJzBU=;\n\tb=UMbFU+VoETHs/b5N+rso4+Iybc4YDAE354e54GljxZCrxHGNy2uHqCWecmL/w2MgmM\n\twNv3UtfWoVWC7TgIker6f1Bp+H9V6fkB57T2bBDguyjMJjbAdcK9Ql8Ixpj+HrKHiGVK\n\tV1IbZRD8kt6QrPd9dTa6XkVhsb8pAsqh2EdaKnbrzZsRSyur+LmmQ4gCUqmJ21MernrD\n\tJhZ8I2Douehn0kGtBPOlc0s7i9cmKxzA1d8+M2QSkspLozTnzuLN/SXH6UQsbrdj8Jo6\n\tRARJeZlc6bvE1cJBVl8SmLCUVZhtfn6RdjsZG5pSkfuvi79aAlRmQpxMN+Wr7MZcL8sb\n\tqcqw==","X-Gm-Message-State":"AOAM530A8lk7P3oV0kS4f+4V6w5iMjFPsPUGXCiIUVV8EzAaYrjQfyOV\n\t0OjKOyoRA/KgeY0pTbqmJkLzxFcSoE3KDQ==","X-Google-Smtp-Source":"ABdhPJwYD5giSxu9/eW9B4eKqsqaTFbqUC1w12iiNcnFV5BZG82iCyAedI+tzN9kx9LOtxy/34bYVA==","X-Received":"by 2002:a37:a4c1:: with SMTP id\n\tn184mr424827qke.374.1632324667931; \n\tWed, 22 Sep 2021 08:31:07 -0700 (PDT)","Message-ID":"<ad3b7fe58c87386ad777d621cd285bab8ff6f0bb.camel@ndufresne.ca>","From":"Nicolas Dufresne <nicolas@ndufresne.ca>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>, \n\tpaul.elder@ideasonboard.com","Date":"Wed, 22 Sep 2021 11:31:06 -0400","In-Reply-To":"<a25c07f9-c8bc-35a9-9e06-e973d8be2dfc@ideasonboard.com>","References":"<20210921153515.2785148-1-kieran.bingham@ideasonboard.com>\n\t<20210922050030.GE4382@pyrite.rasen.tech>\n\t<41a491a71ff09761312a4f65efe9f390068dc007.camel@ndufresne.ca>\n\t<a25c07f9-c8bc-35a9-9e06-e973d8be2dfc@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","User-Agent":"Evolution 3.40.4 (3.40.4-1.fc34) ","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support planar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]