Patch Detail
Show a patch.
GET /api/1.1/patches/13120/?format=api
{ "id": 13120, "url": "https://patchwork.libcamera.org/api/1.1/patches/13120/?format=api", "web_url": "https://patchwork.libcamera.org/patch/13120/", "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": "<20210726153100.27856-2-jacopo@jmondi.org>", "date": "2021-07-26T15:30:58", "name": "[libcamera-devel,v2,1/3] android: capabilities: Use a throw-away config for YUV stream building", "commit_ref": null, "pull_url": null, "state": "superseded", "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/13120/mbox/", "series": [ { "id": 2279, "url": "https://patchwork.libcamera.org/api/1.1/series/2279/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2279", "date": "2021-07-26T15:30:57", "name": "android: Drive-by cleanups", "version": 2, "mbox": "https://patchwork.libcamera.org/series/2279/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/13120/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/13120/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 C0F56C322C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 26 Jul 2021 15:30:20 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 70B81687C4;\n\tMon, 26 Jul 2021 17:30:20 +0200 (CEST)", "from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net\n\t[217.70.183.197])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1D3F9687B7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 26 Jul 2021 17:30:18 +0200 (CEST)", "(Authenticated sender: jacopo@jmondi.org)\n\tby relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 317321C0002;\n\tMon, 26 Jul 2021 15:30:17 +0000 (UTC)" ], "From": "Jacopo Mondi <jacopo@jmondi.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Mon, 26 Jul 2021 17:30:58 +0200", "Message-Id": "<20210726153100.27856-2-jacopo@jmondi.org>", "X-Mailer": "git-send-email 2.32.0", "In-Reply-To": "<20210726153100.27856-1-jacopo@jmondi.org>", "References": "<20210726153100.27856-1-jacopo@jmondi.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v2 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", "v2", "1/3" ] }