From patchwork Wed Aug 5 15:14:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 9227 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 39BCEBD86F for ; Wed, 5 Aug 2020 15:15:13 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 03D7060599; Wed, 5 Aug 2020 17:15:13 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="TUwCthWK"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D39C360392 for ; Wed, 5 Aug 2020 17:15:10 +0200 (CEST) Received: from Q.local (cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6B1452C0; Wed, 5 Aug 2020 17:15:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1596640510; bh=6KG/CDTvikK8us+RwiEJvP4j8f/H6IESY5+IwmEfMek=; h=From:To:Cc:Subject:Date:From; b=TUwCthWKoefn2bULcCJawUoY1o4YzhkDQn9VVVKDdigyMyz5JB9dcvl4ow56HThSf yCk4aI35Rj1ljcyPEgO8Bv4Ic2JJSICRtACGHyPZo7XmOzAoME2XR5+n8OLlC+Fxxr GsDwY1qX0Eh2CLWG00Sr8A1VnzRCI5xOJYz8wWd0= From: Kieran Bingham To: libcamera devel Date: Wed, 5 Aug 2020 16:14:54 +0100 Message-Id: <20200805151507.227503-1-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v4 00/13] android: JPEG support X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" As before, now many more review topics addressed and resolved. With just these patches applied, the CCA application runs and can capture an image successfully. There is still plenty to do on top however: - The JPEG compression does not run in a separate thread - Added streams do not have buffering - RAW API could be used for JPEG compression - EXIF tag support is started but not included in this series. - No rescaler is supported yet Kieran Bingham (13): libcamera: buffer: Correct FrameBuffer references libcamera: formats: add numPlanes helper libcamera: buffer: Create a MappedBuffer test: mapped-buffers: Provide MappedBuffer test libcamera: buffer: Convert copyFrom to use MappedFrameBuffer android: camera_device: Fix trivial spelling android: camera_device: Report an error in notifyError() android: camera_device: Only construct required planes android: camera_device: Query plane length android: camera_device: Report configuration changes from validate() android: camera_device: Generate ResultMetadata earlier android: Introduce JPEG compression android: camera_device: Support MJPEG stream construction include/libcamera/internal/buffer.h | 47 ++++ include/libcamera/internal/formats.h | 2 + src/android/camera_device.cpp | 292 +++++++++++++++++++++--- src/android/camera_device.h | 12 + src/android/jpeg/compressor.h | 25 ++ src/android/jpeg/compressor_libjpeg.cpp | 217 ++++++++++++++++++ src/android/jpeg/compressor_libjpeg.h | 41 ++++ src/android/meson.build | 5 + src/libcamera/buffer.cpp | 195 +++++++++++++--- src/libcamera/formats.cpp | 18 ++ src/libcamera/meson.build | 2 + test/mapped-buffer.cpp | 114 +++++++++ test/meson.build | 1 + 13 files changed, 916 insertions(+), 55 deletions(-) create mode 100644 include/libcamera/internal/buffer.h create mode 100644 src/android/jpeg/compressor.h create mode 100644 src/android/jpeg/compressor_libjpeg.cpp create mode 100644 src/android/jpeg/compressor_libjpeg.h create mode 100644 test/mapped-buffer.cpp