From patchwork Tue Jul 22 10:39:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaslo Ziska X-Patchwork-Id: 23897 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 8EBE6BDCC1 for ; Tue, 22 Jul 2025 10:57:12 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 49D5369030; Tue, 22 Jul 2025 12:57:12 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ziska.de header.i=@ziska.de header.b="e1Ot8+CO"; dkim=permerror (0-bit key) header.d=ziska.de header.i=@ziska.de header.b="rDUkujN6"; dkim-atps=neutral Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de [85.215.255.22]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B1A6C69026 for ; Tue, 22 Jul 2025 12:57:10 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; t=1753181830; cv=none; d=strato.com; s=strato-dkim-0002; b=FlwsHxZ/FF7drB4/KprwKqCiWKp5G3FqMdFDRlIN+bpO2cLIy/1+gr5PsxmxRMWBy0 Pxss0UHuegZhoXdCoVuyqL4ci+1Hriunt8G6ZPEMq0cxT0fAf9GAJivWfKEZLMbl4bBC AR3KZn+xGyYU4TAoUNyukKlTdIDD1nv5wy2zwWtGXcZg1UVHKDwOvmx4CrnHkD9G9m2P iy3rvO00OQYWwt0bOxFS1Hw1IPlvI7hMp8SqBFoTO6xYox0i9bDHUN6jr3h/SQrEDvRA SmlGqySK+KX/0gTID/2qS6MPF1ZPJ0JHlggItMFHFJ18eIwHvzQ/2xLwCcnphhJVZZfz /jzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1753181830; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=T/QnA1pSf04NxY4A339dZ0QQFP9oyrj5O75WrrTvLtA=; b=QIl4uPUJk/u5M7nbuAZk2ZQXeKgHpuy1L3kmLfDF8e9fRMsOlocSa08+p2UtEdHqVZ Ze2ylXp+GnqSlKMfdGwMJCBcDy/+4CKtR6M4URDjb6C+Nnxgp8FYrQDFWmc6oGJx294v WFHLA59iWMvZ84aht1jDBIClUdx5MRlL2LSH1UlEn26jfxeTZUGXoRBhCUqUk/PpWZvA zqPBNKiwiOSu6SHRUUjqrottI8smAlHApWAvLRqjNZ2J0V5xXm75akZaX3MjWuZM4F6A TR/XbcXR84UABAfVD3JWY3hDyblvqhArtBkJrzFInmO7pXWlDHeKmB7bpel+YLQSm/Ua F0ug== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1753181830; s=strato-dkim-0002; d=ziska.de; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=T/QnA1pSf04NxY4A339dZ0QQFP9oyrj5O75WrrTvLtA=; b=e1Ot8+CObhrSSf+isnfyzGxKKoo6PKVU1fALATGkFRHrudfhZG836tKGyITKVSzU5T ZHZSm7QVcEfBkTdwEUN/k8Y+mq1H9EI6Z5w9xGjSD3CmPM/n0kSSk0gfalqs10+ZrIck ntYS1p01TL7re6CbSy5Tbx2O1GMu10K97yO05NGQl7JAKF703YiSCilxv1A63r3PiggL mrZnRWjuDFv9y8DD+UPgc+gqaLLCiBGxH4zV9Ut31GEAPM6C2Uq2ckex07JU5D7ffOdV NvZJmE+R9f9TS0jLLL+g7FlDPuKPYe2kTILPMFdzV9rqePFLIDjosaO682OYljrbkefQ ixCQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1753181830; s=strato-dkim-0003; d=ziska.de; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=T/QnA1pSf04NxY4A339dZ0QQFP9oyrj5O75WrrTvLtA=; b=rDUkujN6siMkl/R6IhAu4WD/EPyfzMNCc6fZ14RiKp4SGwcX2o66tIYavNKp2oNFH3 SrKe+fZtQO/XnE6s7fCw== X-RZG-AUTH: ":Jm0XeU+IYfb0x77LHmrjN5Wlb7TBwusDqIM6Hizy8VdfzvKi4yoFC9cF0Yq5V/JaauwvHLbqWsUkNwDmHGDXQ5TkbZSP" Received: from archlinux.fritz.box by smtp.strato.de (RZmta 52.1.2 AUTH) with ESMTPSA id z685ee16MAvAHgW (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 22 Jul 2025 12:57:10 +0200 (CEST) From: Jaslo Ziska To: libcamera-devel@lists.libcamera.org Cc: Jaslo Ziska Subject: [PATCH v2 1/3] gstreamer: Fix reconfiguration condition check Date: Tue, 22 Jul 2025 12:39:28 +0200 Message-ID: <20250722105627.11961-2-jaslo@ziska.de> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250722105627.11961-1-jaslo@ziska.de> References: <20250722105627.11961-1-jaslo@ziska.de> 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" gst_pad_peer_query_accept_caps() might only check if the caps are acceptable with the peer element, but not recursively with all downstream elements. If the reconfigure flag was set because the pipeline downstream changed, gst_pad_peer_query_accept_caps() might still return true, even though downstream can't handle the current caps, which causes a not-negotiated error. This commit fixes this issue by emitting a query event which recursively checks with all downstream elements. Because at this point we are only interested in whether the current caps are still acceptable, use the currently used caps as a filter and then check if the query returned empty caps. Signed-off-by: Jaslo Ziska Reviewed-by: Kieran Bingham Reviewed-by: Umang Jain --- src/gstreamer/gstlibcamerasrc.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp index 3aca4eed..7f4a39ec 100644 --- a/src/gstreamer/gstlibcamerasrc.cpp +++ b/src/gstreamer/gstlibcamerasrc.cpp @@ -730,7 +730,8 @@ gst_libcamera_src_task_run(gpointer user_data) if (gst_pad_check_reconfigure(srcpad)) { /* Check if the caps even need changing. */ g_autoptr(GstCaps) caps = gst_pad_get_current_caps(srcpad); - if (!gst_pad_peer_query_accept_caps(srcpad, caps)) { + g_autoptr(GstCaps) peercaps = gst_pad_peer_query_caps(srcpad, caps); + if (gst_caps_is_empty(peercaps)) { reconfigure = true; break; } From patchwork Tue Jul 22 10:39:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaslo Ziska X-Patchwork-Id: 23898 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 16D17BDCC1 for ; Tue, 22 Jul 2025 10:57:21 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id C454969037; Tue, 22 Jul 2025 12:57:20 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ziska.de header.i=@ziska.de header.b="GIBZJ3mF"; dkim=permerror (0-bit key) header.d=ziska.de header.i=@ziska.de header.b="GRAAWw46"; dkim-atps=neutral Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de [85.215.255.24]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 947E169030 for ; Tue, 22 Jul 2025 12:57:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; t=1753181835; cv=none; d=strato.com; s=strato-dkim-0002; b=mhBQGHcNKt7ozxlChGYYV8t1DmcVPRo7nPNeJDjk1tkFiCQTzoQ5QpaJGVD8i7OKgh 5ocPNZTBLu/zC+cpKUOurOO0aZnjpuTq8qngiZHIS8g8Sf/dDZTZyqkwx3VhFKLQdi2M DI96JUgS9ZuRIfiG/A+WBjV1Jz+gYs1s4ATzjOymVyZcHELuTNAoZ1KYnQOrffXn0+KY 0QnTeZ6/BEbXc2TFFsXBRS1YAwxUNOxgWf5GacBtyJmmDkRpWIfz8Bh0ZRN35BcFcRWT nAsldlXZ/gPA/0Ho/E7KjDhhPJ/q0ckO68BXjAmEAOlm1173b71IUmYTtxvty+wKt5lI NcPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1753181835; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=uAE5TKYpSwi8OZn439sRZrIo2ufj+EvR+7N8E2PXpUY=; b=gF6kbCasNgWJsysuvA13G5I5IxyQn5rCING6k6C9vqv+XEJnHl4CeJ3INR5kJubICW bI2WsDYiBc7Hk3mJxLZANqGhniMVYgCekqR6mnsfEqB3t91g8u4wdBcerRKArfqxxrAy zCGCOGH18ef6rw8YMjLKUgVr1G6l5ds8rCyJty/FCRXYkntorjcv9pME94/2Hi1ybGjY RXPpTJRb/+p5C5+YfJ3kuia/w//ab6DrTOBasuFtSPwLAZpFACyfdGBdoQKOu/OQ4h8o H+5LADH/+8wL4RHtcF3U+6mLQQSO2EJ4XejlED7nOC2D/9dMffolWCE+C6/Im1YdpsUL jdDg== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1753181835; s=strato-dkim-0002; d=ziska.de; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=uAE5TKYpSwi8OZn439sRZrIo2ufj+EvR+7N8E2PXpUY=; b=GIBZJ3mFXwUeOPzB4k+FGpS/PyYCj2LqMkM3fJ2ewLYH/VOxaCv7ZLyB+9sWdDTiHq 6xIHwMP+yrbE6qFm+kxd0tKPIzMPbMlmQutrkjpGhLvIJVdry5s55JAwzKn//f7/oLSd vMfq/rjlvCxYd7Lrl/+GLHIl2LViQ1cjSmVR9a+mV8dK4mqyjCTu7PVrDySCZQb5sJq0 dLhctFRhWnU+08mkyHyE0rg/+jVc1uYRz9dfCihb4NvbojqgfNlqJwaZaBjflhAO65k+ DfE3Vg+xbFvTHs1XMfnBWxeq9UI61bsNdObmCXPEx4PjzWoD7a04RrQqizuTJM9lZ+r3 y5Sw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1753181835; s=strato-dkim-0003; d=ziska.de; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=uAE5TKYpSwi8OZn439sRZrIo2ufj+EvR+7N8E2PXpUY=; b=GRAAWw46CkFinckzCfsRtPrz4siKA4nqNLENsfIlfn6+YK7WRWDXCYQk55wKbFdxD4 kWcAHnekDjX5fdb1ENBw== X-RZG-AUTH: ":Jm0XeU+IYfb0x77LHmrjN5Wlb7TBwusDqIM6Hizy8VdfzvKi4yoFC9cF0Yq5V/JaauwvHLbqWsUkNwDmHGDXQ5TkbZSP" Received: from archlinux.fritz.box by smtp.strato.de (RZmta 52.1.2 AUTH) with ESMTPSA id z685ee16MAvFHgZ (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 22 Jul 2025 12:57:15 +0200 (CEST) From: Jaslo Ziska To: libcamera-devel@lists.libcamera.org Cc: Jaslo Ziska , Nicolas Dufresne Subject: [PATCH v2 2/3] gstreamer: Log and check adjusted camera configuration Date: Tue, 22 Jul 2025 12:39:29 +0200 Message-ID: <20250722105627.11961-3-jaslo@ziska.de> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250722105627.11961-1-jaslo@ziska.de> References: <20250722105627.11961-1-jaslo@ziska.de> 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" As CameraConfiguration::validate() might alter the configuration previously negotiated with downstream, log an info when this happens as GStreamer source elements are not supposed to do that. Also check if downstream can accept this new stream configuration and if not, return a not-negotiated error. Signed-off-by: Jaslo Ziska Reviewed-by: Nicolas Dufresne Reviewed-by: Kieran Bingham Reviewed-by: Umang Jain --- src/gstreamer/gstlibcamerasrc.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp index 7f4a39ec..79a025a5 100644 --- a/src/gstreamer/gstlibcamerasrc.cpp +++ b/src/gstreamer/gstlibcamerasrc.cpp @@ -617,8 +617,13 @@ gst_libcamera_src_negotiate(GstLibcameraSrc *self) } /* Validate the configuration. */ - if (state->config_->validate() == CameraConfiguration::Invalid) + CameraConfiguration::Status status = state->config_->validate(); + if (status == CameraConfiguration::Invalid) return false; + else if (status == CameraConfiguration::Adjusted) + GST_ELEMENT_INFO(self, RESOURCE, SETTINGS, + ("Configuration was adjusted"), + ("CameraConfiguration::validate() returned CameraConfiguration::Adjusted")); int ret = state->cam_->configure(state->config_.get()); if (ret) { @@ -643,6 +648,10 @@ gst_libcamera_src_negotiate(GstLibcameraSrc *self) g_autoptr(GstCaps) caps = gst_libcamera_stream_configuration_to_caps(stream_cfg, transfer[i]); gst_libcamera_framerate_to_caps(caps, element_caps); + if (status == CameraConfiguration::Adjusted && + !gst_pad_peer_query_accept_caps(srcpad, caps)) + return false; + if (!gst_pad_push_event(srcpad, gst_event_new_caps(caps))) return false; } From patchwork Tue Jul 22 10:39:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaslo Ziska X-Patchwork-Id: 23899 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 72BBCC3323 for ; Tue, 22 Jul 2025 10:57:22 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0D34A6903B; Tue, 22 Jul 2025 12:57:22 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ziska.de header.i=@ziska.de header.b="bFKm1bWp"; dkim=permerror (0-bit key) header.d=ziska.de header.i=@ziska.de header.b="lXf7v6qz"; dkim-atps=neutral Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de [81.169.146.160]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0422A69033 for ; Tue, 22 Jul 2025 12:57:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; t=1753181838; cv=none; d=strato.com; s=strato-dkim-0002; b=ROpUsGzxtAa7aM6xl8Si+kPyM+T6U/1JD7iZIp115it96V9deNO/VMY/ETXlD/HKa1 M76k4ep8LeWbrlljW+lFkAH6WnY2qSdDBHO8ihe+kT+Y0JduFaFFehAG7NDwwNzEB8/Z rT/TthUG2pUVRl/Ouhiw6oZkETFtmJhuDTsuM14ONoDj6inL9bvJV4Smvkrh4iwaXfG2 X6VouELMdvPa/LFPLhKt8cXfnxjhBnY5PVHKfoL0Ab4b/iE99CmhEfCzDe5HETQOnizv 84zjedXzFZBD+6plwlHJwO73uCV9uqFTg3iKh4t3H+g21WI+t1CebZmpuBahI/Beg/uB SG9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1753181838; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=0wZrZxo49g3Y3DJJFWbGIozuPMWYiuqd2fxjR2eA2hA=; b=agLuvXDZT3Q4GeY4P+CGe+3EnKye8NiimFsNJczJooyn15ZPdMpCndKzG51rsA9rdo y7pysn3DGYKblXaxcka97UHCoKMiV/Cal/KyI7Xvio7sorW7SDE3GpyCvOg3/U6Osr4D hRmDKZDylG/OJ7nGWI9Xb0wsfgBJzT3PAnXzmppnZd9lvt040Vicr0LVCSQ2YJeF0sAn ZlYk44DHZCPi+u6gtMxWJTQmp0bOsmZIhXnnWTz5NtoM/b9q6dGNMNS/Oh+Rb4N75gyP Dt4cJ1soILiV00eqv2mYNeIDCr2GaF5OpIjKeXHbTA7TMiJqBrPDEt5Ws3ytJi6VfLWK cluA== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1753181838; s=strato-dkim-0002; d=ziska.de; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=0wZrZxo49g3Y3DJJFWbGIozuPMWYiuqd2fxjR2eA2hA=; b=bFKm1bWp/cC8Esd960nY1KEUGnRqP6MN1rDNvlS6ZDHuVQ5eXSk1FYvt3NmBvGoviR eiQPkNVyoadinc0xP5avpRQR8Uz510oiuqi78nXNgytB5kKoMQT9Avldnj0wFYSA2Iff npJyUHYljMiQh6H9pXdtm4HU+kxjbXVuhSIiIyCiE01+RW5Got5rK9xjWftHQpYpB7ND VSZ29Ea8Z6b/F/OR+RgqGSKXuR1TKAyn7c60EOeIcLqJX5tbwvQV8bn0zU7Us7tsFCBk RqdbLItjFmp0DfpR32Q3f8UYxE4kYYNup8IKn+tRgY6Uu8E6Wv1PxsY27OBr1yf+KxLA rVoA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1753181838; s=strato-dkim-0003; d=ziska.de; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=0wZrZxo49g3Y3DJJFWbGIozuPMWYiuqd2fxjR2eA2hA=; b=lXf7v6qzOr+ZVN6TigcgQLoBPdbRP0PuGX2/lIrTS47muil1u2/nI3g4UXzsxY+40U BE7/fx0tdGFl3RlRcNDQ== X-RZG-AUTH: ":Jm0XeU+IYfb0x77LHmrjN5Wlb7TBwusDqIM6Hizy8VdfzvKi4yoFC9cF0Yq5V/JaauwvHLbqWsUkNwDmHGDXQ5TkbZSP" Received: from archlinux.fritz.box by smtp.strato.de (RZmta 52.1.2 AUTH) with ESMTPSA id z685ee16MAvIHga (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 22 Jul 2025 12:57:18 +0200 (CEST) From: Jaslo Ziska To: libcamera-devel@lists.libcamera.org Cc: Jaslo Ziska Subject: [PATCH v2 3/3] gstreamer: Enable bayer formats with 10/12/14/16 bits Date: Tue, 22 Jul 2025 12:39:30 +0200 Message-ID: <20250722105627.11961-4-jaslo@ziska.de> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250722105627.11961-1-jaslo@ziska.de> References: <20250722105627.11961-1-jaslo@ziska.de> 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" GStreamer supports 10/12/14/16-bit bayer formats since version 1.24. Signed-off-by: Jaslo Ziska Reviewed-by: Kieran Bingham Reviewed-by: Umang Jain --- src/gstreamer/gstlibcamera-utils.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp index a548b0c1..c55a52d7 100644 --- a/src/gstreamer/gstlibcamera-utils.cpp +++ b/src/gstreamer/gstlibcamera-utils.cpp @@ -20,7 +20,7 @@ static struct { /* Compressed */ { GST_VIDEO_FORMAT_ENCODED, formats::MJPEG }, - /* Bayer formats, gstreamer only supports 8-bit */ + /* Bayer formats */ { GST_VIDEO_FORMAT_ENCODED, formats::SBGGR8 }, { GST_VIDEO_FORMAT_ENCODED, formats::SGBRG8 }, { GST_VIDEO_FORMAT_ENCODED, formats::SGRBG8 }, @@ -317,20 +317,15 @@ bare_structure_from_format(const PixelFormat &format) return gst_structure_new("video/x-raw", "format", G_TYPE_STRING, gst_video_format_to_string(gst_format), nullptr); - switch (format) { - case formats::MJPEG: + if (format == formats::MJPEG) return gst_structure_new_empty("image/jpeg"); - case formats::SBGGR8: - case formats::SGBRG8: - case formats::SGRBG8: - case formats::SRGGB8: - return gst_structure_new("video/x-bayer", "format", G_TYPE_STRING, - bayer_format_to_string(format), nullptr); - - default: + const gchar *s = bayer_format_to_string(format); + if (s) + return gst_structure_new("video/x-bayer", "format", + G_TYPE_STRING, s, nullptr); + else return nullptr; - } } GstCaps *