From patchwork Fri Jul 28 12:27:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 18896 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 72483C324E for ; Fri, 28 Jul 2023 12:28:08 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id F0B7E627EB; Fri, 28 Jul 2023 14:28:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1690547288; bh=qCubLdYgBmfT4ZgaE7KkoZL2dvTizKqGsuAq7INKVFI=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=eCiPeP1hbWZnyB0Peoan5+hYzhKsH7S+Z7mZLk/etosceabyRwQ59dl2GqgfWTsSE JZzEwF+CaE9icJmP9bYGyRh4fKMFfvYjWDKgUzUXzGyQucjpL+a6V5+uKyfeQBwcq+ YHpLy71kRz4gGpKkcj6kzZtaZD9q4wUF+Y4oEyhbTmwS2+Czw1sE73Kh82NOkmSiBs D9ON7WFUfaNBVhkxw/9s16K+gY7OFyzlDXNB5f8+f+5XC9a8UezsifvG26qZV+jzYo GoYxh7rSJonK/CMHOqiHHJncExUocpbj1Mi6YC7Tnj2Cxu1WBeCat0shh2NZXpu+ul v3AmCZNt0QJaA== Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 184FE627E6 for ; Fri, 28 Jul 2023 14:28:05 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="TTXilzZZ"; dkim-atps=neutral Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-3177f520802so1347903f8f.1 for ; Fri, 28 Jul 2023 05:28:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1690547284; x=1691152084; 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=ooxTkVtCXjvWTknjMYGCRaLn0AjbP9/U8hUHTLliQjA=; b=TTXilzZZkYnV3Nyx7H6W5HaQTuVx3EO96ZStlFhHMAPwhCctP4WhCZvdFqFEMLtwvf WiP1JzM25mn6hrPN1fIP3iiBWrd490lyoR61FHd0G5q4zR4lTuNMPSEAfrsdTU8lGFRp FRekHszYlE2yc0qFqgRcxjgtjQUGHdk/2yrwSGKV6v5rP7WMtygTT8IHDjuN4dGTxaSG khLgTw0WCvzQ0fJISZUL8FsyvtXoorcTulnYWthTqjGeizmiV8CLz0SM7sBahvSXkfvT SSNHhPS/3YTxHMjYhQuznRP2XxGMXEuc1Jq/EoFqAS56qskXq+TDk264cNGgA8B4BoKZ clzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690547284; x=1691152084; 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=ooxTkVtCXjvWTknjMYGCRaLn0AjbP9/U8hUHTLliQjA=; b=fpXKNg0p9Fnyit2AqyHdqSDk8/1FCo9JoLhDXFDIKogMLbfHD2hGUteYBCEBiSS8a1 v1Giz0GNtavCoISKbLKsLqwszjeYTCYyWTdlcXIuAOAYOdQ3GcmUXZ6zXASx43/cWVYB 46wQRhJifsjhU6LAzpAAA6KKkiZDUKAUEglj1jJbnsfHavoaNAHXR0AyZLnu9P+xsXDg S4P+LvZlHVhRCnzTep0evh6q88rvsa9fEzZ2hpQKghEUMmKE5X5AgM4EmXsY1QbCdXeN FQnWAHR3PJzl1R4ksD+l8wFA1gYsJDVWynfWYssdPy3e8xli++oExXvO1sugo1pACU0Q a8PA== X-Gm-Message-State: ABy/qLabmU8fPvp3h9rSdpXaaSxrt1zIzrVPUiijeSEWt4xSg/47ky26 e82+TpFn+26nZZi2OL5PSpsa7ZvqB5rajtMV+y4= X-Google-Smtp-Source: APBJJlHddWe8tBao8eDhLFuGMZachfuVx9xrDWEwHhBLvYyplRgsXvdexGlX4zALkvlHYuE9vs6U6g== X-Received: by 2002:adf:e692:0:b0:317:36d8:d6e8 with SMTP id r18-20020adfe692000000b0031736d8d6e8mr4122946wrm.25.1690547284298; Fri, 28 Jul 2023 05:28:04 -0700 (PDT) Received: from pi4-davidp.pitowers.org ([2a00:1098:3142:14:2bce:64d6:1a5c:49a2]) by smtp.gmail.com with ESMTPSA id n1-20020a5d4c41000000b0031764e85b91sm4692175wrt.68.2023.07.28.05.28.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Jul 2023 05:28:03 -0700 (PDT) To: libcamera-devel@lists.libcamera.org Date: Fri, 28 Jul 2023 13:27:58 +0100 Message-Id: <20230728122758.2411-2-david.plowman@raspberrypi.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230728122758.2411-1-david.plowman@raspberrypi.com> References: <20230728122758.2411-1-david.plowman@raspberrypi.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/1] libcamera: controls: Add controls for HDR 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: , X-Patchwork-Original-From: David Plowman via libcamera-devel From: David Plowman Reply-To: David Plowman Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" We add an HdrMode control (to enable and disable HDR processing) and an HdrChannel, which indicates what kind of HDR frame (short, long medium) has just arrived. Currently the HdrMode supports three values: * Off - no HDR processing at all. * MultiExposure - frames at multiple different exposures are combined to create HDR images. * SingleExposure - multiple frames all at the same exposure are combined to create HDR images. Signed-off-by: David Plowman Reviewed-by: Naushir Patuck --- src/libcamera/control_ids.yaml | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml index 056886e6..34df7adb 100644 --- a/src/libcamera/control_ids.yaml +++ b/src/libcamera/control_ids.yaml @@ -701,6 +701,53 @@ controls: Continuous AF is paused. No further state changes or lens movements will occur until the AfPauseResume control is sent. + - HdrMode: + type: int32_t + description: | + Control to set the mode to be used for High Dynamic Range (HDR) + imaging. + + enum: + - name: HdrModeOff + value: 0 + description: | + HDR is not enabled. + - name: HdrModeMultiExposure + value: 1 + description: | + Multiple exposures will be used to create HDR images. + - name: HdrModeSingleExposure + value: 2 + description: | + Multiple frames all at a single exposure will be used to create HDR + images. + + - HdrChannel: + type: int32_t + description: | + This value is reported back to the application so that it can discover + whether this capture corresponds to the short or long exposure image (or + any other image used by the HDR procedure). + + enum: + - name: HdrChannelNone + value: 0 + description: | + This image does not correspond to any of the captures used to create + an HDR image. + - name: HdrChannelShort + value: 1 + description: | + This is a short exposure image. + - name: HdrChannelMedium + value: 2 + description: | + This is a medium exposure image. + - name: HdrChannelLong + value: 3 + description: | + This is a long exposure image. + # ---------------------------------------------------------------------------- # Draft controls section