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 *