Patch Detail
Show a patch.
GET /api/1.1/patches/13126/?format=api
{ "id": 13126, "url": "https://patchwork.libcamera.org/api/1.1/patches/13126/?format=api", "web_url": "https://patchwork.libcamera.org/patch/13126/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/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": "<20210727110519.11587-2-jacopo@jmondi.org>", "date": "2021-07-27T11:05:17", "name": "[libcamera-devel,v3,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/1.1/people/3/?format=api", "name": "Jacopo Mondi", "email": "jacopo@jmondi.org" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/13126/mbox/", "series": [ { "id": 2282, "url": "https://patchwork.libcamera.org/api/1.1/series/2282/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2282", "date": "2021-07-27T11:05:16", "name": "android: Drive-by cleanups", "version": 3, "mbox": "https://patchwork.libcamera.org/series/2282/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/13126/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/13126/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 0C5E3C322C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 27 Jul 2021 11:04:39 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A8519687CC;\n\tTue, 27 Jul 2021 13:04:37 +0200 (CEST)", "from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net\n\t[217.70.183.200])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D53A760272\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 27 Jul 2021 13:04:35 +0200 (CEST)", "(Authenticated sender: jacopo@jmondi.org)\n\tby relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 1FB4A20008;\n\tTue, 27 Jul 2021 11:04:34 +0000 (UTC)" ], "From": "Jacopo Mondi <jacopo@jmondi.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Tue, 27 Jul 2021 13:05:17 +0200", "Message-Id": "<20210727110519.11587-2-jacopo@jmondi.org>", "X-Mailer": "git-send-email 2.32.0", "In-Reply-To": "<20210727110519.11587-1-jacopo@jmondi.org>", "References": "<20210727110519.11587-1-jacopo@jmondi.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v3 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>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\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", "v3", "1/3" ] }