{"id":13182,"url":"https://patchwork.libcamera.org/api/covers/13182/?format=json","web_url":"https://patchwork.libcamera.org/cover/13182/","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":"<20210803140237.19302-1-umang.jain@ideasonboard.com>","date":"2021-08-03T14:02:33","name":"[libcamera-devel,v4,0/4] android: Handle internal UVC cameras","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/?format=json","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/13182/mbox/","series":[{"id":2297,"url":"https://patchwork.libcamera.org/api/series/2297/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2297","date":"2021-08-03T14:02:33","name":"android: Handle internal UVC cameras","version":4,"mbox":"https://patchwork.libcamera.org/series/2297/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/13182/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 6AF45C3232\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  3 Aug 2021 14:02:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BB6A9687CC;\n\tTue,  3 Aug 2021 16:02:45 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D65906026A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  3 Aug 2021 16:02:44 +0200 (CEST)","from perceval.ideasonboard.com (unknown [103.238.109.12])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9C23F3F0;\n\tTue,  3 Aug 2021 16:02:43 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"JvPgr4Yw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1627999364;\n\tbh=NU4lqr9AqUVv6a3ckD7LGwtRV+gRPZq62zUvERkfr8k=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=JvPgr4Ywz0fZSXkjSI/8vp5Lq4ZxwLygupX6boRQ+DD+v+N+FAxweyLLLNfxVBe2P\n\tOfM77AwvphqwIv9WXWKSelycdgoS6gXTZa07UqAlE3rPUDFZCSBJAubWjSMl8tbuhJ\n\ti4+pJWXvEpDzV2aN6zh5yugrzuCCvjA8ZZgtQvlA=","From":"Umang Jain <umang.jain@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Tue,  3 Aug 2021 19:32:33 +0530","Message-Id":"<20210803140237.19302-1-umang.jain@ideasonboard.com>","X-Mailer":"git-send-email 2.31.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v4 0/4] android: Handle internal UVC\n\tcameras","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":"libcamera-core all UVC cameras as 'external' (which makes sense\nas there is not much information to accurately determine location).\nHowever, in the HAL layer, we can probably determine accurately\nby looking at HAL config file camera entries.\n\nThis series addresses the handling of such cameras, where the libcamera\nreports properties::CameraLocationExternal, but we know one of the UVC\nis internal/integrated to the system. It should be treated as internal.\nAlso, as a point raised while reviews, we should disallow\n'location: external' in HAL config file.\n\nTesting:\nWith nautilus, it has one UVC and one IPU3 cameras. With these patches\napplied, both these cameras have id as '0' & '1' (i.e. internal).\n\nWith camera service still running, I hotplugged a external UVC camera,\nand it got the camera numerical id as '1000'.\n\nChanges in v4:\n- Commit message typos\n- Drop the camera id_ < 1000 check in 3/4. It's not required because if a\n  cameraConfigData is valid and has front/back valid location, it implicitly\n  means that camera is internal.\n\nChanges in v3:\n- Introduce a new patch 2/4 to disallow 'external' location in HAL\n  config\n- In 3/4, Reflect and adapt `if` checks accordingly in context of 2/4.\n  (No tags have been collected intentionally due to change in `if`\n  conditional checks)\n- Few minor clarifications in comments.\n\nChange in v2:\n- Introduce a re-factor patch 1/3\n- Change comments in 2/3\n\nUmang Jain (4):\n  android: Instantiate CameraDevice after checking HAL config validity\n  android: Disallow external location in HAL config\n  android: Override camera as \"Internal\" provided found in HAL config\n  android: nautilus: Add camera HAL configuration\n\n src/android/camera_device.cpp             | 13 ++++++++++++-\n src/android/camera_hal_config.cpp         |  2 --\n src/android/camera_hal_manager.cpp        | 23 ++++++++++++++++++++---\n src/android/data/nautilus/camera_hal.yaml |  8 ++++++++\n 4 files changed, 40 insertions(+), 6 deletions(-)\n create mode 100644 src/android/data/nautilus/camera_hal.yaml"}