| Message ID | 20261029-kbingham-duplicate-id-v3-0-0a6537277d50@ideasonboard.com |
|---|---|
| Headers | show
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 [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id C1FD1C3261 for <parsemail@patchwork.libcamera.org>; Thu, 29 Oct 2026 16:06:23 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 176EF690DD; Thu, 29 Oct 2026 17:06:22 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="C0hBMJ1U"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9B290690A0 for <libcamera-devel@lists.libcamera.org>; Thu, 29 Oct 2026 17:06:20 +0100 (CET) Received: from ping.linuxembedded.co.uk (cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id CCBDFBA; Thu, 29 Oct 2026 17:04:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1793289846; bh=hrQg1SCYnz8XiZ4aaR/ohw9Y9KwfOgD32yns9DMy7YY=; h=From:Subject:Date:To:Cc:From; b=C0hBMJ1UPLwWsw3LYRF1C7mse5WQ58GZfICbGcfteFQ1K2IrCrOwEUhDA+R8zZw58 r+jGUl5LlCcv45fAdthEyrX0UJEA4KaxyhvyGGFZMvq3I1yoYEjzyiawbNy7YZsspH N6S39l8bczVPin6rg7UCSNeV1f6R8jYn3d1AdEA4= From: Kieran Bingham <kieran.bingham@ideasonboard.com> Subject: [PATCH v3 0/2] libcamera: camera_manager: Non-fatal duplicate id detection Date: Thu, 29 Oct 2026 16:06:12 +0000 Message-Id: <20261029-kbingham-duplicate-id-v3-0-0a6537277d50@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAPRu42oC/4WNQQ6CMBBFr0JmbU0tSAZX3MOwKO0IE6UlLRIN6 d0tXMDl+/n//Q0iBaYIt2KDQCtH9i5DeSrAjNoNJNhmBiVVfZEKxbNnN4x6EvY9v9joZW8IY7C 8kpVY1Rrydg704M/hvXeZR46LD9/jZlV7+s+4KiEFoaoqbBq0iC1b0tG73utgz8ZP0KWUflaLF iPBAAAA X-Change-ID: 20261028-kbingham-duplicate-id-cc835ed0846a To: libcamera-devel@lists.libcamera.org Cc: =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>, Kieran Bingham <kieran.bingham@ideasonboard.com>, Jacopo Mondi <jacopo.mondi@ideasonboard.com> X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1793289979; l=3042; i=kieran.bingham@ideasonboard.com; s=20260207; h=from:subject:message-id; bh=hrQg1SCYnz8XiZ4aaR/ohw9Y9KwfOgD32yns9DMy7YY=; b=hPl0TV+rchScyM0Era+pCWX8oDnaBSmkwWjYCisPkUsrnZhNLvePnd/7s+k/RJHAIKbDuBpQ9 JoBIMYilXsmAHTutF7AF7Uy49STQyWiwnLfjUil1XEUf1dG0FBKaDW6 X-Developer-Key: i=kieran.bingham@ideasonboard.com; a=ed25519; pk=FVXKN7YuwHc6UtbRUeTMAmranfsQomA+vnilfglWdaY= 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>, <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>, <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> |
| Series |
|
| Related |
show
|
We face bug reports from users [0] where real life situations will currently create a duplicate camera id, and we do not currently have a good solution to identify a unique path for these devices. [0] https://gitlab.freedesktop.org/camera/libcamera/-/work_items/303 We could look later to see if we create a sequential number to append to these devices but for the moment lets make sure we don't crash users systems with an assert. Following a request from v1, I've now added a unit test which constucts a test pipeline handler that can be instantiated multiple times to validate the same code paths internally. As an example: Running this test manually/explicitly produces: ``` kbingham@Monstersaurus:~/iob/libcamera/libcamera$ meson compile -C ./build/gcc test/pipeline/duplicate_camera_id && ./build/gcc/test/pipeline/duplicate_camera_id INFO: autodetecting backend as ninja INFO: calculating backend command to run: /usr/bin/ninja -C /home/kbingham/iob/libcamera/libcamera/build/gcc test/pipeline/duplicate_camera_id ninja: Entering directory `/home/kbingham/iob/libcamera/libcamera/build/gcc' [6/6] Linking target test/pipeline/duplicate_camera_id [416:35:41.396354924] [1267705] INFO Camera camera_manager.cpp:340 libcamera v0.7.2+209-ba3a4e35-dirty (2026-10-29T15:56:57GMT) [416:35:41.397117370] [1267708] INFO IPAManager ipa_manager.cpp:147 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path [416:35:41.417150821] [1267708] INFO Camera camera_manager.cpp:223 Adding camera 'NotVeryUniqueCameraId' for pipeline handler test [416:35:41.417756261] [1267705] INFO Camera camera_manager.cpp:340 libcamera v0.7.2+209-ba3a4e35-dirty (2026-10-29T15:56:57GMT) [416:35:41.418159000] [1267709] INFO IPAManager ipa_manager.cpp:147 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/libcamera/build/gcc/src/ipa' to the IPA search path [416:35:41.432221038] [1267709] INFO Camera camera_manager.cpp:223 Adding camera 'NotVeryUniqueCameraId' for pipeline handler test [416:35:41.432250143] [1267709] ERROR Camera camera_manager.cpp:213 Trying to register a camera with a duplicated ID 'NotVeryUniqueCameraId' [416:35:41.432279178] [1267709] ERROR Camera camera_manager.cpp:213 Trying to register a camera with a duplicated ID 'NotVeryUniqueCameraId' ``` And we can see the duplicate cameras are 'successfully' ignored. -- Kieran --- Kieran Bingham (2): libcamera: camera_manager: Non-fatal duplicate id detection test: pipeline: Add a duplicate camera construction test src/libcamera/camera_manager.cpp | 2 +- test/meson.build | 1 + test/pipeline/duplicate_camera_id.cpp | 190 ++++++++++++++++++++++++++++++++++ test/pipeline/meson.build | 14 +++ 4 files changed, 206 insertions(+), 1 deletion(-) --- base-commit: 212c689fcf2450bbfbaab25c7472895ac277b5d6 change-id: 20261028-kbingham-duplicate-id-cc835ed0846a Best regards,