[{"id":17493,"web_url":"https://patchwork.libcamera.org/comment/17493/","msgid":"<YMDNgu+yobEHocsR@pendragon.ideasonboard.com>","date":"2021-06-09T14:17:38","subject":"Re: [libcamera-devel] [PATCH v2 3/5] qcam: viewfinder_gl: RAW10P:\n\thandle the padding bytes properly","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Andrey,\n\nThank you for the patch.\n\nOn Thu, May 27, 2021 at 01:55:09PM +0300, Andrey Konovalov wrote:\n> The texture size must account for the padding bytes which may be present\n> at the end of the lines in the frame.\n> \n> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n> ---\n>  src/qcam/viewfinder_gl.cpp | 11 +++++++----\n>  src/qcam/viewfinder_gl.h   |  1 +\n>  2 files changed, 8 insertions(+), 4 deletions(-)\n> \n> diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp\n> index b324d77f..9db536a6 100644\n> --- a/src/qcam/viewfinder_gl.cpp\n> +++ b/src/qcam/viewfinder_gl.cpp\n> @@ -111,6 +111,10 @@ void ViewFinderGL::render(libcamera::FrameBuffer *buffer, MappedBuffer *map)\n>  \t\trenderComplete(buffer_);\n>  \n>  \tdata_ = static_cast<unsigned char *>(map->memory);\n> +\t/*\n> +\t * \\todo Get the stride from the buffer instead of computing it naively\n> +\t */\n> +\tstride_ = buffer->metadata().planes[0].bytesused / size_.height();\n>  \tupdate();\n>  \tbuffer_ = buffer;\n>  }\n> @@ -594,14 +598,13 @@ void ViewFinderGL::doRender()\n>  \t\t/*\n>  \t\t * Packed raw Bayer 10-bit formats are stored in GL_RED texture.\n>  \t\t * The texture width is 10/8 of the image width.\n> -\t\t * TODO: account for padding bytes at the end of the line.\n>  \t\t */\n>  \t\tglActiveTexture(GL_TEXTURE0);\n>  \t\tconfigureTexture(*textures_[0]);\n>  \t\tglTexImage2D(GL_TEXTURE_2D,\n>  \t\t\t     0,\n>  \t\t\t     GL_RED,\n> -\t\t\t     size_.width() * 5 / 4,\n> +\t\t\t     stride_,\n>  \t\t\t     size_.height(),\n>  \t\t\t     0,\n>  \t\t\t     GL_RED,\n> @@ -611,12 +614,12 @@ void ViewFinderGL::doRender()\n>  \t\tshaderProgram_.setUniformValue(textureUniformBayerFirstRed_,\n>  \t\t\t\t\t       firstRed_);\n>  \t\tshaderProgram_.setUniformValue(textureUniformSize_,\n> -\t\t\t\t\t       size_.width() * 5 / 4,\n> +\t\t\t\t\t       stride_,\n>  \t\t\t\t\t       size_.height(),\n>  \t\t\t\t\t       size_.width(),\n>  \t\t\t\t\t       size_.height());\n>  \t\tshaderProgram_.setUniformValue(textureUniformStep_,\n> -\t\t\t\t\t       1.0f / (size_.width() * 5 / 4 - 1),\n> +\t\t\t\t\t       1.0f / (stride_ - 1),\n>  \t\t\t\t\t       1.0f / (size_.height() - 1));\n\nThis seems like a good change, but shouldn't we also do the same for the\nother formats ? In that case, I'd prefer moving this before 2/5, and\nusing the stride directly in 2/5 instead of width * 5 / 4.\n\n>  \t\tbreak;\n>  \n> diff --git a/src/qcam/viewfinder_gl.h b/src/qcam/viewfinder_gl.h\n> index 337718e3..49f8364a 100644\n> --- a/src/qcam/viewfinder_gl.h\n> +++ b/src/qcam/viewfinder_gl.h\n> @@ -66,6 +66,7 @@ private:\n>  \tlibcamera::FrameBuffer *buffer_;\n>  \tlibcamera::PixelFormat format_;\n>  \tQSize size_;\n> +\tint stride_;\n\nAs the stride can't be negative, I'd make it an unsigned int.\n\n>  \tunsigned char *data_;\n>  \n>  \t/* Shaders */","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 9215CBD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  9 Jun 2021 14:17:58 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E8F8168926;\n\tWed,  9 Jun 2021 16:17:57 +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 6465B6029C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  9 Jun 2021 16:17:56 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C295D46E;\n\tWed,  9 Jun 2021 16:17:55 +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=\"G5VuaheF\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1623248276;\n\tbh=De0tym5Db/dsviwi32e5F0S1EwVBIpuBlrqtI12tQHc=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=G5VuaheFiglQx8qkJmNlLGj5/ZTmXazvNU2f0x+8GzCmZBoDqo95xcCAlEO+vi9bj\n\timzT2MFtchvVIbJlSTU1BRQ/ZxKb8UKHLbjSRpmvZ2ahXo9neuk7tVUEcPWH4r6Fyy\n\tYktqM7eODfhn4xZQfx4LILEz04Xs8y8zUYcBAbLg=","Date":"Wed, 9 Jun 2021 17:17:38 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Andrey Konovalov <andrey.konovalov@linaro.org>","Message-ID":"<YMDNgu+yobEHocsR@pendragon.ideasonboard.com>","References":"<20210527105511.447089-1-andrey.konovalov@linaro.org>\n\t<20210527105511.447089-4-andrey.konovalov@linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210527105511.447089-4-andrey.konovalov@linaro.org>","Subject":"Re: [libcamera-devel] [PATCH v2 3/5] qcam: viewfinder_gl: RAW10P:\n\thandle the padding bytes properly","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":"morgan@casual-effects.com, libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17503,"web_url":"https://patchwork.libcamera.org/comment/17503/","msgid":"<YMFBWl+JvICfj7QL@pendragon.ideasonboard.com>","date":"2021-06-09T22:31:54","subject":"Re: [libcamera-devel] [PATCH v2 3/5] qcam: viewfinder_gl: RAW10P:\n\thandle the padding bytes properly","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Andrey,\n\nOn Wed, Jun 09, 2021 at 05:17:38PM +0300, Laurent Pinchart wrote:\n> On Thu, May 27, 2021 at 01:55:09PM +0300, Andrey Konovalov wrote:\n> > The texture size must account for the padding bytes which may be present\n> > at the end of the lines in the frame.\n> > \n> > Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n> > ---\n> >  src/qcam/viewfinder_gl.cpp | 11 +++++++----\n> >  src/qcam/viewfinder_gl.h   |  1 +\n> >  2 files changed, 8 insertions(+), 4 deletions(-)\n> > \n> > diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp\n> > index b324d77f..9db536a6 100644\n> > --- a/src/qcam/viewfinder_gl.cpp\n> > +++ b/src/qcam/viewfinder_gl.cpp\n> > @@ -111,6 +111,10 @@ void ViewFinderGL::render(libcamera::FrameBuffer *buffer, MappedBuffer *map)\n> >  \t\trenderComplete(buffer_);\n> >  \n> >  \tdata_ = static_cast<unsigned char *>(map->memory);\n> > +\t/*\n> > +\t * \\todo Get the stride from the buffer instead of computing it naively\n> > +\t */\n> > +\tstride_ = buffer->metadata().planes[0].bytesused / size_.height();\n> >  \tupdate();\n> >  \tbuffer_ = buffer;\n> >  }\n> > @@ -594,14 +598,13 @@ void ViewFinderGL::doRender()\n> >  \t\t/*\n> >  \t\t * Packed raw Bayer 10-bit formats are stored in GL_RED texture.\n> >  \t\t * The texture width is 10/8 of the image width.\n> > -\t\t * TODO: account for padding bytes at the end of the line.\n> >  \t\t */\n> >  \t\tglActiveTexture(GL_TEXTURE0);\n> >  \t\tconfigureTexture(*textures_[0]);\n> >  \t\tglTexImage2D(GL_TEXTURE_2D,\n> >  \t\t\t     0,\n> >  \t\t\t     GL_RED,\n> > -\t\t\t     size_.width() * 5 / 4,\n> > +\t\t\t     stride_,\n> >  \t\t\t     size_.height(),\n> >  \t\t\t     0,\n> >  \t\t\t     GL_RED,\n> > @@ -611,12 +614,12 @@ void ViewFinderGL::doRender()\n> >  \t\tshaderProgram_.setUniformValue(textureUniformBayerFirstRed_,\n> >  \t\t\t\t\t       firstRed_);\n> >  \t\tshaderProgram_.setUniformValue(textureUniformSize_,\n> > -\t\t\t\t\t       size_.width() * 5 / 4,\n> > +\t\t\t\t\t       stride_,\n> >  \t\t\t\t\t       size_.height(),\n> >  \t\t\t\t\t       size_.width(),\n> >  \t\t\t\t\t       size_.height());\n> >  \t\tshaderProgram_.setUniformValue(textureUniformStep_,\n> > -\t\t\t\t\t       1.0f / (size_.width() * 5 / 4 - 1),\n> > +\t\t\t\t\t       1.0f / (stride_ - 1),\n> >  \t\t\t\t\t       1.0f / (size_.height() - 1));\n> \n> This seems like a good change, but shouldn't we also do the same for the\n> other formats ? In that case, I'd prefer moving this before 2/5, and\n> using the stride directly in 2/5 instead of width * 5 / 4.\n\nThinking a bit more about this, I think there's an issue. Let's imagine\na case where the padding at the end of the line would be very large,\nmake the stride twice as large as the actual contents. When rendering\nthe scene, the GPU will render the full width of the texture. The left\npart of the output will then contain actual image data, and the right\npart padding data.\n\nTo fix this, I think we need to adjust the texture coordinates in the\nvertex buffer to go from 0 to width / stride instead of 0 to 1.\n\n> >  \t\tbreak;\n> >  \n> > diff --git a/src/qcam/viewfinder_gl.h b/src/qcam/viewfinder_gl.h\n> > index 337718e3..49f8364a 100644\n> > --- a/src/qcam/viewfinder_gl.h\n> > +++ b/src/qcam/viewfinder_gl.h\n> > @@ -66,6 +66,7 @@ private:\n> >  \tlibcamera::FrameBuffer *buffer_;\n> >  \tlibcamera::PixelFormat format_;\n> >  \tQSize size_;\n> > +\tint stride_;\n> \n> As the stride can't be negative, I'd make it an unsigned int.\n> \n> >  \tunsigned char *data_;\n> >  \n> >  \t/* Shaders */","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 4385CC320B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  9 Jun 2021 22:32:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AD76D68932;\n\tThu, 10 Jun 2021 00:32:13 +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 24A4E602A7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Jun 2021 00:32:12 +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 870E1436;\n\tThu, 10 Jun 2021 00:32:11 +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=\"fLYFoGNZ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1623277931;\n\tbh=5Bpb5wYKjlOg6l/p1Yb2k0RNk02bjBBNB0HfJSmsjAA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=fLYFoGNZ3uD7tpc6/nOJoPZlc70WqZyo4Ji3vWeJCy68EX///xWxBXEZsTzBnraoQ\n\tSSrZq9nqCC6KcKzjPL403ujxoyzGxyqcDshZo5T/iGInDAorMULSbiyw3G8XbBnwfd\n\tWGIkiiwWyhwR8slfa0GaU/pWIq4VhByRHAClLM40=","Date":"Thu, 10 Jun 2021 01:31:54 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Andrey Konovalov <andrey.konovalov@linaro.org>","Message-ID":"<YMFBWl+JvICfj7QL@pendragon.ideasonboard.com>","References":"<20210527105511.447089-1-andrey.konovalov@linaro.org>\n\t<20210527105511.447089-4-andrey.konovalov@linaro.org>\n\t<YMDNgu+yobEHocsR@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<YMDNgu+yobEHocsR@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 3/5] qcam: viewfinder_gl: RAW10P:\n\thandle the padding bytes properly","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":"morgan@casual-effects.com, libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17518,"web_url":"https://patchwork.libcamera.org/comment/17518/","msgid":"<7aff246e-73c4-1e2d-9174-ed629c04702f@linaro.org>","date":"2021-06-11T15:46:26","subject":"Re: [libcamera-devel] [PATCH v2 3/5] qcam: viewfinder_gl: RAW10P:\n\thandle the padding bytes properly","submitter":{"id":25,"url":"https://patchwork.libcamera.org/api/people/25/","name":"Andrey Konovalov","email":"andrey.konovalov@linaro.org"},"content":"Hi Laurent,\n\nThank you for the review.\n\nOn 09.06.2021 17:17, Laurent Pinchart wrote:\n> Hi Andrey,\n> \n> Thank you for the patch.\n> \n> On Thu, May 27, 2021 at 01:55:09PM +0300, Andrey Konovalov wrote:\n>> The texture size must account for the padding bytes which may be present\n>> at the end of the lines in the frame.\n>>\n>> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n>> ---\n>>   src/qcam/viewfinder_gl.cpp | 11 +++++++----\n>>   src/qcam/viewfinder_gl.h   |  1 +\n>>   2 files changed, 8 insertions(+), 4 deletions(-)\n>>\n>> diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp\n>> index b324d77f..9db536a6 100644\n>> --- a/src/qcam/viewfinder_gl.cpp\n>> +++ b/src/qcam/viewfinder_gl.cpp\n>> @@ -111,6 +111,10 @@ void ViewFinderGL::render(libcamera::FrameBuffer *buffer, MappedBuffer *map)\n>>   \t\trenderComplete(buffer_);\n>>   \n>>   \tdata_ = static_cast<unsigned char *>(map->memory);\n>> +\t/*\n>> +\t * \\todo Get the stride from the buffer instead of computing it naively\n>> +\t */\n>> +\tstride_ = buffer->metadata().planes[0].bytesused / size_.height();\n>>   \tupdate();\n>>   \tbuffer_ = buffer;\n>>   }\n>> @@ -594,14 +598,13 @@ void ViewFinderGL::doRender()\n>>   \t\t/*\n>>   \t\t * Packed raw Bayer 10-bit formats are stored in GL_RED texture.\n>>   \t\t * The texture width is 10/8 of the image width.\n>> -\t\t * TODO: account for padding bytes at the end of the line.\n>>   \t\t */\n>>   \t\tglActiveTexture(GL_TEXTURE0);\n>>   \t\tconfigureTexture(*textures_[0]);\n>>   \t\tglTexImage2D(GL_TEXTURE_2D,\n>>   \t\t\t     0,\n>>   \t\t\t     GL_RED,\n>> -\t\t\t     size_.width() * 5 / 4,\n>> +\t\t\t     stride_,\n>>   \t\t\t     size_.height(),\n>>   \t\t\t     0,\n>>   \t\t\t     GL_RED,\n>> @@ -611,12 +614,12 @@ void ViewFinderGL::doRender()\n>>   \t\tshaderProgram_.setUniformValue(textureUniformBayerFirstRed_,\n>>   \t\t\t\t\t       firstRed_);\n>>   \t\tshaderProgram_.setUniformValue(textureUniformSize_,\n>> -\t\t\t\t\t       size_.width() * 5 / 4,\n>> +\t\t\t\t\t       stride_,\n>>   \t\t\t\t\t       size_.height(),\n>>   \t\t\t\t\t       size_.width(),\n>>   \t\t\t\t\t       size_.height());\n>>   \t\tshaderProgram_.setUniformValue(textureUniformStep_,\n>> -\t\t\t\t\t       1.0f / (size_.width() * 5 / 4 - 1),\n>> +\t\t\t\t\t       1.0f / (stride_ - 1),\n>>   \t\t\t\t\t       1.0f / (size_.height() - 1));\n> \n> This seems like a good change, but shouldn't we also do the same for the\n> other formats ?\n\nThe above change is in the part of the code which will be used by the other\nformats when they are added. No changes for the other formats are needed that is.\n\n> In that case, I'd prefer moving this before 2/5, and\n> using the stride directly in 2/5 instead of width * 5 / 4.\n\nRight. It makes no sense to keep the development history in the patchset.\nI'll squash 2/5 and 3/5 into single commit in v3.\n\n>>   \t\tbreak;\n>>   \n>> diff --git a/src/qcam/viewfinder_gl.h b/src/qcam/viewfinder_gl.h\n>> index 337718e3..49f8364a 100644\n>> --- a/src/qcam/viewfinder_gl.h\n>> +++ b/src/qcam/viewfinder_gl.h\n>> @@ -66,6 +66,7 @@ private:\n>>   \tlibcamera::FrameBuffer *buffer_;\n>>   \tlibcamera::PixelFormat format_;\n>>   \tQSize size_;\n>> +\tint stride_;\n> \n> As the stride can't be negative, I'd make it an unsigned int.\n\nOK, will fix that in v3.\n\nThanks,\nAndrey\n\n>>   \tunsigned char *data_;\n>>   \n>>   \t/* Shaders */\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 647B0C320B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 11 Jun 2021 15:46:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BD3966892E;\n\tFri, 11 Jun 2021 17:46:32 +0200 (CEST)","from mail-lj1-x233.google.com (mail-lj1-x233.google.com\n\t[IPv6:2a00:1450:4864:20::233])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E31036029E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 11 Jun 2021 17:46:30 +0200 (CEST)","by mail-lj1-x233.google.com with SMTP id r16so10388212ljc.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 11 Jun 2021 08:46:30 -0700 (PDT)","from [192.168.88.254] ([85.249.44.185])\n\tby smtp.gmail.com with ESMTPSA id\n\tf6sm763569ljp.49.2021.06.11.08.46.29\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tFri, 11 Jun 2021 08:46:29 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"xTmuD35m\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;\n\th=subject:to:cc:references:from:message-id:date:user-agent\n\t:mime-version:in-reply-to:content-language:content-transfer-encoding; \n\tbh=QcIdDqEoDNnaz8JFcK7WOPKl0yXnI6ormeC51gvEZNI=;\n\tb=xTmuD35mUf80+GeIiMp9lIrJCdszaKu37RZRYNZ8nT8ZIHPrZkGAqHJxSetNdOQd7k\n\tIb7l5oQmp3Y2/0SFu/V8K0iSaxgFRvfHtMBehlcPb09HvRCNBaa4Era3kyMxhBZe+qSP\n\tqBloozrErMRtHRMYN1Vmo+1C62vljShD7I1eBURIYCrL8260BIhhXCoHZaj1xvFb8ojj\n\t3l8QVYr4wUf9BmiR7KBRxuHt/mpYciJgV7qrVxCI2R4020YqgSn5VBk4MfnpMxSlsGdL\n\t0d8BO2+XGEYgU01Qn9qWjjFqJT7TjE6lJetNul+7nNZrsMXuf2jI/AzuekHnVpaWG7hf\n\tMHeg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:subject:to:cc:references:from:message-id:date\n\t:user-agent:mime-version:in-reply-to:content-language\n\t:content-transfer-encoding;\n\tbh=QcIdDqEoDNnaz8JFcK7WOPKl0yXnI6ormeC51gvEZNI=;\n\tb=bjKE7xI1UQO95xRmXKGnAvfvDQPvEcEEvPkKbvWkkkgbjBuM/kQTYnwQ5loolya4I9\n\tiKB0Nl4NWxEZ8RHoyVCLREveoQmM+O4dpvb0GktJG79rI7pkw7fb+BCTGPa8uh4IldZa\n\tJSnncT3eVGzec9AisyqBp++75hpgZGIPN1Jq3BHoaL+32cIqcWIHn576y35q3OjI0+VE\n\tzZNDvif1l1OXLW8aOJqOnJV6KHCVBXKFm++7Om0c7Kc0In7tnWG9Y+8rEMQVP9TPTFRm\n\tWL0ca1NufkEvV+ce+BiPTnEzt0vvsvge+AVHiCSlm9QwBcMUEgn+jjN3sC2GnMgDxfaQ\n\t1k2w==","X-Gm-Message-State":"AOAM532CY+Kl/Pw3cniu06Rej+fbrIeUeEWFkrnBZqglRyClJia6LwGi\n\tUB8kT4nxR8B5Y0Lb6EL7EBVxoQ==","X-Google-Smtp-Source":"ABdhPJyIcAZrtD0gptn2Jxw1KkxInBiCXwSeOy0CpwJoV3vpCuVuk3AhRE+Fn9zarePmPh9yVlyOhQ==","X-Received":"by 2002:a2e:b8c7:: with SMTP id s7mr3615025ljp.217.1623426390129;\n\tFri, 11 Jun 2021 08:46:30 -0700 (PDT)","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20210527105511.447089-1-andrey.konovalov@linaro.org>\n\t<20210527105511.447089-4-andrey.konovalov@linaro.org>\n\t<YMDNgu+yobEHocsR@pendragon.ideasonboard.com>","From":"Andrey Konovalov <andrey.konovalov@linaro.org>","Message-ID":"<7aff246e-73c4-1e2d-9174-ed629c04702f@linaro.org>","Date":"Fri, 11 Jun 2021 18:46:26 +0300","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.8.1","MIME-Version":"1.0","In-Reply-To":"<YMDNgu+yobEHocsR@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2 3/5] qcam: viewfinder_gl: RAW10P:\n\thandle the padding bytes properly","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":"morgan@casual-effects.com, libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]