{"id":11418,"url":"https://patchwork.libcamera.org/api/covers/11418/?format=json","web_url":"https://patchwork.libcamera.org/cover/11418/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20210301150111.61791-1-jacopo@jmondi.org>","date":"2021-03-01T15:01:01","name":"[libcamera-devel,00/10] Support memory backends","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/?format=json","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"mbox":"https://patchwork.libcamera.org/cover/11418/mbox/","series":[{"id":1735,"url":"https://patchwork.libcamera.org/api/series/1735/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1735","date":"2021-03-01T15:01:01","name":"Support memory backends","version":1,"mbox":"https://patchwork.libcamera.org/series/1735/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/11418/comments/","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 C0D3BBD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  1 Mar 2021 15:00:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 368CD60522;\n\tMon,  1 Mar 2021 16:00:50 +0100 (CET)","from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net\n\t[217.70.183.194])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 03FDB60521\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  1 Mar 2021 16:00:49 +0100 (CET)","from uno.LocalDomain (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 5B80940007;\n\tMon,  1 Mar 2021 15:00:46 +0000 (UTC)"],"X-Originating-IP":"93.61.96.190","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"libcamera-devel@lists.libcamera.org","Date":"Mon,  1 Mar 2021 16:01:01 +0100","Message-Id":"<20210301150111.61791-1-jacopo@jmondi.org>","X-Mailer":"git-send-email 2.30.0","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH 00/10] Support memory backends","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":"Han-lin Chen <hanlinchen@chromium.org>,\n\tDaniel Hung-yu Wu <hywu@google.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello\n  v2 takes into account comments received from Laurent\n\n- Introduce an android_platform combo option in place of android_memory_backend\n- Implement PIMPL using libcamera::Extensible in place of the custom\n  implementation\n- Use libcamera::Span<> in the CameraBuffer interface\n- Minor style fixups\n\nThe biggest controversy is now patch 8/10: how to maintain compatibility with\nthe existing generic implementation. I left the patch as it was to collect more\nfeedback but I don't feel strongly attached to it (the contrary :)\n\nTested by\n\n- JPEG capture with CCA on ChromeOS\n  - Works with the generic backend as it used to\n  - Works with the cbm backend\n\n- CTS android.hardware.camera2.cts.ImageReaderTest with cbm backend making sure\n  the calculated buffer size is correct ( aka < maxJpegBufferSize)\n\n- Picture capture with OpenCamera which results in a well formed picture\n\nThanks\n   j\n\nJacopo Mondi (10):\n  meson: options: Add option to select the Android platform\n  android: Introduce CameraBuffer interface\n  android: camera_buffer: Drop 'const' from buffer_handle_t\n  android: camera_device: Rename buffer fields\n  android: Move buffer mapping to CameraStream\n  android: camera_buffer: Implement libcamera::Extensible\n  android: post_processor: Use CameraBuffer API\n  android: jpeg: Use maxJpegBufferSize() for compatibility\n  android: mm: Provide helper macro for PIMPL\n  android: Introduce Chromium OS buffer manager\n\n meson_options.txt                        |   6 +\n src/android/camera_buffer.h              |  59 ++++++++++\n src/android/camera_device.cpp            |  51 +-------\n src/android/camera_device.h              |   6 -\n src/android/camera_stream.cpp            |  16 ++-\n src/android/camera_stream.h              |   2 +-\n src/android/jpeg/post_processor_jpeg.cpp |  29 +++--\n src/android/jpeg/post_processor_jpeg.h   |   2 +-\n src/android/meson.build                  |   2 +\n src/android/mm/cros_camera_buffer.cpp    | 141 +++++++++++++++++++++++\n src/android/mm/generic_camera_buffer.cpp |  89 ++++++++++++++\n src/android/mm/meson.build               |   9 ++\n src/android/post_processor.h             |   4 +-\n src/android/yuv/post_processor_yuv.cpp   |  20 ++--\n src/android/yuv/post_processor_yuv.h     |   6 +-\n 15 files changed, 357 insertions(+), 85 deletions(-)\n create mode 100644 src/android/camera_buffer.h\n create mode 100644 src/android/mm/cros_camera_buffer.cpp\n create mode 100644 src/android/mm/generic_camera_buffer.cpp\n create mode 100644 src/android/mm/meson.build\n\n--\n2.30.0"}