[{"id":27860,"web_url":"https://patchwork.libcamera.org/comment/27860/","msgid":"<20230924154201.GA13101@pendragon.ideasonboard.com>","date":"2023-09-24T15:42:01","subject":"Re: [libcamera-devel] [PATCH v3 0/4] android: switch over to modern\n\tgralloc API via libui","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Mattijs,\n\nThank you for the series.\n\nOn Sat, Sep 23, 2023 at 06:23:30PM +0200, Mattijs Korpershoek via libcamera-devel wrote:\n> gralloc.h is a very old API that has been deprecated at least since\n> Android P (9).\n> \n> Devices are encouraged to switch over to HIDL interface named\n> android.hardware.graphics.allocator@<VERSION>, where <VERSION> can be\n> 2.0 ,3.0 or 4.0.\n> \n> This is mandatory since Android Q (10) [1]\n> \n> Fortunately, Android provides an abstraction on top of\n> android.hardware.graphics.allocator which is compatible with each\n> version.\n> This abstraction is implemented in libui, which is available in the\n> VNDK.\n\nWhat are the pros and cons of using libui compared to direct usage of\nandroid.hardware.graphics.allocator ?\n\n> Import all necessary headers from AOSP and switch over the\n> generic_frame_buffer_allocator to use GraphicBufferAllocator.\n> \n> This series has been build-tested on a linux host and functionally\n> tested on an AM62x SK EVM with Android 13. (preview and capture).\n> \n> [1] https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/compatibility_matrices/compatibility_matrix.4.xml#195\n> \n> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>\n> ---\n> Changes in v3:\n> - Fixed patch 3 missing whitespace (Jacopo)\n> - Added libui meson import build in patch 3 (more consistent) (Jacopo)\n> - Removed member reference to GraphicBufferAllocator in patch 4 (Jacopo)\n> - Link to v2: https://lists.libcamera.org/pipermail/libcamera-devel/2023-September/038942.html\n> \n> Changes in v2:\n> - Dropped additional ; in graphic_buffer_allocator_stub.cpp. (Kieran)\n> - Surrounded problematic includes with #pragma to avoid clang compile\n>   errors related to -Wextra-semi. (Kieran)\n> - Link to v1: https://lists.libcamera.org/pipermail/libcamera-devel/2023-September/038927.html\n> \n> Tested on linux with:\n> CC=clang CXX=clang++ meson setup build -Dandroid=enabled -Dandroid_platform=generic\n> ninja -C build\n> And clang version clang++ (clang 16.0.6 \"clang version 16.0.6 (Fedora 16.0.6-2.fc38)\")\n> \n> ---\n> Mattijs Korpershoek (4):\n>       android: Import libutils/libui headers from vndk v33\n>       android: Import GraphicBufferAllocator header from vndk v33\n>       android: Stub GraphicBufferAllocator for build tests\n>       android: mm: generic: Use GraphicBufferAllocator instead of gralloc.h\n> \n>  .../libs/ui/include/ui/GraphicBufferAllocator.h    |  81 ++++++++\n>  .../native/libs/ui/include/ui/PixelFormat.h        |  75 +++++++\n>  include/android/meson.build                        |   2 +\n>  .../system/core/libutils/include/utils/Compat.h    |  94 +++++++++\n>  .../system/core/libutils/include/utils/Errors.h    |  78 ++++++++\n>  .../system/core/libutils/include/utils/Mutex.h     | 219 +++++++++++++++++++++\n>  .../system/core/libutils/include/utils/Singleton.h | 102 ++++++++++\n>  .../system/core/libutils/include/utils/Timers.h    | 103 ++++++++++\n>  src/android/mm/generic_frame_buffer_allocator.cpp  |  68 +++----\n>  src/android/mm/graphic_buffer_allocator_stub.cpp   |  54 +++++\n>  src/android/mm/libhardware_stub.c                  |  17 --\n>  src/android/mm/meson.build                         |  11 +-\n>  12 files changed, 835 insertions(+), 69 deletions(-)\n> ---\n> base-commit: 1d616141420d1f51e5999d758e3e0cc721a46290\n> change-id: 20230824-gralloc-api-v4-e3388fd364c6","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 63387BD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 24 Sep 2023 15:41:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BCF5562944;\n\tSun, 24 Sep 2023 17:41:51 +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 6827862916\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 24 Sep 2023 17:41:50 +0200 (CEST)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9D481475;\n\tSun, 24 Sep 2023 17:40:10 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1695570111;\n\tbh=LKWkXGgA9d51kCf+DQSvLX40OPdFsQTplV5dPtM9IpA=;\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=4UKfuWQIN1rinr0sJGKehPjaEPZpnnQbyOej93rN67AXe70inlpBEvLVgbZ3Tfmgb\n\t17yDCOGRuYsnNkBtbeSS/Mv86akn3iu7RuV0z4kN6C7U2f/X23JEvZrSytF4eVw8IH\n\tEBfO5skmfks+dojeFFjkPHRfBJbgNc/7feoxbS7bBDmQm9FMNBkqRCILyEJ5Pqs9mu\n\tww4yAFFbtpIwUD8nbQPnvu2ttRaPizjBjjLF7ltYYpaJDO0wMu3L2BMa9xEpQ9d9x5\n\tkzWQxFMS5NhST8TnHXhT1WgDIxakAEZTh4YzAi1WQ4YEXaVcGGp91iwGg2gpNnGZ6F\n\t8eWBKZLgxG0qg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1695570010;\n\tbh=LKWkXGgA9d51kCf+DQSvLX40OPdFsQTplV5dPtM9IpA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Yzvq2KHU5RtvFeqfo7CscO753LP9pavCisyOiTiCWS07o+YIVwCC/CUQs31Kvjt7p\n\tLDU7eH6ytaFs5NqscXQNy916i32TGPmITk2p9tpXlCjxqlE9TUR2oZuoZs/60FpRF/\n\t+h1FMSYRW6XFkpfpes44ob48TZN5+wDZu3TbIZPo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Yzvq2KHU\"; dkim-atps=neutral","Date":"Sun, 24 Sep 2023 18:42:01 +0300","To":"Mattijs Korpershoek <mkorpershoek@baylibre.com>","Message-ID":"<20230924154201.GA13101@pendragon.ideasonboard.com>","References":"<20230923-gralloc-api-v4-v3-0-9a9e039284ba@baylibre.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20230923-gralloc-api-v4-v3-0-9a9e039284ba@baylibre.com>","Subject":"Re: [libcamera-devel] [PATCH v3 0/4] android: switch over to modern\n\tgralloc API via libui","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":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-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":27869,"web_url":"https://patchwork.libcamera.org/comment/27869/","msgid":"<87sf7220g9.fsf@baylibre.com>","date":"2023-09-25T07:09:42","subject":"Re: [libcamera-devel] [PATCH v3 0/4] android: switch over to modern\n\tgralloc API via libui","submitter":{"id":153,"url":"https://patchwork.libcamera.org/api/people/153/","name":"Mattijs Korpershoek","email":"mkorpershoek@baylibre.com"},"content":"Hi Laurent,\n\nThank you for your review.\n\nOn dim., sept. 24, 2023 at 18:42, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote:\n\n> Hi Mattijs,\n>\n> Thank you for the series.\n>\n> On Sat, Sep 23, 2023 at 06:23:30PM +0200, Mattijs Korpershoek via libcamera-devel wrote:\n>> gralloc.h is a very old API that has been deprecated at least since\n>> Android P (9).\n>> \n>> Devices are encouraged to switch over to HIDL interface named\n>> android.hardware.graphics.allocator@<VERSION>, where <VERSION> can be\n>> 2.0 ,3.0 or 4.0.\n>> \n>> This is mandatory since Android Q (10) [1]\n>> \n>> Fortunately, Android provides an abstraction on top of\n>> android.hardware.graphics.allocator which is compatible with each\n>> version.\n>> This abstraction is implemented in libui, which is available in the\n>> VNDK.\n>\n> What are the pros and cons of using libui compared to direct usage of\n> android.hardware.graphics.allocator ?\n\nlibui's GraphicBufferAllocator has the following pros compared to\nandroid.hardware.graphics.allocator:\n* Supports multiple version of android.hardware.graphics.allocator (2.0, 3.0, 4.0)\n  https://cs.android.com/android/platform/superproject/main/+/main:frameworks/native/libs/ui/GraphicBufferAllocator.cpp;l=50\n\n  I suspect (no proof) that future versions of\n  android.hardware.graphics.allocator will be added there as well.\n\n  Also, the trend seem to be Google migrating from HIDL to AIDL, making\n  using an abstraction on top seems a better choice\n\n* Is implemented as singleton so very easy to interact with. No need to\n  query the hwservice manager to retrieve an instance of android.hardware.graphics.allocator\n\n* GraphicBufferAllocator::allocate() and GraphicBufferAllocator::free()\n  are higher level of abstraction so easier to use.\n\nThe cons I can think of are:\n* GraphicBufferAllocator has more include/dependencies than android.hardware.graphics.allocator.\n  I have not counted them.\n\nHope that answers.\nShould I add this to the cover letter?\n\n>\n>> Import all necessary headers from AOSP and switch over the\n>> generic_frame_buffer_allocator to use GraphicBufferAllocator.\n>> \n>> This series has been build-tested on a linux host and functionally\n>> tested on an AM62x SK EVM with Android 13. (preview and capture).\n>> \n>> [1] https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/compatibility_matrices/compatibility_matrix.4.xml#195\n>> \n>> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>\n>> ---\n>> Changes in v3:\n>> - Fixed patch 3 missing whitespace (Jacopo)\n>> - Added libui meson import build in patch 3 (more consistent) (Jacopo)\n>> - Removed member reference to GraphicBufferAllocator in patch 4 (Jacopo)\n>> - Link to v2: https://lists.libcamera.org/pipermail/libcamera-devel/2023-September/038942.html\n>> \n>> Changes in v2:\n>> - Dropped additional ; in graphic_buffer_allocator_stub.cpp. (Kieran)\n>> - Surrounded problematic includes with #pragma to avoid clang compile\n>>   errors related to -Wextra-semi. (Kieran)\n>> - Link to v1: https://lists.libcamera.org/pipermail/libcamera-devel/2023-September/038927.html\n>> \n>> Tested on linux with:\n>> CC=clang CXX=clang++ meson setup build -Dandroid=enabled -Dandroid_platform=generic\n>> ninja -C build\n>> And clang version clang++ (clang 16.0.6 \"clang version 16.0.6 (Fedora 16.0.6-2.fc38)\")\n>> \n>> ---\n>> Mattijs Korpershoek (4):\n>>       android: Import libutils/libui headers from vndk v33\n>>       android: Import GraphicBufferAllocator header from vndk v33\n>>       android: Stub GraphicBufferAllocator for build tests\n>>       android: mm: generic: Use GraphicBufferAllocator instead of gralloc.h\n>> \n>>  .../libs/ui/include/ui/GraphicBufferAllocator.h    |  81 ++++++++\n>>  .../native/libs/ui/include/ui/PixelFormat.h        |  75 +++++++\n>>  include/android/meson.build                        |   2 +\n>>  .../system/core/libutils/include/utils/Compat.h    |  94 +++++++++\n>>  .../system/core/libutils/include/utils/Errors.h    |  78 ++++++++\n>>  .../system/core/libutils/include/utils/Mutex.h     | 219 +++++++++++++++++++++\n>>  .../system/core/libutils/include/utils/Singleton.h | 102 ++++++++++\n>>  .../system/core/libutils/include/utils/Timers.h    | 103 ++++++++++\n>>  src/android/mm/generic_frame_buffer_allocator.cpp  |  68 +++----\n>>  src/android/mm/graphic_buffer_allocator_stub.cpp   |  54 +++++\n>>  src/android/mm/libhardware_stub.c                  |  17 --\n>>  src/android/mm/meson.build                         |  11 +-\n>>  12 files changed, 835 insertions(+), 69 deletions(-)\n>> ---\n>> base-commit: 1d616141420d1f51e5999d758e3e0cc721a46290\n>> change-id: 20230824-gralloc-api-v4-e3388fd364c6\n>\n> -- \n> Regards,\n>\n> Laurent Pinchart","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 DE06CBD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Sep 2023 07:09:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3788362944;\n\tMon, 25 Sep 2023 09:09:46 +0200 (CEST)","from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com\n\t[IPv6:2a00:1450:4864:20::12a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6897461DE5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Sep 2023 09:09:44 +0200 (CEST)","by mail-lf1-x12a.google.com with SMTP id\n\t2adb3069b0e04-5031ccf004cso9159150e87.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Sep 2023 00:09:44 -0700 (PDT)","from localhost (lneuilly-657-1-125-1.w92-154.abo.wanadoo.fr.\n\t[92.154.127.1]) by smtp.gmail.com with ESMTPSA id\n\tc9-20020a05600c0ac900b003fbb25da65bsm11397042wmr.30.2023.09.25.00.09.42\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 25 Sep 2023 00:09:43 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1695625786;\n\tbh=cq2d9jx0rYHVq0iWZiZ7suyXD6CC8HopFPcZjfdbNkY=;\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=Xz6rTddlQICLjavpfuAiLOtvEi4wAli/t/gpLmag4UCx3MHxR2/z9Tn1zwc961Z7y\n\tvcNdkXVnG6Bd4jSVXVU5aL1yuZVX+UrBHrBL8owdAOlM0uyf0cRkFpa9XKQ3FpF0+L\n\thQtCxlhhWjJpoQFNPq9u3idfmvBL8PuBOO3pjLMZee7rq9LIQRq/TWqHVWNMGjwA/2\n\tMRlhmekIha9hlkjUY8c+x9VKoXHvGOFRYNVR3863/buKqSkVWVFG4w2kzbVz82POIF\n\tjvBEdPwHRXvzNIWS1/MkNa0aSnywK/6hIVXiXiyCjl7mtjbaqJV9Aw2Gbqa2SaOxzm\n\t0nYgmYYiRjRAQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1695625783;\n\tx=1696230583; 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=qCbLD+e0I/uMZbQv4doPCnoKWPxWm7e1dLfFEeg2WmA=;\n\tb=XWEwwOSKvcXpT1nmwf5ZFB6rDlFOxBwdguJ7xTS1648G0o1Lx/1lA9G1J1cPgqjZJ6\n\t9WOzDZ4WJh4P9l13ARUzVaPzBobMsc551d/14YV6W7HRdNK3Hplr8Xhi9RH/L8UjwOxc\n\tJ2dN1as4r0+yA/XacmadNpy/F6L7XqyUjxc/4PeJHO6YyvHSnBItlssx5OMc8M/XFw98\n\tkwgRAEfrL9U8hbZPLaYCgufAspoMhSC9yhRP9s9lqgsEdjeFB2UFJvHkHffmnbXl8FzR\n\t2JR7PfSu1W76sNjQYNCK+RYyc90IGmM9HAooCrKY0gzWXpjteeN5/YvzO1nvEcyU7yJf\n\t+5UQ=="],"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=\"XWEwwOSK\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1695625783; x=1696230583;\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=qCbLD+e0I/uMZbQv4doPCnoKWPxWm7e1dLfFEeg2WmA=;\n\tb=AfEtHOPpM3QGD022z/D5cIRVlzDB0GThTSRAGRVTHoEUKOK89wWZj1Yw4HNpFlkfP0\n\tEmgIkm5zAPQfvbiUBRNgizaoppPYn+xRXcLofMFL5w48TmIJ9dXtJLp+j7PpPmJ1VyVh\n\tWx7vrCbKTq23B6qDXNBCoAuDe5v6HmU12bysCXXDMJPD+yr8Okh0+O+PJsPfS3A35aVx\n\t7hqVgeJWqaNtJtc43vfWC/n3GyuhW7Iv8x9E6MlKxhyWW1wAMh6dOL3RUgUe38MGIOVm\n\tl8IGRAzIjTz+q91mDKRM2VlLAWMyE6F6UcEaSAa7ST7gYAWeWkPIqxwP60xDUUzVhUDC\n\t9P3g==","X-Gm-Message-State":"AOJu0Yxtm22Mnicw+2ZAWykhRe3gmh4KVHRD7/k0WJZ/4Q0X7x5XVzOm\n\tZstHnxZaTjFXnD9u0DnnOrK6vw==","X-Google-Smtp-Source":"AGHT+IFIqSN3lSksepTNaPfGXT4FOG2hUD8OaLguckrM7nBUj9bLq0Og3i/DJ8DGu0XEsKtAhUHqXA==","X-Received":"by 2002:ac2:4bd4:0:b0:4fe:25bc:71f5 with SMTP id\n\to20-20020ac24bd4000000b004fe25bc71f5mr5973614lfq.11.1695625783352; \n\tMon, 25 Sep 2023 00:09:43 -0700 (PDT)","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","In-Reply-To":"<20230924154201.GA13101@pendragon.ideasonboard.com>","References":"<20230923-gralloc-api-v4-v3-0-9a9e039284ba@baylibre.com>\n\t<20230924154201.GA13101@pendragon.ideasonboard.com>","Date":"Mon, 25 Sep 2023 09:09:42 +0200","Message-ID":"<87sf7220g9.fsf@baylibre.com>","MIME-Version":"1.0","Content-Type":"text/plain","Subject":"Re: [libcamera-devel] [PATCH v3 0/4] android: switch over to modern\n\tgralloc API via libui","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":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-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":27870,"web_url":"https://patchwork.libcamera.org/comment/27870/","msgid":"<20230925075656.GA6197@pendragon.ideasonboard.com>","date":"2023-09-25T07:56:56","subject":"Re: [libcamera-devel] [PATCH v3 0/4] android: switch over to modern\n\tgralloc API via libui","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Mattijs,\n\nOn Mon, Sep 25, 2023 at 09:09:42AM +0200, Mattijs Korpershoek wrote:\n> On dim., sept. 24, 2023 at 18:42, Laurent Pinchart wrote:\n> > On Sat, Sep 23, 2023 at 06:23:30PM +0200, Mattijs Korpershoek via libcamera-devel wrote:\n> >> gralloc.h is a very old API that has been deprecated at least since\n> >> Android P (9).\n> >> \n> >> Devices are encouraged to switch over to HIDL interface named\n> >> android.hardware.graphics.allocator@<VERSION>, where <VERSION> can be\n> >> 2.0 ,3.0 or 4.0.\n> >> \n> >> This is mandatory since Android Q (10) [1]\n> >> \n> >> Fortunately, Android provides an abstraction on top of\n> >> android.hardware.graphics.allocator which is compatible with each\n> >> version.\n> >> This abstraction is implemented in libui, which is available in the\n> >> VNDK.\n> >\n> > What are the pros and cons of using libui compared to direct usage of\n> > android.hardware.graphics.allocator ?\n> \n> libui's GraphicBufferAllocator has the following pros compared to\n> android.hardware.graphics.allocator:\n> * Supports multiple version of android.hardware.graphics.allocator (2.0, 3.0, 4.0)\n>   https://cs.android.com/android/platform/superproject/main/+/main:frameworks/native/libs/ui/GraphicBufferAllocator.cpp;l=50\n> \n>   I suspect (no proof) that future versions of\n>   android.hardware.graphics.allocator will be added there as well.\n> \n>   Also, the trend seem to be Google migrating from HIDL to AIDL, making\n>   using an abstraction on top seems a better choice\n> \n> * Is implemented as singleton so very easy to interact with. No need to\n>   query the hwservice manager to retrieve an instance of android.hardware.graphics.allocator\n> \n> * GraphicBufferAllocator::allocate() and GraphicBufferAllocator::free()\n>   are higher level of abstraction so easier to use.\n> \n> The cons I can think of are:\n> * GraphicBufferAllocator has more include/dependencies than android.hardware.graphics.allocator.\n>   I have not counted them.\n> \n> Hope that answers.\n> Should I add this to the cover letter?\n\nThanks for the explanation. Including it in the cover letter of v4 would\nbe nice indeed.\n\n> >> Import all necessary headers from AOSP and switch over the\n> >> generic_frame_buffer_allocator to use GraphicBufferAllocator.\n> >> \n> >> This series has been build-tested on a linux host and functionally\n> >> tested on an AM62x SK EVM with Android 13. (preview and capture).\n> >> \n> >> [1] https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/compatibility_matrices/compatibility_matrix.4.xml#195\n> >> \n> >> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>\n> >> ---\n> >> Changes in v3:\n> >> - Fixed patch 3 missing whitespace (Jacopo)\n> >> - Added libui meson import build in patch 3 (more consistent) (Jacopo)\n> >> - Removed member reference to GraphicBufferAllocator in patch 4 (Jacopo)\n> >> - Link to v2: https://lists.libcamera.org/pipermail/libcamera-devel/2023-September/038942.html\n> >> \n> >> Changes in v2:\n> >> - Dropped additional ; in graphic_buffer_allocator_stub.cpp. (Kieran)\n> >> - Surrounded problematic includes with #pragma to avoid clang compile\n> >>   errors related to -Wextra-semi. (Kieran)\n> >> - Link to v1: https://lists.libcamera.org/pipermail/libcamera-devel/2023-September/038927.html\n> >> \n> >> Tested on linux with:\n> >> CC=clang CXX=clang++ meson setup build -Dandroid=enabled -Dandroid_platform=generic\n> >> ninja -C build\n> >> And clang version clang++ (clang 16.0.6 \"clang version 16.0.6 (Fedora 16.0.6-2.fc38)\")\n> >> \n> >> ---\n> >> Mattijs Korpershoek (4):\n> >>       android: Import libutils/libui headers from vndk v33\n> >>       android: Import GraphicBufferAllocator header from vndk v33\n> >>       android: Stub GraphicBufferAllocator for build tests\n> >>       android: mm: generic: Use GraphicBufferAllocator instead of gralloc.h\n> >> \n> >>  .../libs/ui/include/ui/GraphicBufferAllocator.h    |  81 ++++++++\n> >>  .../native/libs/ui/include/ui/PixelFormat.h        |  75 +++++++\n> >>  include/android/meson.build                        |   2 +\n> >>  .../system/core/libutils/include/utils/Compat.h    |  94 +++++++++\n> >>  .../system/core/libutils/include/utils/Errors.h    |  78 ++++++++\n> >>  .../system/core/libutils/include/utils/Mutex.h     | 219 +++++++++++++++++++++\n> >>  .../system/core/libutils/include/utils/Singleton.h | 102 ++++++++++\n> >>  .../system/core/libutils/include/utils/Timers.h    | 103 ++++++++++\n> >>  src/android/mm/generic_frame_buffer_allocator.cpp  |  68 +++----\n> >>  src/android/mm/graphic_buffer_allocator_stub.cpp   |  54 +++++\n> >>  src/android/mm/libhardware_stub.c                  |  17 --\n> >>  src/android/mm/meson.build                         |  11 +-\n> >>  12 files changed, 835 insertions(+), 69 deletions(-)\n> >> ---\n> >> base-commit: 1d616141420d1f51e5999d758e3e0cc721a46290\n> >> change-id: 20230824-gralloc-api-v4-e3388fd364c6","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 C2EECC326B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Sep 2023 07:56:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3F4A062931;\n\tMon, 25 Sep 2023 09:56:47 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3A55A61DE5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Sep 2023 09:56:45 +0200 (CEST)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id F33ADEEE;\n\tMon, 25 Sep 2023 09:55:04 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1695628607;\n\tbh=txsT20gIIMGh5EpbV0x9CVJ7MUEzgyLsbpakx373aF4=;\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=3Qf/FCs9/heRbAqOtw/vt8rrdEZAMrnLzO/3nEq5BZ5UGhrTURNnS2RDOJ5v+W42E\n\tId2DVHjG63gHBViQmZ1UL0yYu5zvSfm3hFPDVYr1/Z4LugA4UY0g/1XpgzjfxCDL65\n\tCGKMPdMfFbF1OdL5Bstwird0Yrx5vqDRXhog0YYF2VeAcKtVZoEYc2agd/YaQeKZUa\n\tbU/lHfc7pjLuisDTekm3ysu5xt3vOcmIPddBAXRm9zUZfNejgPLSQpdGWWSb9RYUGB\n\to9vLwYIPm5mn7G/XkqJIu9gL30ISkt5paYiq1x7p48huccmD6q7bYpgiR2i5Mdklu+\n\tlY0RoBU40NGLA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1695628505;\n\tbh=txsT20gIIMGh5EpbV0x9CVJ7MUEzgyLsbpakx373aF4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=ds7cPi80hVXSrlP8GhuAlXX/CuAnkocMIRaZLDhq/tvGqUQ14wSNxMt/pScHG1//j\n\tUUAkGKcygrwcvydN63cw/yybIcGsJDN0KfmEa5mPcRntNlPbQYed5lTgu2bM6QONTp\n\tDbPqhJP1uwQNRFxBBNbVuBq70lUqToAT3BfsQX70="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ds7cPi80\"; dkim-atps=neutral","Date":"Mon, 25 Sep 2023 10:56:56 +0300","To":"Mattijs Korpershoek <mkorpershoek@baylibre.com>","Message-ID":"<20230925075656.GA6197@pendragon.ideasonboard.com>","References":"<20230923-gralloc-api-v4-v3-0-9a9e039284ba@baylibre.com>\n\t<20230924154201.GA13101@pendragon.ideasonboard.com>\n\t<87sf7220g9.fsf@baylibre.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<87sf7220g9.fsf@baylibre.com>","Subject":"Re: [libcamera-devel] [PATCH v3 0/4] android: switch over to modern\n\tgralloc API via libui","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":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-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":27909,"web_url":"https://patchwork.libcamera.org/comment/27909/","msgid":"<87fs2w2hvn.fsf@baylibre.com>","date":"2023-09-30T08:19:08","subject":"Re: [libcamera-devel] [PATCH v3 0/4] android: switch over to modern\n\tgralloc API via libui","submitter":{"id":153,"url":"https://patchwork.libcamera.org/api/people/153/","name":"Mattijs Korpershoek","email":"mkorpershoek@baylibre.com"},"content":"On lun., sept. 25, 2023 at 10:56, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote:\n\n> Hi Mattijs,\n>\n> On Mon, Sep 25, 2023 at 09:09:42AM +0200, Mattijs Korpershoek wrote:\n>> On dim., sept. 24, 2023 at 18:42, Laurent Pinchart wrote:\n>> > On Sat, Sep 23, 2023 at 06:23:30PM +0200, Mattijs Korpershoek via libcamera-devel wrote:\n>> >> gralloc.h is a very old API that has been deprecated at least since\n>> >> Android P (9).\n>> >> \n>> >> Devices are encouraged to switch over to HIDL interface named\n>> >> android.hardware.graphics.allocator@<VERSION>, where <VERSION> can be\n>> >> 2.0 ,3.0 or 4.0.\n>> >> \n>> >> This is mandatory since Android Q (10) [1]\n>> >> \n>> >> Fortunately, Android provides an abstraction on top of\n>> >> android.hardware.graphics.allocator which is compatible with each\n>> >> version.\n>> >> This abstraction is implemented in libui, which is available in the\n>> >> VNDK.\n>> >\n>> > What are the pros and cons of using libui compared to direct usage of\n>> > android.hardware.graphics.allocator ?\n>> \n>> libui's GraphicBufferAllocator has the following pros compared to\n>> android.hardware.graphics.allocator:\n>> * Supports multiple version of android.hardware.graphics.allocator (2.0, 3.0, 4.0)\n>>   https://cs.android.com/android/platform/superproject/main/+/main:frameworks/native/libs/ui/GraphicBufferAllocator.cpp;l=50\n>> \n>>   I suspect (no proof) that future versions of\n>>   android.hardware.graphics.allocator will be added there as well.\n>> \n>>   Also, the trend seem to be Google migrating from HIDL to AIDL, making\n>>   using an abstraction on top seems a better choice\n>> \n>> * Is implemented as singleton so very easy to interact with. No need to\n>>   query the hwservice manager to retrieve an instance of android.hardware.graphics.allocator\n>> \n>> * GraphicBufferAllocator::allocate() and GraphicBufferAllocator::free()\n>>   are higher level of abstraction so easier to use.\n>> \n>> The cons I can think of are:\n>> * GraphicBufferAllocator has more include/dependencies than android.hardware.graphics.allocator.\n>>   I have not counted them.\n>> \n>> Hope that answers.\n>> Should I add this to the cover letter?\n>\n> Thanks for the explanation. Including it in the cover letter of v4 would\n> be nice indeed.\n\nWill do.\n\n>\n>> >> Import all necessary headers from AOSP and switch over the\n>> >> generic_frame_buffer_allocator to use GraphicBufferAllocator.\n>> >> \n>> >> This series has been build-tested on a linux host and functionally\n>> >> tested on an AM62x SK EVM with Android 13. (preview and capture).\n>> >> \n>> >> [1] https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/compatibility_matrices/compatibility_matrix.4.xml#195\n>> >> \n>> >> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>\n>> >> ---\n>> >> Changes in v3:\n>> >> - Fixed patch 3 missing whitespace (Jacopo)\n>> >> - Added libui meson import build in patch 3 (more consistent) (Jacopo)\n>> >> - Removed member reference to GraphicBufferAllocator in patch 4 (Jacopo)\n>> >> - Link to v2: https://lists.libcamera.org/pipermail/libcamera-devel/2023-September/038942.html\n>> >> \n>> >> Changes in v2:\n>> >> - Dropped additional ; in graphic_buffer_allocator_stub.cpp. (Kieran)\n>> >> - Surrounded problematic includes with #pragma to avoid clang compile\n>> >>   errors related to -Wextra-semi. (Kieran)\n>> >> - Link to v1: https://lists.libcamera.org/pipermail/libcamera-devel/2023-September/038927.html\n>> >> \n>> >> Tested on linux with:\n>> >> CC=clang CXX=clang++ meson setup build -Dandroid=enabled -Dandroid_platform=generic\n>> >> ninja -C build\n>> >> And clang version clang++ (clang 16.0.6 \"clang version 16.0.6 (Fedora 16.0.6-2.fc38)\")\n>> >> \n>> >> ---\n>> >> Mattijs Korpershoek (4):\n>> >>       android: Import libutils/libui headers from vndk v33\n>> >>       android: Import GraphicBufferAllocator header from vndk v33\n>> >>       android: Stub GraphicBufferAllocator for build tests\n>> >>       android: mm: generic: Use GraphicBufferAllocator instead of gralloc.h\n>> >> \n>> >>  .../libs/ui/include/ui/GraphicBufferAllocator.h    |  81 ++++++++\n>> >>  .../native/libs/ui/include/ui/PixelFormat.h        |  75 +++++++\n>> >>  include/android/meson.build                        |   2 +\n>> >>  .../system/core/libutils/include/utils/Compat.h    |  94 +++++++++\n>> >>  .../system/core/libutils/include/utils/Errors.h    |  78 ++++++++\n>> >>  .../system/core/libutils/include/utils/Mutex.h     | 219 +++++++++++++++++++++\n>> >>  .../system/core/libutils/include/utils/Singleton.h | 102 ++++++++++\n>> >>  .../system/core/libutils/include/utils/Timers.h    | 103 ++++++++++\n>> >>  src/android/mm/generic_frame_buffer_allocator.cpp  |  68 +++----\n>> >>  src/android/mm/graphic_buffer_allocator_stub.cpp   |  54 +++++\n>> >>  src/android/mm/libhardware_stub.c                  |  17 --\n>> >>  src/android/mm/meson.build                         |  11 +-\n>> >>  12 files changed, 835 insertions(+), 69 deletions(-)\n>> >> ---\n>> >> base-commit: 1d616141420d1f51e5999d758e3e0cc721a46290\n>> >> change-id: 20230824-gralloc-api-v4-e3388fd364c6\n>\n> -- \n> Regards,\n>\n> Laurent Pinchart","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 86352C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 30 Sep 2023 08:19:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 411C162964;\n\tSat, 30 Sep 2023 10:19:13 +0200 (CEST)","from mail-wr1-x433.google.com (mail-wr1-x433.google.com\n\t[IPv6:2a00:1450:4864:20::433])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 632446295F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 30 Sep 2023 10:19:11 +0200 (CEST)","by mail-wr1-x433.google.com with SMTP id\n\tffacd0b85a97d-3247cefa13aso4379085f8f.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 30 Sep 2023 01:19:11 -0700 (PDT)","from localhost\n\t(2a01cb06b0237dd3c01dd287ba46c248.ipv6.abo.wanadoo.fr.\n\t[2a01:cb06:b023:7dd3:c01d:d287:ba46:c248])\n\tby smtp.gmail.com with ESMTPSA id\n\ts28-20020adfa29c000000b003232f167df5sm12742626wra.108.2023.09.30.01.19.10\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSat, 30 Sep 2023 01:19:10 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1696061953;\n\tbh=5nwQmFXYS5pYl66u0xEPO8x4xEKKwh2wKLOtG6RCq5Y=;\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=aA0+Z/zKL6of5HDZ6IFbkTard8Sly7+YcqMFLZp68Klt3pRUbuW4f9tQFZSHC91T9\n\tEWkMZSA7eSgmSn2RalZMVSVeYcraqKWeJPStfmOwUDi/xt3X9dKDe8w0FPYgWK36RC\n\tiDNeymE0KLlqlUETPehrNPNIftt5Vk2fc744gr8ihSR3A/SOuV3SsIbg0TnYARzPv7\n\tgICDVFR9y/pgfss1ttShCPo641Y6Wc4rbW6os2Ll87zf4U9anVZt/2eIQh99nZaQbu\n\t7E4w/UAF+fsYVNgw2dTNTsE2pnbkUmnOHZmdrlp0fXP/lrjSqn+JGgzyaLZ3Nz7qWn\n\tTQ9rdfvko5QKg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1696061951;\n\tx=1696666751; 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=uADvjdSPzUzvTUfHF6Hca483bmXhjmaJfwow9R41i3Q=;\n\tb=ONpHzAK/9P78aaGZNgQVCh4Rv1bH/h00f2mBh7ZTLGeEfr+/3oNnVfPMM21yTkuw+b\n\tAOobRXP3G4J1iS1cP5ynr0G+QYZyfa86eXMor2Cb+PuwWSJW9jw/6wJfiTqZd9tpD6i3\n\tWxrV3Kk9EHDUXd0u5fFicSts1k2HAZJ7jLT6S8SLqtPLdBKO0BDRp94JhtuwK1p2Ot+k\n\t7VhNTAFRzPQgmmkLCV4GUyFV1lOH/dvSN+kPPLnq3TFPFi3qNsYA6fHM6babybhrYV9+\n\tpTIm1cArKjOAZWqUyCiXUizqIa6/+z7KCGtb2OrUYAJMSvEL5dBdc+tSDwWIwXmww7Cn\n\tqkxg=="],"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=\"ONpHzAK/\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1696061951; x=1696666751;\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=uADvjdSPzUzvTUfHF6Hca483bmXhjmaJfwow9R41i3Q=;\n\tb=PAiUD9ZMYRHueP9jpn6tLsovteqkkyhj6FYWFnt1nVHP8ujEs8W2RSFMI7MWrbHF5/\n\t9y/jrj5HWgeF0Fkf1Qej6J/dXxbV7n3GIIrPPrdUIMaARu02AGVWHNxRgvWh04M4i7Zx\n\tAbvHD51OrvYgube7ZdbUaxziRdTzRDMA0SxpsHwNKFMMogXDjtW0wr0X8spW826x+NEF\n\t6ajCyexGetc7grWDmWTrm7OZS2lUrMldjKE52kdrJPPN/TUE66EAYjdzWCMfXpYc0O+S\n\tIueFYyURfLN82/eQenqwd5fMT0WeTS0UsUf/q84u0aGtzREULacowU1sPc+TMSjfXkYf\n\tkkEA==","X-Gm-Message-State":"AOJu0YxnsYnPqBoL25u/y0pp02ftjGfKzmmWU6CLeZI4d8QrgWQvy7hO\n\t6oTV5OIUa+w35JSYodRkjyejvLNpuRSCfBZQA1A=","X-Google-Smtp-Source":"AGHT+IGtwzA5VG6R+DFeOuMpiSupgdp/+XhZ9dvrKSv3qESrqMKuZtp0nhoG9kArP2NQKfSMaOUq7Q==","X-Received":"by 2002:adf:cc8c:0:b0:323:117b:9780 with SMTP id\n\tp12-20020adfcc8c000000b00323117b9780mr5310174wrj.66.1696061950963; \n\tSat, 30 Sep 2023 01:19:10 -0700 (PDT)","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","In-Reply-To":"<20230925075656.GA6197@pendragon.ideasonboard.com>","References":"<20230923-gralloc-api-v4-v3-0-9a9e039284ba@baylibre.com>\n\t<20230924154201.GA13101@pendragon.ideasonboard.com>\n\t<87sf7220g9.fsf@baylibre.com>\n\t<20230925075656.GA6197@pendragon.ideasonboard.com>","Date":"Sat, 30 Sep 2023 10:19:08 +0200","Message-ID":"<87fs2w2hvn.fsf@baylibre.com>","MIME-Version":"1.0","Content-Type":"text/plain","Subject":"Re: [libcamera-devel] [PATCH v3 0/4] android: switch over to modern\n\tgralloc API via libui","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":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-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>"}}]