From patchwork Thu Jul 2 14:39:16 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 27156 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 E2816C3302 for ; Thu, 2 Jul 2026 14:53:23 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id CF2DD65FB9; Thu, 2 Jul 2026 16:53:22 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="hFqHMvzc"; dkim-atps=neutral Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3407D656DE for ; Thu, 2 Jul 2026 16:53:20 +0200 (CEST) Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-4938d5f86f3so5938215e9.1 for ; Thu, 02 Jul 2026 07:53:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1783004000; x=1783608800; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=rSP8s86LhfUwgufVCfBAHrsmyFnmlJECipbrVCm87+A=; b=hFqHMvzcHjD14V2vGwxb65uJ+bdQxYu8YnYF/xHg6JqzHyC04Kl7wcJE7iXBsB2oI+ Dx5nn7jy6B9Wu2TYctrgGb905QcVRUfObq2rOi8herbya6maIZjzMEjgrQ/dLUK/qFEI NxkVu6c+ogdnYnvlKj9jxmphsdBqlXX7/TmlvlpVi8s2VeoSdwf6K1ToGRto95CcwLKD iCpzWNJkqAUT9SXwJ1P1lOgoi3Gc20jqKmteGVkilUw34mUkvyUhCCUhEHJwji4WgcG8 5wp4kmBeJx8FR1sWDGGdAzNxZAxb6Ajjz24wOt85mdv7yaiWkYXYn3I29sGJEU8nIJ+f CLMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783004000; x=1783608800; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=rSP8s86LhfUwgufVCfBAHrsmyFnmlJECipbrVCm87+A=; b=kdgl5tCO7Z3XtC5Tt7DyjOawtZmlh2UV14B+nhSnHuYnH41rw/QpXjaIq7poreRKVp G7+jGCh6WQxRuHWMhzHt6HV93V7Jy3tk2ewXbX5hjxE3x6T+HecAwTFZ10hPFi7Mebc9 O/sxjP/AwWtSiyIhYppsM3ByKo7iGFaAJLcOcgc41VnjnxEW/KBCVWeiUNou4EFSKyKa dsA7TWMzZp1iR5KUbnuDrUWW7cRkUKoJeSB/LfbDyOvfCDV0RqP9v0m+fC1M8gPFlSbW kBCUiq0Dz+nj53L9bGBBIbfXH6vkF6UMXDMeHeEatnK3bWuXTHBQb/kG2AE8QOJi6ZUE jY0A== X-Gm-Message-State: AOJu0YxMDERF2lMIGdazhx7iYuElCo46PmdEXMNQh0emMZBPnBOCYol8 rzLsmrzqjDQ9iKv1Dk3bG4MAv+iMSLazLqqLC/+PYxGpXsRgjK00OhcyAEXoHr6gBjN/kd6HGBU fJGV8T+M= X-Gm-Gg: AfdE7clfAfJNsGT5W7Vq9P3G5AcxAg4KIv6A8Si8xyRtKvx+FGSQKu5zKyDX/dVSBuv nGxXljeCerVq4H/SwjBuvsK9y5TylA6JTVUo5VNm7+bwXfy+G3nESjSrDwrultu4cY4Bo/bpyuW prSAWIK1k7mbto3kbFHwjrla2EEWI1QsgkQ7euYgDbzxYLVnGyQDKEe4BrHqZ6SlaST/Ge7QPk8 sT8Q64hCFPSyR/6npRimmZzEF5FcINT80ZdjrVfzFsB7eIhgAdEL+6ai64uETL4Fsk21nUmt8AF cXY093o5oOjLkzugLjuHeNVB4zWfGI5uEfWibQQS4slzLLSW7qmlRi3DMsngpXp+J2ZrXcEtpYi O9BJqx1hfS3OnbBw80kNKOafXfhE1g5P/pNoNY5NtCxq6kZkwPaTv+AKy9lUlreQq1ziBPAaXI0 YzzqRChCFodrfGqLhj28lWNdkSB52XZdY0RIugWI/MT4sBzPQPpE5KD/OHk4PDng8jZ2qahWG55 cC2Yo6LA1bJTwwFVuzWKuuAz1wzYMfE X-Received: by 2002:a05:600c:4753:b0:47d:52ef:c572 with SMTP id 5b1f17b1804b1-493c9b3dceemr3532505e9.1.1783003999432; Thu, 02 Jul 2026 07:53:19 -0700 (PDT) Received: from davidp-pi5.pitowers.org ([2a00:1098:3142:1f:4706:89ee:c47e:1087]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-477db3db964sm9419149f8f.8.2026.07.02.07.53.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Jul 2026 07:53:19 -0700 (PDT) From: David Plowman To: libcamera-devel@lists.libcamera.org Cc: David Plowman Subject: [PATCH 0/1] Make Gstreamer prefer non-raw caps Date: Thu, 2 Jul 2026 15:39:16 +0100 Message-ID: <20260702145317.86482-1-david.plowman@raspberrypi.com> X-Mailer: git-send-email 2.47.3 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" Hi everyone Another episode in my side-quest to make gstreamer/libcamera work better on the Pi. I thought a cover-note was desirable because I'm not 100% sure about these bits of gstreamer, so some background may help. Basically I was trying to run "cheese". It uses libcamera through gstreamer so I thought it should stand a fighting chance. Unfortuntely, though, I found that its preference for fixed size outputs (over ranges) gave it a nasty habit of going for raw (Bayer) image formats which general-purpose camera apps like "cheese" can't handle. Anyway, I've rearranged it a bit to perform the same logic as before (preferring fixed size over ranges), but _separately_ for raw and non-raw streams. Finally, it will prefer non-raw over raw, if it can. So folks who explicitly want raw will still get it, but otherwise, those general-purpose apps should mostly get non-raw. I think this makes sense, and may work for everyone, but it's hard to be sure so it would be good to have some other opinions! Thanks in advance David David Plowman (1): gstreamer: Prefer non-raw (i.e. non-Bayer) formats in caps negotiation src/gstreamer/gstlibcamera-utils.cpp | 96 +++++++++++++++++++++------- src/gstreamer/gstlibcamera-utils.h | 2 +- src/gstreamer/gstlibcamerasrc.cpp | 3 +- 3 files changed, 75 insertions(+), 26 deletions(-)