From patchwork Fri Jan 24 21:57:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 22644 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 90414C3317 for ; Fri, 24 Jan 2025 21:58:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8048268560; Fri, 24 Jan 2025 22:58:42 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="Q/JeOuDh"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B176368560 for ; Fri, 24 Jan 2025 22:58:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1737755917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=izIxPbn8+fS35F2ms6tpqwo/+LWXW4Gb6klTsUUpRTU=; b=Q/JeOuDht1r0H43RZvCd02IrPMtlnEox6F4VOq2Xfdj99I4hNwpZLv7zBx9v1X/Oh7c0K/ o2XRdokb/7khQNV1LrkYBHmcfBjDVu11RODfsVKdSjfMfE0I9MUotKIpgxNC3hBx+/smSP 5lQtecOJhQocKSVnd/gahkvnPGX/GEc= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-240-YWY5XBKeMuuL5IygUwxiCg-1; Fri, 24 Jan 2025 16:58:36 -0500 X-MC-Unique: YWY5XBKeMuuL5IygUwxiCg-1 X-Mimecast-MFC-AGG-ID: YWY5XBKeMuuL5IygUwxiCg Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 32DBF1801F1D for ; Fri, 24 Jan 2025 21:58:35 +0000 (UTC) Received: from mzamazal-thinkpadp1gen3.tpbc.com (unknown [10.39.192.49]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 10A0C1800344; Fri, 24 Jan 2025 21:58:33 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal Subject: [RFC PATCH v2 05/13] libcamera: simple: Identify requested stream roles Date: Fri, 24 Jan 2025 22:57:56 +0100 Message-ID: <20250124215806.158024-6-mzamazal@redhat.com> In-Reply-To: <20250124215806.158024-1-mzamazal@redhat.com> References: <20250124215806.158024-1-mzamazal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: yt1JyQhbHigENc9WdN6F2cW7vCbP7zgvOvOydQ49ZQU_1737755915 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true 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" Currently, raw streams don't work in the simple pipeline and the requested stream roles are ignored. In order to support raw streams, we now track in SimpleCameraData whether raw and/or software ISP processed streams are requested. We also check that at most one raw stream is requested, there is no reason to have more. That information will be used in the followup patches. Signed-off-by: Milan Zamazal --- src/libcamera/pipeline/simple/simple.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index 71853bb2..e6bbff5d 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -298,6 +298,8 @@ public: }; std::queue conversionQueue_; bool useConversion_; + bool swispRequested_; + bool rawRequested_; std::unique_ptr converter_; std::unique_ptr swIsp_; @@ -1188,6 +1190,22 @@ SimplePipelineHandler::generateConfiguration(Camera *camera, SpanswispRequested_ = false; + data->rawRequested_ = false; + if (data->swIsp_) { + for (auto &role : roles) + if (role == StreamRole::Raw) { + if (data->rawRequested_) { + LOG(SimplePipeline, Error) + << "Can't capture multiple raw streams"; + return nullptr; + } + data->rawRequested_ = true; + } else { + data->swispRequested_ = true; + } + } + /* Create the formats map. */ std::map> formats;