[{"id":24400,"web_url":"https://patchwork.libcamera.org/comment/24400/","msgid":"<165991136560.1706285.16877382058527179320@Monstersaurus>","date":"2022-08-07T22:29:25","subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","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-07 03:17:18)\n> Extend the SDL sink with support for NV12 textures, useful on platforms\n> that don't support packed YUYV formats.\n> \n\n\\o/\n\nThis will help IPU3 ... I'll try to test this some point this week\nif I can, if no one else beats me to it.\n\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/cam/sdl_sink.cpp        |  3 +++\n>  src/cam/sdl_texture_yuv.cpp | 13 ++++++++++++-\n>  src/cam/sdl_texture_yuv.h   |  9 ++++++++-\n>  3 files changed, 23 insertions(+), 2 deletions(-)\n> \n> diff --git a/src/cam/sdl_sink.cpp b/src/cam/sdl_sink.cpp\n> index 9675cf275186..23fe2b1e9f05 100644\n> --- a/src/cam/sdl_sink.cpp\n> +++ b/src/cam/sdl_sink.cpp\n> @@ -67,6 +67,9 @@ int SDLSink::configure(const libcamera::CameraConfiguration &config)\n>                 texture_ = std::make_unique<SDLTextureMJPG>(rect_);\n>                 break;\n>  #endif\n> +       case libcamera::formats::NV12:\n> +               texture_ = std::make_unique<SDLTextureNV12>(rect_, cfg.stride);\n> +               break;\n>         case libcamera::formats::YUYV:\n>                 texture_ = std::make_unique<SDLTextureYUYV>(rect_, cfg.stride);\n>                 break;\n> diff --git a/src/cam/sdl_texture_yuv.cpp b/src/cam/sdl_texture_yuv.cpp\n> index a5721182a68b..431e836d2d2c 100644\n> --- a/src/cam/sdl_texture_yuv.cpp\n> +++ b/src/cam/sdl_texture_yuv.cpp\n> @@ -2,13 +2,24 @@\n>  /*\n>   * Copyright (C) 2022, Ideas on Board Oy\n>   *\n> - * sdl_texture_yuv.cpp - SDL Texture YUYV\n> + * sdl_texture_yuv.cpp - SDL YUV Textures\n>   */\n>  \n>  #include \"sdl_texture_yuv.h\"\n>  \n>  using namespace libcamera;\n>  \n> +SDLTextureNV12::SDLTextureNV12(const SDL_Rect &rect, unsigned int stride)\n> +       : SDLTexture(rect, SDL_PIXELFORMAT_NV12, stride)\n> +{\n> +}\n> +\n> +void SDLTextureNV12::update(const std::vector<libcamera::Span<const uint8_t>> &data)\n> +{\n> +       SDL_UpdateNVTexture(ptr_, &rect_, data[0].data(), pitch_,\n> +                           data[1].data(), pitch_);\n\nWow! Well that was easy hey.\n\n\n> +}\n> +\n>  SDLTextureYUYV::SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride)\n>         : SDLTexture(rect, SDL_PIXELFORMAT_YUY2, stride)\n>  {\n> diff --git a/src/cam/sdl_texture_yuv.h b/src/cam/sdl_texture_yuv.h\n> index c9130298b91d..9da611fe0e36 100644\n> --- a/src/cam/sdl_texture_yuv.h\n> +++ b/src/cam/sdl_texture_yuv.h\n> @@ -2,13 +2,20 @@\n>  /*\n>   * Copyright (C) 2022, Ideas on Board Oy\n>   *\n> - * sdl_texture_yuyv.h - SDL Texture YUYV\n> + * sdl_texture_yuyv.h - SDL YUV Textures\n\nWith /sdl_texture_yuyv/sdl_texture_yuv/ in an earlier patch ;-)\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n>   */\n>  \n>  #pragma once\n>  \n>  #include \"sdl_texture.h\"\n>  \n> +class SDLTextureNV12 : public SDLTexture\n> +{\n> +public:\n> +       SDLTextureNV12(const SDL_Rect &rect, unsigned int stride);\n> +       void update(const std::vector<libcamera::Span<const uint8_t>> &data) override;\n> +};\n> +\n>  class SDLTextureYUYV : public SDLTexture\n>  {\n>  public:\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 1D971BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun,  7 Aug 2022 22:29:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 804836332B;\n\tMon,  8 Aug 2022 00:29:29 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 851CE603EF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Aug 2022 00:29:28 +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 1BF7A3F1;\n\tMon,  8 Aug 2022 00:29:28 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1659911369;\n\tbh=fTSPnbBHPpa7b8RgUAFdwi+o0McQ2HYBL+gY2thkN/o=;\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:\n\tFrom;\n\tb=USdIQA8Szk8yYPcvy9W9sSrwuYQeInw/EXXitdE1KxmUIzObRBssuljVBLb4w3mxJ\n\te7L1PQT69/BOxD/mNZKRoVjaxADPlH0QeNI5jw/p8q1uyXlLzv4i2YqL6ZdL/g4U+N\n\tWBG/jWrl8RkwKeA0NA9SMD1wsWqsI1+JGzFGPMMiSgP/qPKtJJO3WEN7I71jFP4oOD\n\t46xF6YiJ43Clg+SUCZqHtN7vzPrCbq6a20BH6SClEr8EhvX1UGCjd0ISpHgmjs8nNn\n\tjmSQcapyxZ64BuLstnPvrZWu8hE0bYXDqRWxpfTFlfa9vP0UyvtIRgcPAw/RRFehJY\n\tW+znsTg4PZ6/Q==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1659911368;\n\tbh=fTSPnbBHPpa7b8RgUAFdwi+o0McQ2HYBL+gY2thkN/o=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=JSGZHur3+i3Vc2OGIahpBNSFsHw5zo/k5RwrFiZtkc5TA9YZzyQCh5xlpGz57Y5VP\n\tBuamloPfbOxOOXvHmsF56vNKU0kVBGafCTK2KTYUlhk+ogkaEVIbR6z49oUt66Sr7u\n\t35ICm+6LGP4S/TqdOiXIvF3fWzsZAN6xL8WAvmtA="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"JSGZHur3\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220807021718.9789-5-laurent.pinchart@ideasonboard.com>","References":"<20220807021718.9789-1-laurent.pinchart@ideasonboard.com>\n\t<20220807021718.9789-5-laurent.pinchart@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Sun, 07 Aug 2022 23:29:25 +0100","Message-ID":"<165991136560.1706285.16877382058527179320@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24411,"web_url":"https://patchwork.libcamera.org/comment/24411/","msgid":"<20220808083050.txdp6mquycnwh6tu@uno.localdomain>","date":"2022-08-08T08:30:50","subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent\n\nOn Sun, Aug 07, 2022 at 05:17:18AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> Extend the SDL sink with support for NV12 textures, useful on platforms\n> that don't support packed YUYV formats.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/cam/sdl_sink.cpp        |  3 +++\n>  src/cam/sdl_texture_yuv.cpp | 13 ++++++++++++-\n>  src/cam/sdl_texture_yuv.h   |  9 ++++++++-\n>  3 files changed, 23 insertions(+), 2 deletions(-)\n>\n> diff --git a/src/cam/sdl_sink.cpp b/src/cam/sdl_sink.cpp\n> index 9675cf275186..23fe2b1e9f05 100644\n> --- a/src/cam/sdl_sink.cpp\n> +++ b/src/cam/sdl_sink.cpp\n> @@ -67,6 +67,9 @@ int SDLSink::configure(const libcamera::CameraConfiguration &config)\n>  \t\ttexture_ = std::make_unique<SDLTextureMJPG>(rect_);\n>  \t\tbreak;\n>  #endif\n> +\tcase libcamera::formats::NV12:\n> +\t\ttexture_ = std::make_unique<SDLTextureNV12>(rect_, cfg.stride);\n> +\t\tbreak;\n>  \tcase libcamera::formats::YUYV:\n>  \t\ttexture_ = std::make_unique<SDLTextureYUYV>(rect_, cfg.stride);\n>  \t\tbreak;\n> diff --git a/src/cam/sdl_texture_yuv.cpp b/src/cam/sdl_texture_yuv.cpp\n> index a5721182a68b..431e836d2d2c 100644\n> --- a/src/cam/sdl_texture_yuv.cpp\n> +++ b/src/cam/sdl_texture_yuv.cpp\n> @@ -2,13 +2,24 @@\n>  /*\n>   * Copyright (C) 2022, Ideas on Board Oy\n>   *\n> - * sdl_texture_yuv.cpp - SDL Texture YUYV\n> + * sdl_texture_yuv.cpp - SDL YUV Textures\n>   */\n>\n>  #include \"sdl_texture_yuv.h\"\n>\n>  using namespace libcamera;\n>\n> +SDLTextureNV12::SDLTextureNV12(const SDL_Rect &rect, unsigned int stride)\n> +\t: SDLTexture(rect, SDL_PIXELFORMAT_NV12, stride)\n> +{\n> +}\n> +\n> +void SDLTextureNV12::update(const std::vector<libcamera::Span<const uint8_t>> &data)\n> +{\n> +\tSDL_UpdateNVTexture(ptr_, &rect_, data[0].data(), pitch_,\n> +\t\t\t    data[1].data(), pitch_);\n> +}\n> +\n\nAlternatively, an overloaded constructor that accepts more plane and\nhandle the right call in update() could be considered.\n\nBut I guess there won't be that many other classes duplications, so\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n   j\n>  SDLTextureYUYV::SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride)\n>  \t: SDLTexture(rect, SDL_PIXELFORMAT_YUY2, stride)\n>  {\n> diff --git a/src/cam/sdl_texture_yuv.h b/src/cam/sdl_texture_yuv.h\n> index c9130298b91d..9da611fe0e36 100644\n> --- a/src/cam/sdl_texture_yuv.h\n> +++ b/src/cam/sdl_texture_yuv.h\n> @@ -2,13 +2,20 @@\n>  /*\n>   * Copyright (C) 2022, Ideas on Board Oy\n>   *\n> - * sdl_texture_yuyv.h - SDL Texture YUYV\n> + * sdl_texture_yuyv.h - SDL YUV Textures\n>   */\n>\n>  #pragma once\n>\n>  #include \"sdl_texture.h\"\n>\n> +class SDLTextureNV12 : public SDLTexture\n> +{\n> +public:\n> +\tSDLTextureNV12(const SDL_Rect &rect, unsigned int stride);\n> +\tvoid update(const std::vector<libcamera::Span<const uint8_t>> &data) override;\n> +};\n> +\n>  class SDLTextureYUYV : public SDLTexture\n>  {\n>  public:\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 2FFF8BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Aug 2022 08:30:54 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AFEED6332B;\n\tMon,  8 Aug 2022 10:30:53 +0200 (CEST)","from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net\n\t[217.70.183.194])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 289AD63326\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Aug 2022 10:30:53 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 919534000B;\n\tMon,  8 Aug 2022 08:30:52 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1659947453;\n\tbh=6KPRFAPExOMvjTs410Xvv0v2ZhwBbce5B2vdMjNksFg=;\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=uUoDsKfRGTHxTlQxU0dtn3003sSeDV4wOYlRMnHDwWnjnrLffDpVoVR86Za8SZSrC\n\tN3/jTyuLTbFODYskOqGOVrx+a+3KIaGM/q9vA8uX814ryCwrDFHO34dAF0WPCSPGA/\n\t2eMc1zJoZOhzewouMONDefE7xMj3A1qk2gl8ay8cp+6XUwvy0OYtIWRKROPpS+yux0\n\tNptsMKi4HqRKVyigk29xIOHdT3Gh8wZIlm6KMzYo72r5vMkodPEKyJnHnm86AQdyVj\n\tNV3dqfRcSCSE/YY/z67bXXHZnK9cNix9H2JHqbBAssYrb0VaIu1gFI1/196vmfXLQR\n\t6tlLURAji2HuA==","Date":"Mon, 8 Aug 2022 10:30:50 +0200","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20220808083050.txdp6mquycnwh6tu@uno.localdomain>","References":"<20220807021718.9789-1-laurent.pinchart@ideasonboard.com>\n\t<20220807021718.9789-5-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220807021718.9789-5-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","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":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24412,"web_url":"https://patchwork.libcamera.org/comment/24412/","msgid":"<20220808083127.olqua5hu3zo6qx74@uno.localdomain>","date":"2022-08-08T08:31:27","subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran\n\nOn Sun, Aug 07, 2022 at 11:29:25PM +0100, Kieran Bingham via libcamera-devel wrote:\n> Quoting Laurent Pinchart via libcamera-devel (2022-08-07 03:17:18)\n> > Extend the SDL sink with support for NV12 textures, useful on platforms\n> > that don't support packed YUYV formats.\n> >\n>\n> \\o/\n>\n> This will help IPU3 ... I'll try to test this some point this week\n> if I can, if no one else beats me to it.\n\nI tried building the series on cros, but I cannot find any sdl library\nthere :/\n\n>\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/cam/sdl_sink.cpp        |  3 +++\n> >  src/cam/sdl_texture_yuv.cpp | 13 ++++++++++++-\n> >  src/cam/sdl_texture_yuv.h   |  9 ++++++++-\n> >  3 files changed, 23 insertions(+), 2 deletions(-)\n> >\n> > diff --git a/src/cam/sdl_sink.cpp b/src/cam/sdl_sink.cpp\n> > index 9675cf275186..23fe2b1e9f05 100644\n> > --- a/src/cam/sdl_sink.cpp\n> > +++ b/src/cam/sdl_sink.cpp\n> > @@ -67,6 +67,9 @@ int SDLSink::configure(const libcamera::CameraConfiguration &config)\n> >                 texture_ = std::make_unique<SDLTextureMJPG>(rect_);\n> >                 break;\n> >  #endif\n> > +       case libcamera::formats::NV12:\n> > +               texture_ = std::make_unique<SDLTextureNV12>(rect_, cfg.stride);\n> > +               break;\n> >         case libcamera::formats::YUYV:\n> >                 texture_ = std::make_unique<SDLTextureYUYV>(rect_, cfg.stride);\n> >                 break;\n> > diff --git a/src/cam/sdl_texture_yuv.cpp b/src/cam/sdl_texture_yuv.cpp\n> > index a5721182a68b..431e836d2d2c 100644\n> > --- a/src/cam/sdl_texture_yuv.cpp\n> > +++ b/src/cam/sdl_texture_yuv.cpp\n> > @@ -2,13 +2,24 @@\n> >  /*\n> >   * Copyright (C) 2022, Ideas on Board Oy\n> >   *\n> > - * sdl_texture_yuv.cpp - SDL Texture YUYV\n> > + * sdl_texture_yuv.cpp - SDL YUV Textures\n> >   */\n> >\n> >  #include \"sdl_texture_yuv.h\"\n> >\n> >  using namespace libcamera;\n> >\n> > +SDLTextureNV12::SDLTextureNV12(const SDL_Rect &rect, unsigned int stride)\n> > +       : SDLTexture(rect, SDL_PIXELFORMAT_NV12, stride)\n> > +{\n> > +}\n> > +\n> > +void SDLTextureNV12::update(const std::vector<libcamera::Span<const uint8_t>> &data)\n> > +{\n> > +       SDL_UpdateNVTexture(ptr_, &rect_, data[0].data(), pitch_,\n> > +                           data[1].data(), pitch_);\n>\n> Wow! Well that was easy hey.\n>\n>\n> > +}\n> > +\n> >  SDLTextureYUYV::SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride)\n> >         : SDLTexture(rect, SDL_PIXELFORMAT_YUY2, stride)\n> >  {\n> > diff --git a/src/cam/sdl_texture_yuv.h b/src/cam/sdl_texture_yuv.h\n> > index c9130298b91d..9da611fe0e36 100644\n> > --- a/src/cam/sdl_texture_yuv.h\n> > +++ b/src/cam/sdl_texture_yuv.h\n> > @@ -2,13 +2,20 @@\n> >  /*\n> >   * Copyright (C) 2022, Ideas on Board Oy\n> >   *\n> > - * sdl_texture_yuyv.h - SDL Texture YUYV\n> > + * sdl_texture_yuyv.h - SDL YUV Textures\n>\n> With /sdl_texture_yuyv/sdl_texture_yuv/ in an earlier patch ;-)\n>\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> >   */\n> >\n> >  #pragma once\n> >\n> >  #include \"sdl_texture.h\"\n> >\n> > +class SDLTextureNV12 : public SDLTexture\n> > +{\n> > +public:\n> > +       SDLTextureNV12(const SDL_Rect &rect, unsigned int stride);\n> > +       void update(const std::vector<libcamera::Span<const uint8_t>> &data) override;\n> > +};\n> > +\n> >  class SDLTextureYUYV : public SDLTexture\n> >  {\n> >  public:\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 5E1F4BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Aug 2022 08:31:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 203D96332B;\n\tMon,  8 Aug 2022 10:31:35 +0200 (CEST)","from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[217.70.183.199])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 87E1963326\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Aug 2022 10:31:33 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 1451DFF807;\n\tMon,  8 Aug 2022 08:31:31 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1659947495;\n\tbh=eNDJkye8B3z4zXSVB0h81X33YHFxM7IhYaGAmCNzW14=;\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=MkflMgZYDbeH3xWWnCy0bK4ZXmv6lQNQfyXtmHrLTSwcBSVOWLKSBd+G84RkxlCFp\n\tr0MAO+ddIQeREp2qfepKDHqBbVzXqggLPiuL7la22HP8K1IB3P7MjEIP5B02lwziKt\n\tT7dmjrGRHgW9FAITdpxpAAK4O/nICfhhASPKOAAKq+jMWmxaPhUaTi/E8NKJJwylmG\n\tdugU6t7aRQvoI+eTHn9RclUItWQAiSwcVDz8SLIU1ymqEJQ5sqvEZ++RFeAwEfy3AC\n\tIe6qTN21xVKFa4HPBqdX7ZtFqPxlxdQsED6SCJb7lDfONVqvnGDWLq/mdLtcSUvZfb\n\twFjXGWv+3a8Vw==","Date":"Mon, 8 Aug 2022 10:31:27 +0200","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20220808083127.olqua5hu3zo6qx74@uno.localdomain>","References":"<20220807021718.9789-1-laurent.pinchart@ideasonboard.com>\n\t<20220807021718.9789-5-laurent.pinchart@ideasonboard.com>\n\t<165991136560.1706285.16877382058527179320@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<165991136560.1706285.16877382058527179320@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","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":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24422,"web_url":"https://patchwork.libcamera.org/comment/24422/","msgid":"<CAOgh=Fz-QDtQhR76-Lx8h1unN9aa=2b_SqG=V=9+6zu7OqnNhQ@mail.gmail.com>","date":"2022-08-08T09:21:34","subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","submitter":{"id":101,"url":"https://patchwork.libcamera.org/api/people/101/","name":"Eric Curtin","email":"ecurtin@redhat.com"},"content":"On Sun, 7 Aug 2022 at 03:17, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Extend the SDL sink with support for NV12 textures, useful on platforms\n> that don't support packed YUYV formats.\n>\n\nLGTM.\n\nReviewed-by: Eric Curtin <ecurtin@redhat.com>\n\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/cam/sdl_sink.cpp        |  3 +++\n>  src/cam/sdl_texture_yuv.cpp | 13 ++++++++++++-\n>  src/cam/sdl_texture_yuv.h   |  9 ++++++++-\n>  3 files changed, 23 insertions(+), 2 deletions(-)\n>\n> diff --git a/src/cam/sdl_sink.cpp b/src/cam/sdl_sink.cpp\n> index 9675cf275186..23fe2b1e9f05 100644\n> --- a/src/cam/sdl_sink.cpp\n> +++ b/src/cam/sdl_sink.cpp\n> @@ -67,6 +67,9 @@ int SDLSink::configure(const libcamera::CameraConfiguration &config)\n>                 texture_ = std::make_unique<SDLTextureMJPG>(rect_);\n>                 break;\n>  #endif\n> +       case libcamera::formats::NV12:\n> +               texture_ = std::make_unique<SDLTextureNV12>(rect_, cfg.stride);\n> +               break;\n>         case libcamera::formats::YUYV:\n>                 texture_ = std::make_unique<SDLTextureYUYV>(rect_, cfg.stride);\n>                 break;\n> diff --git a/src/cam/sdl_texture_yuv.cpp b/src/cam/sdl_texture_yuv.cpp\n> index a5721182a68b..431e836d2d2c 100644\n> --- a/src/cam/sdl_texture_yuv.cpp\n> +++ b/src/cam/sdl_texture_yuv.cpp\n> @@ -2,13 +2,24 @@\n>  /*\n>   * Copyright (C) 2022, Ideas on Board Oy\n>   *\n> - * sdl_texture_yuv.cpp - SDL Texture YUYV\n> + * sdl_texture_yuv.cpp - SDL YUV Textures\n>   */\n>\n>  #include \"sdl_texture_yuv.h\"\n>\n>  using namespace libcamera;\n>\n> +SDLTextureNV12::SDLTextureNV12(const SDL_Rect &rect, unsigned int stride)\n> +       : SDLTexture(rect, SDL_PIXELFORMAT_NV12, stride)\n> +{\n> +}\n> +\n> +void SDLTextureNV12::update(const std::vector<libcamera::Span<const uint8_t>> &data)\n> +{\n> +       SDL_UpdateNVTexture(ptr_, &rect_, data[0].data(), pitch_,\n> +                           data[1].data(), pitch_);\n> +}\n> +\n>  SDLTextureYUYV::SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride)\n>         : SDLTexture(rect, SDL_PIXELFORMAT_YUY2, stride)\n>  {\n> diff --git a/src/cam/sdl_texture_yuv.h b/src/cam/sdl_texture_yuv.h\n> index c9130298b91d..9da611fe0e36 100644\n> --- a/src/cam/sdl_texture_yuv.h\n> +++ b/src/cam/sdl_texture_yuv.h\n> @@ -2,13 +2,20 @@\n>  /*\n>   * Copyright (C) 2022, Ideas on Board Oy\n>   *\n> - * sdl_texture_yuyv.h - SDL Texture YUYV\n> + * sdl_texture_yuyv.h - SDL YUV Textures\n>   */\n>\n>  #pragma once\n>\n>  #include \"sdl_texture.h\"\n>\n> +class SDLTextureNV12 : public SDLTexture\n> +{\n> +public:\n> +       SDLTextureNV12(const SDL_Rect &rect, unsigned int stride);\n> +       void update(const std::vector<libcamera::Span<const uint8_t>> &data) override;\n> +};\n> +\n>  class SDLTextureYUYV : public SDLTexture\n>  {\n>  public:\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 E0FBDC3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Aug 2022 09:21:54 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A91656332B;\n\tMon,  8 Aug 2022 11:21:54 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D17E063326\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Aug 2022 11:21:53 +0200 (CEST)","from mail-qt1-f198.google.com (mail-qt1-f198.google.com\n\t[209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\tus-mta-497-6vLcFr6OPIuW2qJttn4jNA-1; Mon, 08 Aug 2022 05:21:51 -0400","by mail-qt1-f198.google.com with SMTP id\n\tbb40-20020a05622a1b2800b00342eb08cc48so3677984qtb.17\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 08 Aug 2022 02:21:51 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1659950514;\n\tbh=Ey7FFHNWr6rjJsAq1416QUKPSOIfkgvVAbBDFKMsBfM=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=WoTMryumEo1U4nFQGzjT9halZR6f7GiQyTLWlerP4zZ3Cu38avpZJnRxHN7GK78ZJ\n\tmhoJfle8e/fzBjtVsPXBsO1YjJkKIfiV6PNmO4jFa3Ip3fcneJy6jBF6puFEHnrp4Y\n\tjz29ohmyEpEwyiPT5i2xenPUNhkhoMg8WNdb4fex9+GGQotEogKx93ZoJ5R1qR+5Wg\n\tcdVqXu/48bP62x7GI+KqeDqzBnZ8uYXxGg3knGxBpttkjXM3Z/TUmX4nlwRKD9XHPN\n\tkF9sApbFK1R+2m0BolW8pbHJYZY/poJOdtAlecJ5yerMtzhfEHJqfX4gx0iy+C/aGx\n\tl3SV/GBJ/+EDA==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1659950512;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=GkzcRAuBGF30gp47lGdSdH6+GoNtBik/2gzbsXvBfSo=;\n\tb=iBZ6XNHS77N+6EZI/sI1NnSgxSuUkpR2lQbXck7E0xwr29g2uWSoqW8herQQJUZKWacKhn\n\tMhcUc1Mh9O23isT6LJvNuO1fyARDbI9B0SSmvHBROTmcOi52/xT0kKF0YhYCWCRLEXgQim\n\tJWWlv/cM6R720sDLGLsuHqPLc8i+j5U="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=redhat.com\n\theader.i=@redhat.com header.b=\"iBZ6XNHS\"; \n\tdkim-atps=neutral","X-MC-Unique":"6vLcFr6OPIuW2qJttn4jNA-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=GkzcRAuBGF30gp47lGdSdH6+GoNtBik/2gzbsXvBfSo=;\n\tb=aHneGaeXJmVppL0fJBd9X1Azmi6Mc3z4MpnWQmzV1agPmEzXtKl6fi9Eoa+hUqqnzk\n\tGQcxkotEZMXlYUc90cs3Mn07ldFgqkBx4oAo2jvGGWTEwlNzICKIZbnYHpQHjmx37LI5\n\tNd4a3A2zcYpPNbpu8HgAsE4g4B6lA7cVHhi3DCigV4BkopFCJla3Z6cJmEYV54qHczXK\n\tVQpjqWlOfEUJSn5AXwscgft8fGzQW5y0K9SFDu7P35DTtUt/vevcwQWJyr6GfSG7wWcK\n\tnbVvL1RhMX0XpJPqjTCFIxx0IkZWitSV/j+Xdj56ZOOpwxkFb7MJVvsBdeM5ZJl7viuT\n\tC9tA==","X-Gm-Message-State":"ACgBeo1ghmd9kp0nslfzI8kXe0MAww/VywEL2JJ/D1q32TmFaLAUXhfa\n\t+CjW/eI2GdzQOp+Is9TBJ8WkNpkzVMvGISkQXJywd/WNVTDLJE0d6FSgCONwpGLzCm+J0DmL/U1\n\tv4WLf47DVbSS0v1PfC8WaymaAng7XI0HgnOQ3d7chgpcihf9KOg==","X-Received":["by 2002:a05:622a:1213:b0:31e:e1de:fc8d with SMTP id\n\ty19-20020a05622a121300b0031ee1defc8dmr15474333qtx.652.1659950510660; \n\tMon, 08 Aug 2022 02:21:50 -0700 (PDT)","by 2002:a05:622a:1213:b0:31e:e1de:fc8d with SMTP id\n\ty19-20020a05622a121300b0031ee1defc8dmr15474326qtx.652.1659950510465;\n\tMon, 08 Aug 2022 02:21:50 -0700 (PDT)"],"X-Google-Smtp-Source":"AA6agR67Ua4xzubQpbNYil6etmxrX/1/4qxnMZRxoKbELtWkcdspycmO0S420h1VnljtbJtQVG9ZLn07m/LzSx//TDQ=","MIME-Version":"1.0","References":"<20220807021718.9789-1-laurent.pinchart@ideasonboard.com>\n\t<20220807021718.9789-5-laurent.pinchart@ideasonboard.com>","In-Reply-To":"<20220807021718.9789-5-laurent.pinchart@ideasonboard.com>","Date":"Mon, 8 Aug 2022 10:21:34 +0100","Message-ID":"<CAOgh=Fz-QDtQhR76-Lx8h1unN9aa=2b_SqG=V=9+6zu7OqnNhQ@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","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":"Eric Curtin via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Eric Curtin <ecurtin@redhat.com>","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":24432,"web_url":"https://patchwork.libcamera.org/comment/24432/","msgid":"<YvEeuz7bCp0op8F7@pendragon.ideasonboard.com>","date":"2022-08-08T14:33:31","subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Mon, Aug 08, 2022 at 10:30:50AM +0200, Jacopo Mondi wrote:\n> On Sun, Aug 07, 2022 at 05:17:18AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> > Extend the SDL sink with support for NV12 textures, useful on platforms\n> > that don't support packed YUYV formats.\n> >\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/cam/sdl_sink.cpp        |  3 +++\n> >  src/cam/sdl_texture_yuv.cpp | 13 ++++++++++++-\n> >  src/cam/sdl_texture_yuv.h   |  9 ++++++++-\n> >  3 files changed, 23 insertions(+), 2 deletions(-)\n> >\n> > diff --git a/src/cam/sdl_sink.cpp b/src/cam/sdl_sink.cpp\n> > index 9675cf275186..23fe2b1e9f05 100644\n> > --- a/src/cam/sdl_sink.cpp\n> > +++ b/src/cam/sdl_sink.cpp\n> > @@ -67,6 +67,9 @@ int SDLSink::configure(const libcamera::CameraConfiguration &config)\n> >  \t\ttexture_ = std::make_unique<SDLTextureMJPG>(rect_);\n> >  \t\tbreak;\n> >  #endif\n> > +\tcase libcamera::formats::NV12:\n> > +\t\ttexture_ = std::make_unique<SDLTextureNV12>(rect_, cfg.stride);\n> > +\t\tbreak;\n> >  \tcase libcamera::formats::YUYV:\n> >  \t\ttexture_ = std::make_unique<SDLTextureYUYV>(rect_, cfg.stride);\n> >  \t\tbreak;\n> > diff --git a/src/cam/sdl_texture_yuv.cpp b/src/cam/sdl_texture_yuv.cpp\n> > index a5721182a68b..431e836d2d2c 100644\n> > --- a/src/cam/sdl_texture_yuv.cpp\n> > +++ b/src/cam/sdl_texture_yuv.cpp\n> > @@ -2,13 +2,24 @@\n> >  /*\n> >   * Copyright (C) 2022, Ideas on Board Oy\n> >   *\n> > - * sdl_texture_yuv.cpp - SDL Texture YUYV\n> > + * sdl_texture_yuv.cpp - SDL YUV Textures\n> >   */\n> >\n> >  #include \"sdl_texture_yuv.h\"\n> >\n> >  using namespace libcamera;\n> >\n> > +SDLTextureNV12::SDLTextureNV12(const SDL_Rect &rect, unsigned int stride)\n> > +\t: SDLTexture(rect, SDL_PIXELFORMAT_NV12, stride)\n> > +{\n> > +}\n> > +\n> > +void SDLTextureNV12::update(const std::vector<libcamera::Span<const uint8_t>> &data)\n> > +{\n> > +\tSDL_UpdateNVTexture(ptr_, &rect_, data[0].data(), pitch_,\n> > +\t\t\t    data[1].data(), pitch_);\n> > +}\n> > +\n> \n> Alternatively, an overloaded constructor that accepts more plane and\n> handle the right call in update() could be considered.\n> \n> But I guess there won't be that many other classes duplications, so\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nLet's consider that next time we add a new format :-)\n\n> >  SDLTextureYUYV::SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride)\n> >  \t: SDLTexture(rect, SDL_PIXELFORMAT_YUY2, stride)\n> >  {\n> > diff --git a/src/cam/sdl_texture_yuv.h b/src/cam/sdl_texture_yuv.h\n> > index c9130298b91d..9da611fe0e36 100644\n> > --- a/src/cam/sdl_texture_yuv.h\n> > +++ b/src/cam/sdl_texture_yuv.h\n> > @@ -2,13 +2,20 @@\n> >  /*\n> >   * Copyright (C) 2022, Ideas on Board Oy\n> >   *\n> > - * sdl_texture_yuyv.h - SDL Texture YUYV\n> > + * sdl_texture_yuyv.h - SDL YUV Textures\n> >   */\n> >\n> >  #pragma once\n> >\n> >  #include \"sdl_texture.h\"\n> >\n> > +class SDLTextureNV12 : public SDLTexture\n> > +{\n> > +public:\n> > +\tSDLTextureNV12(const SDL_Rect &rect, unsigned int stride);\n> > +\tvoid update(const std::vector<libcamera::Span<const uint8_t>> &data) override;\n> > +};\n> > +\n> >  class SDLTextureYUYV : public SDLTexture\n> >  {\n> >  public:","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 B5823BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Aug 2022 14:33:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 17B566332B;\n\tMon,  8 Aug 2022 16:33:44 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EF58B63315\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Aug 2022 16:33:42 +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 5E20E481;\n\tMon,  8 Aug 2022 16:33:42 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1659969224;\n\tbh=lPu74QpqU1k22rQNmatdH9fWaVRx531ZuY8oUgNk/Pk=;\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=wXkb6GGuhXm8YqFh3hgaR2/Po5kJ+Jz/Vkkt1ehPxibd2AC3Efb3jl6z59atwJJEO\n\tlglnZarC1WkXDIdf7SmLcaqCg+Dgp4OPLCMovFy8M4zmd2xznUdOnWzschX0VQqOWz\n\t7aIZlSbELNeFDMZVsV9nmzji0jMpItdqX2NyTRNjmu3IVVS9Puj8+iLWGJ8oI8zLwY\n\t8jmSGMmZ3FF5T3sjfa59T2Mil8IIfz9IPeB+7ys6iiH1cJBqP25+PLxFb7A+HjxxTa\n\tPcVwkY4HPG3JobsuBz9E0ptKzoUdmfHBfX8wQvLwATo4THcbanPfI905Db6TcMvuZV\n\tfn2Ns3OQj+V7A==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1659969222;\n\tbh=lPu74QpqU1k22rQNmatdH9fWaVRx531ZuY8oUgNk/Pk=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=sNXhLFrYgoM4xgAt9tikehh8EbdhUWtWvdJW37gNZA2pYu09rrPfMBOZqUpGV4Bai\n\tHanln2Hph+HRQoM4txjO35zXfsKRhhkCs5IG3GjwnWaEC6OuJplc9/kLCaHNCTynDE\n\tp9o2trEfRpg/ADunOVXhl9XBvWtaPrIY5EKLBjqE="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"sNXhLFrY\"; dkim-atps=neutral","Date":"Mon, 8 Aug 2022 17:33:31 +0300","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YvEeuz7bCp0op8F7@pendragon.ideasonboard.com>","References":"<20220807021718.9789-1-laurent.pinchart@ideasonboard.com>\n\t<20220807021718.9789-5-laurent.pinchart@ideasonboard.com>\n\t<20220808083050.txdp6mquycnwh6tu@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220808083050.txdp6mquycnwh6tu@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH 4/4] cam: sdl_sink: Add NV12 texture\n\tsupport","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":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]