Patch Detail
Show a patch.
GET /api/patches/12964/?format=api
{ "id": 12964, "url": "https://patchwork.libcamera.org/api/patches/12964/?format=api", "web_url": "https://patchwork.libcamera.org/patch/12964/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20210715153241.63971-2-jacopo@jmondi.org>", "date": "2021-07-15T15:32:39", "name": "[libcamera-devel,1/3] android: capabilities: Use a throw-away config for YUV stream building", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "163dd5cd622fff1631b90878b9dbd454a7ce127e", "submitter": { "id": 3, "url": "https://patchwork.libcamera.org/api/people/3/?format=api", "name": "Jacopo Mondi", "email": "jacopo@jmondi.org" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/12964/mbox/", "series": [ { "id": 2239, "url": "https://patchwork.libcamera.org/api/series/2239/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2239", "date": "2021-07-15T15:32:38", "name": "android: Drive-by cleanups", "version": 1, "mbox": "https://patchwork.libcamera.org/series/2239/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/12964/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/12964/checks/", "tags": {}, "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 75980C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 15 Jul 2021 15:32:11 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3A9B868539;\n\tThu, 15 Jul 2021 17:32:11 +0200 (CEST)", "from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net\n\t[217.70.183.193])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 643C668538\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 15 Jul 2021 17:32:07 +0200 (CEST)", "(Authenticated sender: jacopo@jmondi.org)\n\tby relay1-d.mail.gandi.net (Postfix) with ESMTPSA id A53FF24000B;\n\tThu, 15 Jul 2021 15:32:06 +0000 (UTC)" ], "From": "Jacopo Mondi <jacopo@jmondi.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Thu, 15 Jul 2021 17:32:39 +0200", "Message-Id": "<20210715153241.63971-2-jacopo@jmondi.org>", "X-Mailer": "git-send-email 2.32.0", "In-Reply-To": "<20210715153241.63971-1-jacopo@jmondi.org>", "References": "<20210715153241.63971-1-jacopo@jmondi.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH 1/3] android: capabilities: Use a\n\tthrow-away config for YUV stream building", "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>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "When building the list of supported YUV streams in getYUVResolutions()\nthe CameraConfiguration provided by the caller as first parameters is used.\n\nAs the CameraConfiguration will be later actually applied to the Camera,\navoid any possible overlap of the configuration parameters by using a\nthrow-away CameraConfiguration generated for the Viewfinder stream role\nin getYUVResolutions().\n\nIt's also nicer to avoid having two functions with a similar purpose\nsuch as getYUVResolutions() and getRawResolutions() with different\nparameter lists, as the presence of a CameraConfiguration as first\nparameter might be confusing to the reader.\n\nSigned-off-by: Jacopo Mondi <jacopo@jmondi.org>\n---\n src/android/camera_capabilities.cpp | 10 +++++-----\n src/android/camera_capabilities.h | 3 +--\n 2 files changed, 6 insertions(+), 7 deletions(-)", "diff": "diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp\nindex 6b5edb66fad2..6543c2bbc6c3 100644\n--- a/src/android/camera_capabilities.cpp\n+++ b/src/android/camera_capabilities.cpp\n@@ -138,13 +138,14 @@ int CameraCapabilities::initialize(std::shared_ptr<libcamera::Camera> camera,\n \treturn initializeStaticMetadata();\n }\n \n-std::vector<Size> CameraCapabilities::getYUVResolutions(CameraConfiguration *cameraConfig,\n-\t\t\t\t\t\t\tconst PixelFormat &pixelFormat,\n+std::vector<Size> CameraCapabilities::getYUVResolutions(const PixelFormat &pixelFormat,\n \t\t\t\t\t\t\tconst std::vector<Size> &resolutions)\n {\n \tstd::vector<Size> supportedResolutions;\n-\n+\tstd::unique_ptr<CameraConfiguration> cameraConfig =\n+\t\tcamera_->generateConfiguration({ StreamRole::Viewfinder });\n \tStreamConfiguration &cfg = cameraConfig->at(0);\n+\n \tfor (const Size &res : resolutions) {\n \t\tcfg.pixelFormat = pixelFormat;\n \t\tcfg.size = res;\n@@ -324,8 +325,7 @@ int CameraCapabilities::initializeStreamConfigurations()\n \t\tif (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)\n \t\t\tresolutions = getRawResolutions(mappedFormat);\n \t\telse\n-\t\t\tresolutions = getYUVResolutions(cameraConfig.get(),\n-\t\t\t\t\t\t\tmappedFormat,\n+\t\t\tresolutions = getYUVResolutions(mappedFormat,\n \t\t\t\t\t\t\tcameraResolutions);\n \n \t\tfor (const Size &res : resolutions) {\ndiff --git a/src/android/camera_capabilities.h b/src/android/camera_capabilities.h\nindex 4f5be82595d6..e72bf084cd65 100644\n--- a/src/android/camera_capabilities.h\n+++ b/src/android/camera_capabilities.h\n@@ -43,8 +43,7 @@ private:\n \t};\n \n \tstd::vector<libcamera::Size>\n-\tgetYUVResolutions(libcamera::CameraConfiguration *cameraConfig,\n-\t\t\t const libcamera::PixelFormat &pixelFormat,\n+\tgetYUVResolutions(const libcamera::PixelFormat &pixelFormat,\n \t\t\t const std::vector<libcamera::Size> &resolutions);\n \tstd::vector<libcamera::Size>\n \tgetRawResolutions(const libcamera::PixelFormat &pixelFormat);\n", "prefixes": [ "libcamera-devel", "1/3" ] }