{"id":23032,"url":"https://patchwork.libcamera.org/api/1.1/covers/23032/?format=json","web_url":"https://patchwork.libcamera.org/cover/23032/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20250326084800.1880530-1-paul.elder@ideasonboard.com>","date":"2025-03-26T08:47:57","name":"[v2,0/2] pipeline: simple: Fix matching with an empty media graph","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/1.1/people/17/?format=json","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/23032/mbox/","series":[{"id":5082,"url":"https://patchwork.libcamera.org/api/1.1/series/5082/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5082","date":"2025-03-26T08:47:57","name":"pipeline: simple: Fix matching with an empty media graph","version":2,"mbox":"https://patchwork.libcamera.org/series/5082/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/23032/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 51F88C323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 26 Mar 2025 08:48:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A84D668952;\n\tWed, 26 Mar 2025 09:48:10 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 749A968947\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Mar 2025 09:48:09 +0100 (CET)","from neptunite.flets-east.jp (unknown\n\t[IPv6:2404:7a81:160:2100:7402:917d:ea0c:6d4c])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8A919475;\n\tWed, 26 Mar 2025 09:46:20 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"L63Fm0cw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1742978781;\n\tbh=q4MiyLouXELwBO6eyMe1rS8/8IKNLqEGW/TxuixaXKg=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=L63Fm0cww9KyQwTzhYKqyM/JgSKLh5mjmtmLhJqznRx8lUt6Axd/TogzLQ7+MVzsU\n\t/i08qvYewMjKNLLlJM7bvHPeWmVzRs9i5m++y3ThKgsoYkWSvdO4Wq7+A24qqsHe21\n\tomhB9u//MJpsfvFMH8rAjKyAVrchM6aJAsu8tDMQ=","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Paul Elder <paul.elder@ideasonboard.com>","Subject":"[PATCH v2 0/2] pipeline: simple: Fix matching with an empty media\n\tgraph","Date":"Wed, 26 Mar 2025 17:47:57 +0900","Message-ID":"<20250326084800.1880530-1-paul.elder@ideasonboard.com>","X-Mailer":"git-send-email 2.47.2","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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":"The simple pipeline handler may encounter systems with multiple media\ndevices that can be supported.\n\nIf the first media graph it could support is invalid or empty and a\nsubsequent media graph could handle it - the simple pipeline handler\nwould not continue matching to complete the creation of cameras on those\nlater devices.\n\nThe second patch updates the pipeline handler to iterate attempts to\nacquire a supported MediaDevice until they are exhausted, ensureing that\nall supportable cameras in a system will be created.\n\nThe first patch addresses a comment from v1, and adds a function to the\nbase PipelineHandler class for clearing the list of acquired media\ndevices, thus preventing a mix of invalid media devices from a\npreviously failed match and valid media devices from the current\nsucceeding match.\n\nPaul Elder (2):\n  libcamera: pipeline: Add function to clear acquired media devices\n  pipeline: simple: Fix matching with empty media graphs\n\n include/libcamera/internal/pipeline_handler.h |  2 +\n src/libcamera/pipeline/simple/simple.cpp      | 52 +++++++++++++------\n src/libcamera/pipeline_handler.cpp            | 15 ++++++\n 3 files changed, 52 insertions(+), 17 deletions(-)"}