[{"id":12423,"web_url":"https://patchwork.libcamera.org/comment/12423/","msgid":"<20200910113116.GS4095624@oden.dyn.berto.se>","date":"2020-09-10T11:31:16","subject":"Re: [libcamera-devel] [PATCH 6/8] android: camera_device: Allocate\n\tbuffer pool","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Jacopo,\n\nThanks for your patch.\n\nOn 2020-09-09 17:54:55 +0200, Jacopo Mondi wrote:\n> CameraStream instances that are not directly mapped to application\n> facing Android streams need memory to be reserved in libcamera on their\n> behalf.\n> \n> After the libcamera::Camera has been configured, reserve memory for the\n> CameraStream isntances that need a pool of libcamera allocated buffers.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n>  src/android/camera_device.cpp | 20 ++++++++++++++++++++\n>  1 file changed, 20 insertions(+)\n> \n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index d35c6b93b654..a7cb1be03b9a 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -1329,6 +1329,26 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \t\treturn ret;\n>  \t}\n>  \n> +\t/*\n> +\t * Allocate buffers in libcamera for stream not directly mapped to\n> +\t * Android streams.\n> +\t */\n> +\tfor (unsigned int i = 0; i < stream_list->num_streams; ++i) {\n> +\t\tcamera3_stream_t *camera3Stream = stream_list->streams[i];\n> +\t\tCameraStream *cameraStream = static_cast<CameraStream *>(camera3Stream->priv);\n> +\t\tStreamConfiguration &cfg = config_->at(cameraStream->index());\n> +\n> +\t\tif (cameraStream->type() != CameraStream::Type::Internal)\n> +\t\t\tcontinue;\n> +\n> +\t\tint ret = allocator_.allocate(cfg.stream());\n> +\t\tif (ret < 0) {\n> +\t\t\tLOG(HAL, Error)\n> +\t\t\t\t<< \"Failed to allocate buffers for stream \" << i;\n> +\t\t\treturn ret;\n> +\t\t}\n> +\t}\n> +\n>  \treturn 0;\n>  }\n>  \n> -- \n> 2.28.0\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 A0160BDB1D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 10 Sep 2020 11:31:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6EB4762D86;\n\tThu, 10 Sep 2020 13:31:19 +0200 (CEST)","from mail-lj1-x242.google.com (mail-lj1-x242.google.com\n\t[IPv6:2a00:1450:4864:20::242])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C770862D60\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Sep 2020 13:31:17 +0200 (CEST)","by mail-lj1-x242.google.com with SMTP id a15so7723960ljk.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Sep 2020 04:31:17 -0700 (PDT)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\tq16sm1494551ljj.136.2020.09.10.04.31.16\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 10 Sep 2020 04:31:16 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"SyOzNEeq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=DVPTqK7UmLSDKYpkp9eHClglshHVy77flTyq4IVPIss=;\n\tb=SyOzNEeqhEh2f+xrx/D8+ppv3QpKbx3HfsL11Cw+FW+bB6xtcn/olgSUEaSArPO1fH\n\tGT2JcoM92QvuyNgong+JXpHXD+PQOia9q3kUxDY4fFJfdPVhkgP9ldxazYZyKLEoZjCc\n\tGQyOcpEJThQsorC30DMwv+vXFWxmYoEcfBtnjqPawviKIlz9W30mf9MN+A+8i+p2HxIe\n\tSaAN3+xNOUISMMKXH29o3e63M7hdV8RZtp7AirMVUfWyeNsRIl8LKBso4AcQVIEgBrvQ\n\tCPGIdAuxBPAG4ZpUXEHWRBarjDiOur/ejyXKMcMhEpYyS5vdXZ7GeSnU86yP4kAi4+o3\n\tynjg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=DVPTqK7UmLSDKYpkp9eHClglshHVy77flTyq4IVPIss=;\n\tb=L4/ypWIN89ZQU3yTH1JYJB048SkgLCqWQkBrXHC8ob95ySXDD/cEMgAyHzQweMBgks\n\tEpEiVtzkFw1ePXsmP5+doq54SzRKXeb92/06EDWU3FeWajdD4Sszq7KTaDviWT+hHore\n\t+SAKcH/Qoe+9W48k6EHgZuMr02MVwhvko7Aww1zQDHeqSPLCzbfmxUhVm3JsoLBkqS01\n\t3gLiG3Y1IXZbm3eBVu0VmVF7GLQ5zpgvBAqmal428dSZ6Y7PU9cvz6myeb5NSw2AU+M8\n\tSSHeJ8rdezdGrpiZEbwn1d93/dB3AJQKQ1qM+5Z2XqQp6nlPUmMEyiwnowlCL3kgLH17\n\tLmqA==","X-Gm-Message-State":"AOAM533xkazLxYFPqe8nS0r/RfzucX62Ns1Qu9JysfeiozX8hf2skRCG\n\tPf5QlmN19dY/wD7IV6mwc7n/pQ==","X-Google-Smtp-Source":"ABdhPJzEFzHdjBH4VZIU01/DAT0IHHWLx4A5xwQSVPn3CLNeXhl2aBRZl48qbxcXeYOHu8zSARtjsQ==","X-Received":"by 2002:a2e:a288:: with SMTP id k8mr4338384lja.234.1599737477303;\n\tThu, 10 Sep 2020 04:31:17 -0700 (PDT)","Date":"Thu, 10 Sep 2020 13:31:16 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<20200910113116.GS4095624@oden.dyn.berto.se>","References":"<20200909155457.153907-1-jacopo@jmondi.org>\n\t<20200909155457.153907-7-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200909155457.153907-7-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH 6/8] android: camera_device: Allocate\n\tbuffer pool","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":"hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12447,"web_url":"https://patchwork.libcamera.org/comment/12447/","msgid":"<CAO5uPHOEbV3RFHbEuijPVd4oRp+h59ufQrq4Nri8te2r6jhnjw@mail.gmail.com>","date":"2020-09-11T08:22:58","subject":"Re: [libcamera-devel] [PATCH 6/8] android: camera_device: Allocate\n\tbuffer pool","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"On Thu, Sep 10, 2020 at 8:31 PM Niklas Söderlund\n<niklas.soderlund@ragnatech.se> wrote:\n>\n> Hi Jacopo,\n>\n> Thanks for your patch.\n>\n> On 2020-09-09 17:54:55 +0200, Jacopo Mondi wrote:\n> > CameraStream instances that are not directly mapped to application\n> > facing Android streams need memory to be reserved in libcamera on their\n> > behalf.\n> >\n> > After the libcamera::Camera has been configured, reserve memory for the\n> > CameraStream isntances that need a pool of libcamera allocated buffers.\n> >\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n>\n> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n>\n\nReviewed-by: Hirokazu Honda <hiroh@chromium.org>\n\n> > ---\n> >  src/android/camera_device.cpp | 20 ++++++++++++++++++++\n> >  1 file changed, 20 insertions(+)\n> >\n> > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> > index d35c6b93b654..a7cb1be03b9a 100644\n> > --- a/src/android/camera_device.cpp\n> > +++ b/src/android/camera_device.cpp\n> > @@ -1329,6 +1329,26 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n> >               return ret;\n> >       }\n> >\n> > +     /*\n> > +      * Allocate buffers in libcamera for stream not directly mapped to\n> > +      * Android streams.\n> > +      */\n> > +     for (unsigned int i = 0; i < stream_list->num_streams; ++i) {\n> > +             camera3_stream_t *camera3Stream = stream_list->streams[i];\n> > +             CameraStream *cameraStream = static_cast<CameraStream *>(camera3Stream->priv);\n> > +             StreamConfiguration &cfg = config_->at(cameraStream->index());\n> > +\n> > +             if (cameraStream->type() != CameraStream::Type::Internal)\n> > +                     continue;\n> > +\n> > +             int ret = allocator_.allocate(cfg.stream());\n> > +             if (ret < 0) {\n> > +                     LOG(HAL, Error)\n> > +                             << \"Failed to allocate buffers for stream \" << i;\n> > +                     return ret;\n> > +             }\n> > +     }\n> > +\n> >       return 0;\n> >  }\n> >\n> > --\n> > 2.28.0\n> >\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel\n>\n> --\n> Regards,\n> Niklas Söderlund\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 BA870BDB1D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 11 Sep 2020 08:23:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 568E962C8C;\n\tFri, 11 Sep 2020 10:23:11 +0200 (CEST)","from mail-ej1-x641.google.com (mail-ej1-x641.google.com\n\t[IPv6:2a00:1450:4864:20::641])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C94DA62901\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 11 Sep 2020 10:23:09 +0200 (CEST)","by mail-ej1-x641.google.com with SMTP id z23so12575818ejr.13\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 11 Sep 2020 01:23:09 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"I6gWvk9F\"; 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:content-transfer-encoding;\n\tbh=SAD9JvF/UMqGEcLspl2Q+j83vS/bD3PZWs6qxoO5s6E=;\n\tb=I6gWvk9FP3F1i8C6nhZ6IepJOCmH1Ww21wBnfNyRnpGLg80f5n4XRvZxPezTwJnXa0\n\tqecrJ4nBv8RYCMKy/3ezzOv9wy9CaL4VBZQEEdMQsSHykUV4nzhegQuro2zUsQWRxSWZ\n\tpbYeUW07ZTO0cm59m+8g0lOa5uF/42oTdBWgo=","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:content-transfer-encoding;\n\tbh=SAD9JvF/UMqGEcLspl2Q+j83vS/bD3PZWs6qxoO5s6E=;\n\tb=iAQZUBilgA3WuXGrXRkmt1B1VfWMkuwrZLuyJDSnlWywXYG+6BPznu+sUldUSMnI7m\n\tcU/HZqmtmZCF4ycCYIcBzdCAS0kRqfiJ+NKB/dnu2iWtSiLCeFnZMOQs1lBhR40hzsI9\n\taIjYIxeOPBxv1zozxtWM54htYjbsY4yaEPCvcrW7W3E+zgVJe+W9fFmxq8Pa54zt5tNF\n\tI5R/l4d/EvMEL7JrcRRXtFkjUPWrLME77NPHMBUU1KsxIWp85hx+ywJ4YvbQha0v1xXk\n\tSoif3kN/WA9YKw7NozwDcQvAA2ND8Jk5y6+7hBlkaSNo5jxPex57BYOc2LfsEDtASPah\n\tLCAA==","X-Gm-Message-State":"AOAM533ARo4gYKKkcPYeyYH9CJwhMjn6FlfZxYh6I7oiSEvOvAsknubS\n\tEArXIjY0wy+Y3fKaOI8UsvdI/TPMToknXdIQZOGeJA==","X-Google-Smtp-Source":"ABdhPJwOIyqOT0zRj8QSeb4p3KUlQT8i5udzvEL7wvyVnFPkng6OMINw4vGNnH+JT17h0fAnxr5fXNWw6KFWfnlfW1E=","X-Received":"by 2002:a17:906:5206:: with SMTP id\n\tg6mr983239ejm.292.1599812589464; \n\tFri, 11 Sep 2020 01:23:09 -0700 (PDT)","MIME-Version":"1.0","References":"<20200909155457.153907-1-jacopo@jmondi.org>\n\t<20200909155457.153907-7-jacopo@jmondi.org>\n\t<20200910113116.GS4095624@oden.dyn.berto.se>","In-Reply-To":"<20200910113116.GS4095624@oden.dyn.berto.se>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Fri, 11 Sep 2020 17:22:58 +0900","Message-ID":"<CAO5uPHOEbV3RFHbEuijPVd4oRp+h59ufQrq4Nri8te2r6jhnjw@mail.gmail.com>","To":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Subject":"Re: [libcamera-devel] [PATCH 6/8] android: camera_device: Allocate\n\tbuffer pool","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":"Hanlin Chen <hanlinchen@chromium.org>,\n\tlibcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]