From patchwork Thu Sep 26 16:29:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cheng-Hao Yang X-Patchwork-Id: 21386 Return-Path: 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 BBA76C3257 for ; Thu, 26 Sep 2024 16:31:55 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 86DD563518; Thu, 26 Sep 2024 18:31:54 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="YKuKCJTg"; dkim-atps=neutral Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4EFF463502 for ; Thu, 26 Sep 2024 18:31:50 +0200 (CEST) Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-2059204f448so11343595ad.0 for ; Thu, 26 Sep 2024 09:31:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1727368308; x=1727973108; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kiUmVXVsj2k0GDB+36LjnEpbTRYu3p9GSgHQdhpEEMY=; b=YKuKCJTglb3A8T/xrd0Sy5Yo+BFWQEpV3SwTg4emwGewSGs6bIi0muIcndP1hhgGU2 XWN9mE6oUvhxjGdXnAe1lAaknVRiBbz4tlXeYY1fIB1LePIN76HTDvqVMFnM4VtBMcic M4nvPO7RVz92kGb0heTpFt7NU/oZJWeIpbdKg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727368308; x=1727973108; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kiUmVXVsj2k0GDB+36LjnEpbTRYu3p9GSgHQdhpEEMY=; b=mFuNB9Wsp395tc7feZiqD6REbo3a4KX4k24UvuQBlypcaKe4cm8CIfMvJZX5f1/PB+ CsqIZjpKN2i6LTzq+nUJBQcoGSMFWtHx/Yiu4NjDcFY2mVPkoi1BCt0qAjSP3rL3vJiB s1oqbe83tPXnrTk0fAnkCw06TUKXNq6VDzINhXBEu4k9VNnQ68/+StEAzqNokbHnZRoV orB0lia4tRLfT2XQ0jyAI6EbnJdM9vZeHt/i7GVhtvpBz9zGvLtGURqMsMzpuEoc9jWh t0gvNaHniKGNNskCN8mqkY+cjUt7CkedVHWhq2iYZRAN5eTHAlRzi2E1X4vpp8mvlkVP dv2A== X-Gm-Message-State: AOJu0YzKrWL2K9k/pHwR02nwQ4kvai0jhn30/K+2oxrlt09qIC9a2B1K IabzUuhj2f/jGYfk6r9vK34ZQHTS9K982wjPMT4uSCunkiaYmj7+ecal4oY/ptH7lviv6ptcFD0 = X-Google-Smtp-Source: AGHT+IHDwgNMxvJ0xeXvNmvEhvEADay7+zUrXXQKPh2Lk1Ljm/if5wXbTMCqG/b+ycc+bci+TVxHDA== X-Received: by 2002:a17:902:e850:b0:1fd:67c2:f97f with SMTP id d9443c01a7336-20b36ec8c9emr3241755ad.28.1727368308328; Thu, 26 Sep 2024 09:31:48 -0700 (PDT) Received: from chenghaoyang-low.c.googlers.com.com (208.158.221.35.bc.googleusercontent.com. [35.221.158.208]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-20b37e20dffsm469035ad.170.2024.09.26.09.31.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Sep 2024 09:31:47 -0700 (PDT) From: Harvey Yang X-Google-Original-From: Harvey Yang To: libcamera-devel@lists.libcamera.org Cc: Harvey Yang , Harvey Yang , Laurent Pinchart Subject: [PATCH v13 2/7] libcamera: Remove PipelineHandler Fatal check of non-empty MediaDevices Date: Thu, 26 Sep 2024 16:29:51 +0000 Message-ID: <20240926163141.1593026-3-chenghaoyang@google.com> X-Mailer: git-send-email 2.46.1.824.gd892dcdcdd-goog In-Reply-To: <20240926163141.1593026-1-chenghaoyang@google.com> References: <20240926163141.1593026-1-chenghaoyang@google.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The Fatal check of having at least one MediaDevice was to prevent pipeline handler implementations searching and owning media devices with custom conventions, instead of using the base function |acquireMediaDevice|. It also has the assumption that there's at least one media device to make a camera work. Now that the assumption will be broken by the virtual pipeline handler added in the following patches, and developers should be aware of the available functions in the base class to handle media devices, the Fatal check is no longer needed. Signed-off-by: Harvey Yang Reviewed-by: Laurent Pinchart --- src/libcamera/pipeline_handler.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index e5940469..89a513e4 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -637,9 +637,14 @@ void PipelineHandler::registerCamera(std::shared_ptr camera) { cameras_.push_back(camera); - if (mediaDevices_.empty()) - LOG(Pipeline, Fatal) - << "Registering camera with no media devices!"; + if (mediaDevices_.empty()) { + /* + * For virtual devices with no MediaDevice, there are no system + * devices to register. + */ + manager_->_d()->addCamera(std::move(camera)); + return; + } /* * Walk the entity list and map the devnums of all capture video nodes