[{"id":27842,"web_url":"https://patchwork.libcamera.org/comment/27842/","msgid":"<jqsnhgevbglsoo4emw6l5umfnx6uicbhxgeoysoq3ao5mv462r@ui42zfll555c>","date":"2023-09-22T09:07:02","subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: Stub\n\tGraphicBufferAllocator for build tests","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Mattijs\n\nOn Tue, Sep 12, 2023 at 04:15:22PM +0200, Mattijs Korpershoek via libcamera-devel wrote:\n> If we want to keep building libcamera on traditional Linux systems with:\n>   -Dandroid=enabled -Dandroid_platform=generic\n>\n> We should stub GraphicBufferAllocator, which is not available.\n> It's only available when building with the VNDK or when building within the\n> AOSP tree.\n>\n> Also remove some deprecated methods and inclusions which are not needed for\n> the stub class.\n>\n> Note: the imported headers from Android generate the -Wextra-semi warning.\n>       To avoid patching the files, a pragma has been added before inclusion.\n>\n> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>\n> ---\n>  .../libs/ui/include/ui/GraphicBufferAllocator.h    | 30 ------------\n>  src/android/mm/graphic_buffer_allocator_stub.cpp   | 53 ++++++++++++++++++++++\n>  src/android/mm/meson.build                         |  1 +\n>  3 files changed, 54 insertions(+), 30 deletions(-)\n>\n> diff --git a/include/android/frameworks/native/libs/ui/include/ui/GraphicBufferAllocator.h b/include/android/frameworks/native/libs/ui/include/ui/GraphicBufferAllocator.h\n> index e4674d746e37..9eac5bbe8324 100644\n> --- a/include/android/frameworks/native/libs/ui/include/ui/GraphicBufferAllocator.h\n> +++ b/include/android/frameworks/native/libs/ui/include/ui/GraphicBufferAllocator.h\n> @@ -29,15 +29,10 @@\n>  #include <ui/PixelFormat.h>\n>\n>  #include <utils/Errors.h>\n> -#include <utils/KeyedVector.h>\n> -#include <utils/Mutex.h>\n\nack, I tried moving Mutex.h as imported by 1/4 but then Singleton.h\nfails, so it seems all headers imported in 1/4 are needed! good\n\n\n>  #include <utils/Singleton.h>\n>\n>  namespace android {\n>\n> -class GrallocAllocator;\n> -class GraphicBufferMapper;\n> -\n>  class GraphicBufferAllocator : public Singleton<GraphicBufferAllocator>\n>  {\n>  public:\n> @@ -52,25 +47,6 @@ public:\n>                        uint64_t usage, buffer_handle_t* handle, uint32_t* stride,\n>                        std::string requestorName);\n>\n> -    /**\n> -     * Allocates and does NOT import a gralloc buffer. Buffers cannot be used until they have\n> -     * been imported. This function is for advanced use cases only.\n> -     *\n> -     * The raw native handle must be freed by calling native_handle_close() followed by\n> -     * native_handle_delete().\n> -     */\n> -    status_t allocateRawHandle(uint32_t w, uint32_t h, PixelFormat format, uint32_t layerCount,\n> -                               uint64_t usage, buffer_handle_t* handle, uint32_t* stride,\n> -                               std::string requestorName);\n> -\n> -    /**\n> -     * DEPRECATED: GraphicBufferAllocator does not use the graphicBufferId.\n> -     */\n> -    status_t allocate(uint32_t w, uint32_t h, PixelFormat format,\n> -            uint32_t layerCount, uint64_t usage,\n> -            buffer_handle_t* handle, uint32_t* stride, uint64_t graphicBufferId,\n> -            std::string requestorName);\n> -\n>      status_t free(buffer_handle_t handle);\n>\n>      uint64_t getTotalSize() const;\n> @@ -94,15 +70,9 @@ protected:\n>                              uint64_t usage, buffer_handle_t* handle, uint32_t* stride,\n>                              std::string requestorName, bool importBuffer);\n>\n> -    static Mutex sLock;\n> -    static KeyedVector<buffer_handle_t, alloc_rec_t> sAllocList;\n> -\n>      friend class Singleton<GraphicBufferAllocator>;\n>      GraphicBufferAllocator();\n>      ~GraphicBufferAllocator();\n> -\n> -    GraphicBufferMapper& mMapper;\n> -    std::unique_ptr<const GrallocAllocator> mAllocator;\n\nI might be confused here. This is fine when building on Linux with the\nstub you have provided, but what happens when building on Android ? I\npresume the system-wide header takes precendece ?\n\n>  };\n>\n>  // ---------------------------------------------------------------------------\n> diff --git a/src/android/mm/graphic_buffer_allocator_stub.cpp b/src/android/mm/graphic_buffer_allocator_stub.cpp\n> new file mode 100644\n> index 000000000000..814b3d0e38bd\n> --- /dev/null\n> +++ b/src/android/mm/graphic_buffer_allocator_stub.cpp\n> @@ -0,0 +1,53 @@\n> +/* SPDX-License-Identifier: Apache-2.0 */\n> +/*\n> + * Copyright (C) 2023, Ideas on Board\n> + * Copyright (C) 2023, BayLibre\n> + *\n> + * graphic_buffer_allocator_stub.cpp - Android GraphicBufferAllocator\n> + * stub for compile-testing\n> + */\n> +\n> +#pragma GCC diagnostic push\n> +#pragma GCC diagnostic ignored \"-Wextra-semi\"\n> +#include <ui/GraphicBufferAllocator.h>\n> +#pragma GCC diagnostic pop\n> +\n> +namespace android {\n> +\n> +ANDROID_SINGLETON_STATIC_INSTANCE(GraphicBufferAllocator)\n> +\n> +GraphicBufferAllocator::GraphicBufferAllocator()\n> +{\n> +}\n\nnit: empty line maybe ?\n\n> +GraphicBufferAllocator::~GraphicBufferAllocator()\n> +{\n> +}\n> +\n> +uint64_t GraphicBufferAllocator::getTotalSize() const\n> +{\n> +\treturn 0;\n> +}\n> +\n> +#pragma GCC diagnostic push\n> +#pragma GCC diagnostic ignored \"-Wunused-parameter\"\n> +status_t GraphicBufferAllocator::allocate(uint32_t width,\n> +\t\t\t\t\t  uint32_t height,\n> +\t\t\t\t\t  PixelFormat format,\n> +\t\t\t\t\t  uint32_t layerCount,\n> +\t\t\t\t\t  uint64_t usage,\n> +\t\t\t\t\t  buffer_handle_t *handle,\n> +\t\t\t\t\t  uint32_t *stride,\n> +\t\t\t\t\t  std::string requestorName)\n> +{\n> +\t*handle = nullptr;\n> +\t*stride = 0;\n> +\treturn INVALID_OPERATION;\n> +}\n> +\n> +status_t GraphicBufferAllocator::free(buffer_handle_t handle)\n> +{\n> +\treturn INVALID_OPERATION;\n> +}\n> +#pragma GCC diagnostic pop\n> +\n> +} // namespace android\n> diff --git a/src/android/mm/meson.build b/src/android/mm/meson.build\n> index e3e0484c3720..e9ceb3afba67 100644\n> --- a/src/android/mm/meson.build\n> +++ b/src/android/mm/meson.build\n> @@ -11,6 +11,7 @@ if platform == 'generic'\n>          android_deps += [libhardware]\n>      else\n>          android_hal_sources += files(['libhardware_stub.c'])\n> +        android_hal_sources += files(['graphic_buffer_allocator_stub.cpp'])\n\nShouldn't this be done later ?\n\nAll minors:\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n  j\n\n>      endif\n>  elif platform == 'cros'\n>      android_hal_sources += files(['cros_camera_buffer.cpp',\n>\n> --\n> 2.41.0\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 AB75CBE080\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 22 Sep 2023 09:07:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 15EB762916;\n\tFri, 22 Sep 2023 11:07:08 +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 7B85E62916\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 Sep 2023 11:07:06 +0200 (CEST)","from ideasonboard.com (93-46-82-201.ip106.fastwebnet.it\n\t[93.46.82.201])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5853F968;\n\tFri, 22 Sep 2023 11:05:28 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1695373628;\n\tbh=/X7sZKr411G6yJwhG/wA2a9X+kDoppugKiBUjLOzVps=;\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=hMOvYyae6MiLblAiKL78YILDAO3peEuhsaSWA1t0G4mhKRhcJ6yFZXuf6jo+1ARaO\n\tbZkxScxPHwbk/4hb2txFZ/js3VqHtykhVVwIOBQI1394xiwu+EKKW7+JIDG5RaQ+a9\n\tZo0V8E0dBpytrkxzAZJBmTyBvpUrwjq/uwhOaAQbRARj5CZid8YutYBzktyqOcCrHN\n\tjnvQYd3TJ7wFuD4pf+RtZjAg2TZehdd1OT3vJcaNwZLqRKnWgZcu93QinYa3+sgjL8\n\t9lI/aPumu45xyuKGpwv06j5CvjLaz7in8Id4blnxK0GedlQlh549tQ3Hor0JAYULaM\n\tHMeG+ZqPuP1EA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1695373528;\n\tbh=/X7sZKr411G6yJwhG/wA2a9X+kDoppugKiBUjLOzVps=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=p3PG56F6DEmb2CqTgqkaYygmoPo+OSU6EEpNpg2yybr2PLhUZjyoEnUUMRDUZ4VwG\n\thNMKepKQnFrsTq4RaVpHN6wgvIrzq5rKTS0b5EHZUQBwvm4ALo08wGPdMmWp5OxUN9\n\tGn69HZEw0gGUHu8B0z8wBH87XDKHhwC52fg3ZzvQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"p3PG56F6\"; dkim-atps=neutral","Date":"Fri, 22 Sep 2023 11:07:02 +0200","To":"Mattijs Korpershoek <mkorpershoek@baylibre.com>","Message-ID":"<jqsnhgevbglsoo4emw6l5umfnx6uicbhxgeoysoq3ao5mv462r@ui42zfll555c>","References":"<20230912-gralloc-api-v4-v2-0-e859da63f98c@baylibre.com>\n\t<20230912-gralloc-api-v4-v2-3-e859da63f98c@baylibre.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20230912-gralloc-api-v4-v2-3-e859da63f98c@baylibre.com>","Subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: Stub\n\tGraphicBufferAllocator for build tests","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.mondi@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tGuillaume La Roque <glaroque@baylibre.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27849,"web_url":"https://patchwork.libcamera.org/comment/27849/","msgid":"<878r8x8a42.fsf@baylibre.com>","date":"2023-09-23T10:19:57","subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: Stub\n\tGraphicBufferAllocator for build tests","submitter":{"id":153,"url":"https://patchwork.libcamera.org/api/people/153/","name":"Mattijs Korpershoek","email":"mkorpershoek@baylibre.com"},"content":"Hi Jacopo,\n\nThank you for your review.\n\nOn ven., sept. 22, 2023 at 11:07, Jacopo Mondi <jacopo.mondi@ideasonboard.com> wrote:\n\n> Hi Mattijs\n>\n> On Tue, Sep 12, 2023 at 04:15:22PM +0200, Mattijs Korpershoek via libcamera-devel wrote:\n>> If we want to keep building libcamera on traditional Linux systems with:\n>>   -Dandroid=enabled -Dandroid_platform=generic\n>>\n>> We should stub GraphicBufferAllocator, which is not available.\n>> It's only available when building with the VNDK or when building within the\n>> AOSP tree.\n>>\n>> Also remove some deprecated methods and inclusions which are not needed for\n>> the stub class.\n>>\n>> Note: the imported headers from Android generate the -Wextra-semi warning.\n>>       To avoid patching the files, a pragma has been added before inclusion.\n>>\n>> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>\n>> ---\n>>  .../libs/ui/include/ui/GraphicBufferAllocator.h    | 30 ------------\n>>  src/android/mm/graphic_buffer_allocator_stub.cpp   | 53 ++++++++++++++++++++++\n>>  src/android/mm/meson.build                         |  1 +\n>>  3 files changed, 54 insertions(+), 30 deletions(-)\n>>\n>> diff --git a/include/android/frameworks/native/libs/ui/include/ui/GraphicBufferAllocator.h b/include/android/frameworks/native/libs/ui/include/ui/GraphicBufferAllocator.h\n>> index e4674d746e37..9eac5bbe8324 100644\n>> --- a/include/android/frameworks/native/libs/ui/include/ui/GraphicBufferAllocator.h\n>> +++ b/include/android/frameworks/native/libs/ui/include/ui/GraphicBufferAllocator.h\n>> @@ -29,15 +29,10 @@\n>>  #include <ui/PixelFormat.h>\n>>\n>>  #include <utils/Errors.h>\n>> -#include <utils/KeyedVector.h>\n>> -#include <utils/Mutex.h>\n>\n> ack, I tried moving Mutex.h as imported by 1/4 but then Singleton.h\n> fails, so it seems all headers imported in 1/4 are needed! good\n\nPerfect, thank you for double-checking.\n\n>\n>\n>>  #include <utils/Singleton.h>\n>>\n>>  namespace android {\n>>\n>> -class GrallocAllocator;\n>> -class GraphicBufferMapper;\n>> -\n>>  class GraphicBufferAllocator : public Singleton<GraphicBufferAllocator>\n>>  {\n>>  public:\n>> @@ -52,25 +47,6 @@ public:\n>>                        uint64_t usage, buffer_handle_t* handle, uint32_t* stride,\n>>                        std::string requestorName);\n>>\n>> -    /**\n>> -     * Allocates and does NOT import a gralloc buffer. Buffers cannot be used until they have\n>> -     * been imported. This function is for advanced use cases only.\n>> -     *\n>> -     * The raw native handle must be freed by calling native_handle_close() followed by\n>> -     * native_handle_delete().\n>> -     */\n>> -    status_t allocateRawHandle(uint32_t w, uint32_t h, PixelFormat format, uint32_t layerCount,\n>> -                               uint64_t usage, buffer_handle_t* handle, uint32_t* stride,\n>> -                               std::string requestorName);\n>> -\n>> -    /**\n>> -     * DEPRECATED: GraphicBufferAllocator does not use the graphicBufferId.\n>> -     */\n>> -    status_t allocate(uint32_t w, uint32_t h, PixelFormat format,\n>> -            uint32_t layerCount, uint64_t usage,\n>> -            buffer_handle_t* handle, uint32_t* stride, uint64_t graphicBufferId,\n>> -            std::string requestorName);\n>> -\n>>      status_t free(buffer_handle_t handle);\n>>\n>>      uint64_t getTotalSize() const;\n>> @@ -94,15 +70,9 @@ protected:\n>>                              uint64_t usage, buffer_handle_t* handle, uint32_t* stride,\n>>                              std::string requestorName, bool importBuffer);\n>>\n>> -    static Mutex sLock;\n>> -    static KeyedVector<buffer_handle_t, alloc_rec_t> sAllocList;\n>> -\n>>      friend class Singleton<GraphicBufferAllocator>;\n>>      GraphicBufferAllocator();\n>>      ~GraphicBufferAllocator();\n>> -\n>> -    GraphicBufferMapper& mMapper;\n>> -    std::unique_ptr<const GrallocAllocator> mAllocator;\n>\n> I might be confused here. This is fine when building on Linux with the\n> stub you have provided, but what happens when building on Android ? I\n> presume the system-wide header takes precendece ?\n\nSo I have not tried it with meson+NDK build so in the case of an in-AOSP\ntree (with a Android.bp), the system header takes precedence indeed.\n\n>\n>>  };\n>>\n>>  // ---------------------------------------------------------------------------\n>> diff --git a/src/android/mm/graphic_buffer_allocator_stub.cpp b/src/android/mm/graphic_buffer_allocator_stub.cpp\n>> new file mode 100644\n>> index 000000000000..814b3d0e38bd\n>> --- /dev/null\n>> +++ b/src/android/mm/graphic_buffer_allocator_stub.cpp\n>> @@ -0,0 +1,53 @@\n>> +/* SPDX-License-Identifier: Apache-2.0 */\n>> +/*\n>> + * Copyright (C) 2023, Ideas on Board\n>> + * Copyright (C) 2023, BayLibre\n>> + *\n>> + * graphic_buffer_allocator_stub.cpp - Android GraphicBufferAllocator\n>> + * stub for compile-testing\n>> + */\n>> +\n>> +#pragma GCC diagnostic push\n>> +#pragma GCC diagnostic ignored \"-Wextra-semi\"\n>> +#include <ui/GraphicBufferAllocator.h>\n>> +#pragma GCC diagnostic pop\n>> +\n>> +namespace android {\n>> +\n>> +ANDROID_SINGLETON_STATIC_INSTANCE(GraphicBufferAllocator)\n>> +\n>> +GraphicBufferAllocator::GraphicBufferAllocator()\n>> +{\n>> +}\n>\n> nit: empty line maybe ?\n\nWill do in v2.\n\n>\n>> +GraphicBufferAllocator::~GraphicBufferAllocator()\n>> +{\n>> +}\n>> +\n>> +uint64_t GraphicBufferAllocator::getTotalSize() const\n>> +{\n>> +\treturn 0;\n>> +}\n>> +\n>> +#pragma GCC diagnostic push\n>> +#pragma GCC diagnostic ignored \"-Wunused-parameter\"\n>> +status_t GraphicBufferAllocator::allocate(uint32_t width,\n>> +\t\t\t\t\t  uint32_t height,\n>> +\t\t\t\t\t  PixelFormat format,\n>> +\t\t\t\t\t  uint32_t layerCount,\n>> +\t\t\t\t\t  uint64_t usage,\n>> +\t\t\t\t\t  buffer_handle_t *handle,\n>> +\t\t\t\t\t  uint32_t *stride,\n>> +\t\t\t\t\t  std::string requestorName)\n>> +{\n>> +\t*handle = nullptr;\n>> +\t*stride = 0;\n>> +\treturn INVALID_OPERATION;\n>> +}\n>> +\n>> +status_t GraphicBufferAllocator::free(buffer_handle_t handle)\n>> +{\n>> +\treturn INVALID_OPERATION;\n>> +}\n>> +#pragma GCC diagnostic pop\n>> +\n>> +} // namespace android\n>> diff --git a/src/android/mm/meson.build b/src/android/mm/meson.build\n>> index e3e0484c3720..e9ceb3afba67 100644\n>> --- a/src/android/mm/meson.build\n>> +++ b/src/android/mm/meson.build\n>> @@ -11,6 +11,7 @@ if platform == 'generic'\n>>          android_deps += [libhardware]\n>>      else\n>>          android_hal_sources += files(['libhardware_stub.c'])\n>> +        android_hal_sources += files(['graphic_buffer_allocator_stub.cpp'])\n>\n> Shouldn't this be done later ?\n\nYeah you're right it feels odd to add the stub as part of the sources\nwhen looking for libhardware.\n\nActually I think I should include the meson build logic looking for\nlibui from patch 4 into this patch.\n\nI will do that in v2 and keep you're reviewed-by if that's ok.\n\n>\n> All minors:\n> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n>\n> Thanks\n>   j\n>\n>>      endif\n>>  elif platform == 'cros'\n>>      android_hal_sources += files(['cros_camera_buffer.cpp',\n>>\n>> --\n>> 2.41.0\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 1EAF0C326B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 23 Sep 2023 10:20:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3E02362944;\n\tSat, 23 Sep 2023 12:20:03 +0200 (CEST)","from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com\n\t[IPv6:2a00:1450:4864:20::42f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3812661DE7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 23 Sep 2023 12:20:01 +0200 (CEST)","by mail-wr1-x42f.google.com with SMTP id\n\tffacd0b85a97d-3215f19a13aso3378670f8f.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 23 Sep 2023 03:20:01 -0700 (PDT)","from localhost (92-184-117-148.mobile.fr.orangecustomers.net.\n\t[92.184.117.148]) by smtp.gmail.com with ESMTPSA id\n\tw10-20020adfde8a000000b0031fba0a746bsm6607782wrl.9.2023.09.23.03.19.59\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSat, 23 Sep 2023 03:20:00 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1695464403;\n\tbh=xTWHIO+gI+vZYJCHA70pAi4j2uHsCQfqQXhnWihXRgg=;\n\th=To:In-Reply-To:References:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=EkPrIxOO0Gi8tJOkSkyAVaJ3cGgBmx7wnn4w/yWI0BagM5J3/6Xvv0lpJShFj7k6T\n\t/WrCYzMADnxiPdK1KjuWgSHa3CSJV6yBMHVeaXsnXWjOvoJ11f/cv/T8RCyAjRlJo4\n\t7wVBonwCv74fLbrSCBnZNQpDIHErRo7CJexKzudJYixu3/CinzKQ5DIW+gA13Ljp0n\n\t1QuHeoyuLyc9pyDxkFiPsdYjjZZKgp6ndV2EL+fU2tZghUyFFBuaWABlQQc5aRE/lJ\n\toqHnj/qilYJ7JGQKocrrNWLi+CmmexshhMsOjKEvK7SGzxXNRzPsh5Fky43XUDJPu0\n\tbYazJYSDVuseA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1695464401;\n\tx=1696069201; darn=lists.libcamera.org; \n\th=mime-version:message-id:date:references:in-reply-to:subject:cc:to\n\t:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=pSjx4U+MRk5KqF0r+EarYC283hlE2U3TKXXHKni+LY8=;\n\tb=ACmbtrTXdiuK+hXQhqMvRBKXKbu1AndjPYM6oA2KzX9hfoxbJft9DcOrWTWbgEe3In\n\tQV8L3Lqvb6BGvmIMvx0kXeEBVCWaL0tmooz8WVpi/0j74lmMB/a8yh4zKDJSyEwC6KYf\n\tyrYTAB4YjI8OVvj6F0aje3Lj5KIBQ9N2Fh5rpjSKmYO8eviOUM/VohipKdJNKXQtfpBt\n\ttBLx7MHk2XjnrGP/HS41Z3yJ2pxWGalzHTDfVEWqZtLJZRKV0UAPofwdDCnF/nsYYA3e\n\tdNtl9cvkL08DYaLBL5pibUy9Sc3hBjBic/p5Fnvwuagq5HoTSZPdnM6HxraQe+Ipp1ut\n\ts8Ww=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected)\n\theader.d=baylibre-com.20230601.gappssmtp.com\n\theader.i=@baylibre-com.20230601.gappssmtp.com header.b=\"ACmbtrTX\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1695464401; x=1696069201;\n\th=mime-version:message-id:date:references:in-reply-to:subject:cc:to\n\t:from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; \n\tbh=pSjx4U+MRk5KqF0r+EarYC283hlE2U3TKXXHKni+LY8=;\n\tb=VG0D3qeGPmwa7OZlUMFB7cp5jmGyDN1JABY+SWJIZt/x0tKcGPaktsgTCDlCoSDuHm\n\t2bW/LMFj+mtJP96Hy575QhAybX2TtD4DVe8mASn0qEtTDZxoAgiPnrB9jH2ThliYahUL\n\tAvf4eLuamrWAowte3upEl8maX+jO99+hgqR0tzeoxQevR/QAQSCtnVmTpKJvo03QOJ3v\n\tU+aO1w3YSDIS0QJ9HlmbjhDQVokvh4JZePvteWN0XdAXadZfIde0zhlqRS8Gu+bSZFAr\n\tLM/svRjJ7OiPcAX7EExqZD9jmrsgxV1aBGnDQVLP6qTyH8jz1E5CimUO0/L/WIc5RdVF\n\t2aXw==","X-Gm-Message-State":"AOJu0YyLuffUqInmMiYHQFwfPSA37uf9qd9FP9BMPZfSjTQfouXXcMnl\n\tjCSzi81JuZKrQqLiTHP6m6aWoQ==","X-Google-Smtp-Source":"AGHT+IHwTO4V172tvXoxP19iNEWpeX2F9fyZMVlXpxTEv9Rt3HEskmbwCTVdudNQBcOrf5XSrey2bg==","X-Received":"by 2002:a5d:4cc2:0:b0:31f:d4ad:544c with SMTP id\n\tc2-20020a5d4cc2000000b0031fd4ad544cmr1478147wrt.52.1695464400507; \n\tSat, 23 Sep 2023 03:20:00 -0700 (PDT)","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","In-Reply-To":"<jqsnhgevbglsoo4emw6l5umfnx6uicbhxgeoysoq3ao5mv462r@ui42zfll555c>","References":"<20230912-gralloc-api-v4-v2-0-e859da63f98c@baylibre.com>\n\t<20230912-gralloc-api-v4-v2-3-e859da63f98c@baylibre.com>\n\t<jqsnhgevbglsoo4emw6l5umfnx6uicbhxgeoysoq3ao5mv462r@ui42zfll555c>","Date":"Sat, 23 Sep 2023 12:19:57 +0200","Message-ID":"<878r8x8a42.fsf@baylibre.com>","MIME-Version":"1.0","Content-Type":"text/plain","Subject":"Re: [libcamera-devel] [PATCH v2 3/4] android: Stub\n\tGraphicBufferAllocator for build tests","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":"Mattijs Korpershoek via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Mattijs Korpershoek <mkorpershoek@baylibre.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tGuillaume La Roque <glaroque@baylibre.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]