[{"id":19214,"web_url":"https://patchwork.libcamera.org/comment/19214/","msgid":"<20210831102943.kherorhdwwv4dbj6@uno.localdomain>","date":"2021-08-31T10:29:43","subject":"Re: [libcamera-devel] [PATCH 1/5] android: yuv: Use\n\tCameraBuffer::stride() in PostProcessorYuv","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"hi Hiro,\n\nOn Tue, Aug 31, 2021 at 03:34:34PM +0900, Hirokazu Honda wrote:\n> PostProcessorYuv computes strides for a CameraBuffer. CameraBuffer has\n> stride() function. This replaces the computation with the function.\n>\n> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> ---\n>  src/android/yuv/post_processor_yuv.cpp | 13 +++++++------\n>  src/android/yuv/post_processor_yuv.h   |  1 -\n>  2 files changed, 7 insertions(+), 7 deletions(-)\n>\n> diff --git a/src/android/yuv/post_processor_yuv.cpp b/src/android/yuv/post_processor_yuv.cpp\n> index 6952fc38..12d6297d 100644\n> --- a/src/android/yuv/post_processor_yuv.cpp\n> +++ b/src/android/yuv/post_processor_yuv.cpp\n> @@ -69,9 +69,9 @@ int PostProcessorYuv::process(const FrameBuffer &source,\n>  \t\t\t\t    sourceStride_[1],\n>  \t\t\t\t    sourceSize_.width, sourceSize_.height,\n>  \t\t\t\t    destination->plane(0).data(),\n> -\t\t\t\t    destinationStride_[0],\n> +\t\t\t\t    destination->stride(0),\n>  \t\t\t\t    destination->plane(1).data(),\n> -\t\t\t\t    destinationStride_[1],\n> +\t\t\t\t    destination->stride(1),\n>  \t\t\t\t    destinationSize_.width,\n>  \t\t\t\t    destinationSize_.height,\n>  \t\t\t\t    libyuv::FilterMode::kFilterBilinear);\n> @@ -115,8 +115,8 @@ bool PostProcessorYuv::isValidBuffers(const FrameBuffer &source,\n>  \t\t\t<< destination.plane(0).size() << \", \"\n>  \t\t\t<< destination.plane(1).size()\n>  \t\t\t<< \"}, expected size: {\"\n> -\t\t\t<< sourceLength_[0] << \", \"\n> -\t\t\t<< sourceLength_[1] << \"}\";\n> +\t\t\t<< destinationLength_[0] << \", \"\n> +\t\t\t<< destinationLength_[1] << \"}\";\n\nIs this intended ?\n\n>  \t\treturn false;\n>  \t}\n>\n> @@ -132,13 +132,14 @@ void PostProcessorYuv::calculateLengths(const StreamConfiguration &inCfg,\n>  \tconst PixelFormatInfo &nv12Info = PixelFormatInfo::info(formats::NV12);\n>  \tfor (unsigned int i = 0; i < 2; i++) {\n>  \t\tsourceStride_[i] = inCfg.stride;\n> -\t\tdestinationStride_[i] = nv12Info.stride(destinationSize_.width, i, 1);\n> +\t\tconst unsigned int destinationStride =\n> +\t\t\tnv12Info.stride(destinationSize_.width, i, 1);\n>\n>  \t\tconst unsigned int vertSubSample =\n>  \t\t\tnv12Info.planes[i].verticalSubSampling;\n>  \t\tsourceLength_[i] = sourceStride_[i] *\n>  \t\t\t((sourceSize_.height + vertSubSample - 1) / vertSubSample);\n> -\t\tdestinationLength_[i] = destinationStride_[i] *\n> +\t\tdestinationLength_[i] = destinationStride *\n>  \t\t\t((destinationSize_.height + vertSubSample - 1) / vertSubSample);\n\nA comment on the existing implementation:\ndestinationLength_[i]  is used in isValidBuffer() only for this\ncomparison:\n\n\tif (destination.plane(0).size() < destinationLength_[0] ||\n\t    destination.plane(1).size() < destinationLength_[1]) {\n\nshouldn't we compare the source and dest ?\n\nAlso as destination is a CameraBuffer, shouldn't we use\nCameraBuffer::size(i) there ?\n\nThanks\n  j\n\n\n>  \t}\n>  }\n> diff --git a/src/android/yuv/post_processor_yuv.h b/src/android/yuv/post_processor_yuv.h\n> index f8b1ba23..1a0b5e89 100644\n> --- a/src/android/yuv/post_processor_yuv.h\n> +++ b/src/android/yuv/post_processor_yuv.h\n> @@ -36,7 +36,6 @@ private:\n>  \tunsigned int sourceLength_[2] = {};\n>  \tunsigned int destinationLength_[2] = {};\n>  \tunsigned int sourceStride_[2] = {};\n> -\tunsigned int destinationStride_[2] = {};\n>  };\n>\n>  #endif /* __ANDROID_POST_PROCESSOR_YUV_H__ */\n> --\n> 2.33.0.259.gc128427fd7-goog\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 7B9B8BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 31 Aug 2021 10:28:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CB7FA6916A;\n\tTue, 31 Aug 2021 12:28:55 +0200 (CEST)","from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net\n\t[217.70.183.201])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BF6F168890\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 31 Aug 2021 12:28:54 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 42C1A1BF204;\n\tTue, 31 Aug 2021 10:28:53 +0000 (UTC)"],"Date":"Tue, 31 Aug 2021 12:29:43 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<20210831102943.kherorhdwwv4dbj6@uno.localdomain>","References":"<20210831063438.785767-1-hiroh@chromium.org>\n\t<20210831063438.785767-2-hiroh@chromium.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210831063438.785767-2-hiroh@chromium.org>","Subject":"Re: [libcamera-devel] [PATCH 1/5] android: yuv: Use\n\tCameraBuffer::stride() in PostProcessorYuv","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@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19218,"web_url":"https://patchwork.libcamera.org/comment/19218/","msgid":"<CAO5uPHMZkDd4kVja4o69gW8d-QUQ3MhY1UNaWRnGVAB+kY1hBA@mail.gmail.com>","date":"2021-08-31T18:11:00","subject":"Re: [libcamera-devel] [PATCH 1/5] android: yuv: Use\n\tCameraBuffer::stride() in PostProcessorYuv","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Jacopo,\n\nOn Tue, Aug 31, 2021 at 7:28 PM Jacopo Mondi <jacopo@jmondi.org> wrote:\n>\n> hi Hiro,\n>\n> On Tue, Aug 31, 2021 at 03:34:34PM +0900, Hirokazu Honda wrote:\n> > PostProcessorYuv computes strides for a CameraBuffer. CameraBuffer has\n> > stride() function. This replaces the computation with the function.\n> >\n> > Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> > ---\n> >  src/android/yuv/post_processor_yuv.cpp | 13 +++++++------\n> >  src/android/yuv/post_processor_yuv.h   |  1 -\n> >  2 files changed, 7 insertions(+), 7 deletions(-)\n> >\n> > diff --git a/src/android/yuv/post_processor_yuv.cpp b/src/android/yuv/post_processor_yuv.cpp\n> > index 6952fc38..12d6297d 100644\n> > --- a/src/android/yuv/post_processor_yuv.cpp\n> > +++ b/src/android/yuv/post_processor_yuv.cpp\n> > @@ -69,9 +69,9 @@ int PostProcessorYuv::process(const FrameBuffer &source,\n> >                                   sourceStride_[1],\n> >                                   sourceSize_.width, sourceSize_.height,\n> >                                   destination->plane(0).data(),\n> > -                                 destinationStride_[0],\n> > +                                 destination->stride(0),\n> >                                   destination->plane(1).data(),\n> > -                                 destinationStride_[1],\n> > +                                 destination->stride(1),\n> >                                   destinationSize_.width,\n> >                                   destinationSize_.height,\n> >                                   libyuv::FilterMode::kFilterBilinear);\n> > @@ -115,8 +115,8 @@ bool PostProcessorYuv::isValidBuffers(const FrameBuffer &source,\n> >                       << destination.plane(0).size() << \", \"\n> >                       << destination.plane(1).size()\n> >                       << \"}, expected size: {\"\n> > -                     << sourceLength_[0] << \", \"\n> > -                     << sourceLength_[1] << \"}\";\n> > +                     << destinationLength_[0] << \", \"\n> > +                     << destinationLength_[1] << \"}\";\n>\n> Is this intended ?\n>\n\nYes, I found this was wrong.\n\n> >               return false;\n> >       }\n> >\n> > @@ -132,13 +132,14 @@ void PostProcessorYuv::calculateLengths(const StreamConfiguration &inCfg,\n> >       const PixelFormatInfo &nv12Info = PixelFormatInfo::info(formats::NV12);\n> >       for (unsigned int i = 0; i < 2; i++) {\n> >               sourceStride_[i] = inCfg.stride;\n> > -             destinationStride_[i] = nv12Info.stride(destinationSize_.width, i, 1);\n> > +             const unsigned int destinationStride =\n> > +                     nv12Info.stride(destinationSize_.width, i, 1);\n> >\n> >               const unsigned int vertSubSample =\n> >                       nv12Info.planes[i].verticalSubSampling;\n> >               sourceLength_[i] = sourceStride_[i] *\n> >                       ((sourceSize_.height + vertSubSample - 1) / vertSubSample);\n> > -             destinationLength_[i] = destinationStride_[i] *\n> > +             destinationLength_[i] = destinationStride *\n> >                       ((destinationSize_.height + vertSubSample - 1) / vertSubSample);\n>\n> A comment on the existing implementation:\n> destinationLength_[i]  is used in isValidBuffer() only for this\n> comparison:\n>\n>         if (destination.plane(0).size() < destinationLength_[0] ||\n>             destination.plane(1).size() < destinationLength_[1]) {\n>\n> shouldn't we compare the source and dest ?\n>\n\nDo you mean to add the comment? Where shall I add?\n\n-Hiro\n> Also as destination is a CameraBuffer, shouldn't we use\n> CameraBuffer::size(i) there ?\n>\n> Thanks\n>   j\n>\n>\n> >       }\n> >  }\n> > diff --git a/src/android/yuv/post_processor_yuv.h b/src/android/yuv/post_processor_yuv.h\n> > index f8b1ba23..1a0b5e89 100644\n> > --- a/src/android/yuv/post_processor_yuv.h\n> > +++ b/src/android/yuv/post_processor_yuv.h\n> > @@ -36,7 +36,6 @@ private:\n> >       unsigned int sourceLength_[2] = {};\n> >       unsigned int destinationLength_[2] = {};\n> >       unsigned int sourceStride_[2] = {};\n> > -     unsigned int destinationStride_[2] = {};\n> >  };\n> >\n> >  #endif /* __ANDROID_POST_PROCESSOR_YUV_H__ */\n> > --\n> > 2.33.0.259.gc128427fd7-goog\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 53580BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 31 Aug 2021 18:11:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 873916916A;\n\tTue, 31 Aug 2021 20:11:12 +0200 (CEST)","from mail-ej1-x634.google.com (mail-ej1-x634.google.com\n\t[IPv6:2a00:1450:4864:20::634])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D44F968890\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 31 Aug 2021 20:11:10 +0200 (CEST)","by mail-ej1-x634.google.com with SMTP id bt14so720752ejb.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 31 Aug 2021 11:11:10 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"inxLOLjs\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=KnUbLymRMSxDDsj5X2ONtemk9wi22oCyPOuiIyZDIlI=;\n\tb=inxLOLjspGgeqsF6cbLWzR2GRiUyABVd7YPXeJWQfmTWLYoRmix37nVXnnf/fKS+YW\n\trfIq3qC/C5gLxafRPxI+LvSc4Vs9NX9PDmVQpsEz5fl3wOtGI1eS56hOJAWV4ZPVqc/j\n\t+2FEDqXjChsYl1F/c+xOL8p5pcx400H1OGd+0=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=KnUbLymRMSxDDsj5X2ONtemk9wi22oCyPOuiIyZDIlI=;\n\tb=aqucW88px8pArx0Acco9AU1qh8mFssS0DZC272bNhK/2Rvf8jzuDRKy6LaULbHRFqz\n\tZkb5W75RHgCOuj72Tj2UWvilcXCvt2C9ajFsm4erCPQXcNktDJq2DQ/P0ibkam/8Y6xl\n\tm803P/BswXudZ0gCDHMmT2KARr3jDRBjJw9d/RhBcuXQ1rqgkNyhDJbOKbAH6/5rUO79\n\tunXXx3dgCqvIgY/guzgANlEoMdbtCVNa6bnmUDPvMfAp4j5ji83+++j1ltD0ghav7qS3\n\tcQaZMxxkf1/ApoET6WeF2cOIzR9obkoZ3UPVQRfzuJxVQS8bjKWPYm3gNrs16JN5nY6d\n\tedjA==","X-Gm-Message-State":"AOAM5335gFveKyfQjEwcYTBmb2nF3VvLqQ+xcDOB/rGbVT4zQrmti6fp\n\trSGqG9SAxAIcwrv5Q3JlQv3NzABgihM8ct6FP5HRpDDn/W4=","X-Google-Smtp-Source":"ABdhPJyNNNm/RPugnNg4FaOPSu6edln/vy8s6EBWGTy3m3MWze/YUPhzs3AINIJZNHwiP7SI7FBdO8/PuRYsfkJXo4E=","X-Received":"by 2002:a17:907:d86:: with SMTP id\n\tgo6mr2071119ejc.475.1630433470370; \n\tTue, 31 Aug 2021 11:11:10 -0700 (PDT)","MIME-Version":"1.0","References":"<20210831063438.785767-1-hiroh@chromium.org>\n\t<20210831063438.785767-2-hiroh@chromium.org>\n\t<20210831102943.kherorhdwwv4dbj6@uno.localdomain>","In-Reply-To":"<20210831102943.kherorhdwwv4dbj6@uno.localdomain>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Wed, 1 Sep 2021 03:11:00 +0900","Message-ID":"<CAO5uPHMZkDd4kVja4o69gW8d-QUQ3MhY1UNaWRnGVAB+kY1hBA@mail.gmail.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH 1/5] android: yuv: Use\n\tCameraBuffer::stride() in PostProcessorYuv","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":19235,"web_url":"https://patchwork.libcamera.org/comment/19235/","msgid":"<YS6fcG7CgCHDty2R@pendragon.ideasonboard.com>","date":"2021-08-31T21:30:24","subject":"Re: [libcamera-devel] [PATCH 1/5] android: yuv: Use\n\tCameraBuffer::stride() in PostProcessorYuv","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Hiro,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nOn Wed, Sep 01, 2021 at 03:11:00AM +0900, Hirokazu Honda wrote:\n> On Tue, Aug 31, 2021 at 7:28 PM Jacopo Mondi wrote:\n> > On Tue, Aug 31, 2021 at 03:34:34PM +0900, Hirokazu Honda wrote:\n> > > PostProcessorYuv computes strides for a CameraBuffer. CameraBuffer has\n> > > stride() function. This replaces the computation with the function.\n> > >\n> > > Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> > > ---\n> > >  src/android/yuv/post_processor_yuv.cpp | 13 +++++++------\n> > >  src/android/yuv/post_processor_yuv.h   |  1 -\n> > >  2 files changed, 7 insertions(+), 7 deletions(-)\n> > >\n> > > diff --git a/src/android/yuv/post_processor_yuv.cpp b/src/android/yuv/post_processor_yuv.cpp\n> > > index 6952fc38..12d6297d 100644\n> > > --- a/src/android/yuv/post_processor_yuv.cpp\n> > > +++ b/src/android/yuv/post_processor_yuv.cpp\n> > > @@ -69,9 +69,9 @@ int PostProcessorYuv::process(const FrameBuffer &source,\n> > >                                   sourceStride_[1],\n> > >                                   sourceSize_.width, sourceSize_.height,\n> > >                                   destination->plane(0).data(),\n> > > -                                 destinationStride_[0],\n> > > +                                 destination->stride(0),\n> > >                                   destination->plane(1).data(),\n> > > -                                 destinationStride_[1],\n> > > +                                 destination->stride(1),\n> > >                                   destinationSize_.width,\n> > >                                   destinationSize_.height,\n> > >                                   libyuv::FilterMode::kFilterBilinear);\n> > > @@ -115,8 +115,8 @@ bool PostProcessorYuv::isValidBuffers(const FrameBuffer &source,\n> > >                       << destination.plane(0).size() << \", \"\n> > >                       << destination.plane(1).size()\n> > >                       << \"}, expected size: {\"\n> > > -                     << sourceLength_[0] << \", \"\n> > > -                     << sourceLength_[1] << \"}\";\n> > > +                     << destinationLength_[0] << \", \"\n> > > +                     << destinationLength_[1] << \"}\";\n> >\n> > Is this intended ?\n> \n> Yes, I found this was wrong.\n\nCould you please mention it in the commit message ?\n\n> > >               return false;\n> > >       }\n> > >\n> > > @@ -132,13 +132,14 @@ void PostProcessorYuv::calculateLengths(const StreamConfiguration &inCfg,\n> > >       const PixelFormatInfo &nv12Info = PixelFormatInfo::info(formats::NV12);\n> > >       for (unsigned int i = 0; i < 2; i++) {\n> > >               sourceStride_[i] = inCfg.stride;\n> > > -             destinationStride_[i] = nv12Info.stride(destinationSize_.width, i, 1);\n> > > +             const unsigned int destinationStride =\n> > > +                     nv12Info.stride(destinationSize_.width, i, 1);\n> > >\n> > >               const unsigned int vertSubSample =\n> > >                       nv12Info.planes[i].verticalSubSampling;\n> > >               sourceLength_[i] = sourceStride_[i] *\n> > >                       ((sourceSize_.height + vertSubSample - 1) / vertSubSample);\n> > > -             destinationLength_[i] = destinationStride_[i] *\n> > > +             destinationLength_[i] = destinationStride *\n> > >                       ((destinationSize_.height + vertSubSample - 1) / vertSubSample);\n> >\n> > A comment on the existing implementation:\n> > destinationLength_[i]  is used in isValidBuffer() only for this\n> > comparison:\n> >\n> >         if (destination.plane(0).size() < destinationLength_[0] ||\n> >             destination.plane(1).size() < destinationLength_[1]) {\n> >\n> > shouldn't we compare the source and dest ?\n> \n> Do you mean to add the comment? Where shall I add?\n> \n> > Also as destination is a CameraBuffer, shouldn't we use\n> > CameraBuffer::size(i) there ?\n\nI thought about that but then realized that the check is meant to ensure\nthat the buffer has a size compatible with the size that was set at\nconfiguration time.\n\nI think this should be reworked to use outCfg.stride and move the\ndestination stride calculation to the caller, but maybe a todo comment\nwould be enough for now.\n\n\t/* \\todo Move stride calculation to the caller and use outCfg.stride */\n\n> > >       }\n> > >  }\n> > > diff --git a/src/android/yuv/post_processor_yuv.h b/src/android/yuv/post_processor_yuv.h\n> > > index f8b1ba23..1a0b5e89 100644\n> > > --- a/src/android/yuv/post_processor_yuv.h\n> > > +++ b/src/android/yuv/post_processor_yuv.h\n> > > @@ -36,7 +36,6 @@ private:\n> > >       unsigned int sourceLength_[2] = {};\n> > >       unsigned int destinationLength_[2] = {};\n> > >       unsigned int sourceStride_[2] = {};\n> > > -     unsigned int destinationStride_[2] = {};\n> > >  };\n> > >\n> > >  #endif /* __ANDROID_POST_PROCESSOR_YUV_H__ */","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 E4160BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 31 Aug 2021 21:30:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4F5476916A;\n\tTue, 31 Aug 2021 23:30:41 +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 27DD068890\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 31 Aug 2021 23:30:40 +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 1F5CF24F;\n\tTue, 31 Aug 2021 23:30:39 +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=\"idaPJ8/c\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630445439;\n\tbh=vjn201JFfQxf2gl8eG237ErD25lsSlqHsc4vWyVkhFA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=idaPJ8/cl2bWr8cEj/Jz/zB6moMhjymB0PDld+O7JgM6VMhtbq65r5K/6WdXH3/bH\n\tH5nUFjU7qKO5iI108pWC17XRvzMB8qhuIOu56PrDgH4tByetwNnvOvOBDsVeRe1HzH\n\t4SRlOq7jfoYsIBCzzMVq1I2TaU2WEucTw6d6JPos=","Date":"Wed, 1 Sep 2021 00:30:24 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<YS6fcG7CgCHDty2R@pendragon.ideasonboard.com>","References":"<20210831063438.785767-1-hiroh@chromium.org>\n\t<20210831063438.785767-2-hiroh@chromium.org>\n\t<20210831102943.kherorhdwwv4dbj6@uno.localdomain>\n\t<CAO5uPHMZkDd4kVja4o69gW8d-QUQ3MhY1UNaWRnGVAB+kY1hBA@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAO5uPHMZkDd4kVja4o69gW8d-QUQ3MhY1UNaWRnGVAB+kY1hBA@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH 1/5] android: yuv: Use\n\tCameraBuffer::stride() in PostProcessorYuv","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>"}}]