From patchwork Fri Dec 6 14:27:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 22216 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 B7DF2BE173 for ; Fri, 6 Dec 2024 14:27:59 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id A737F67E19; Fri, 6 Dec 2024 15:27:54 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="JrGxnO9r"; dkim-atps=neutral Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 145DF66159 for ; Fri, 6 Dec 2024 15:27:49 +0100 (CET) Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-3862f32a33eso214222f8f.3 for ; Fri, 06 Dec 2024 06:27:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1733495268; x=1734100068; darn=lists.libcamera.org; 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=RwXAjeZBjmTaRhBl0Lt3tdMya7DG8/0UHFFSELomyPA=; b=JrGxnO9r8vRtVXtg38yr2OjKSNeIt3ZJvFUJdmE6aIy9KPd3v/f/OjVvns90uwcgvg D7Eub6ePOrNK5/EnLhULASxLLsLeqWCNIfifbLfs+IKgFwIbYf+wQfxEea3FF1udn0+A Z3hmEgYXj61kiLHSEI2q+o8JKBKg3vuLCWiXm7ru/SDSW8KThuyUW6Z2fSdHFZIRZ07i 46tQWpSI4dGalTeLTMctFlNeGKifZvS7zQxH3gn7A+V7QG9qYOlOO+GETb1zJG0OTd9P khRyuEL1Kg4fLA+vDbfrEmKU4QL7eyAdkbdcok7Sp/DQ+tTUtpnQKy8Shj9XbiKoxbtH 1wjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733495268; x=1734100068; 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=RwXAjeZBjmTaRhBl0Lt3tdMya7DG8/0UHFFSELomyPA=; b=WSdg6iZXVy3J9b7TjTLXld8yeHLeneAWWjsGmg7YwE/TaGhDUAuuezsQ0rgqPNW5Zu yW8aEFpr37ptB9v27a8gKJ33s5F/S232+CxN4kzd/SU1dQxdmHKsDYGKw731FHNuKEFB gC3iUyPGbR2gMQC5F1wWqQSKVrRNMiWKJHYvxxoi+2HNZVNOztfUqZgIk6e4uGx6alfr vzU8t3LAkXEJ3hHnSv6GV2ldKjstBFwj9hEvxWyf+x8Kq2ttFHBqxMRMM2utqHfxMGy9 svc1DHaE6BrmtX6WopYf9g7xD3e11EUiSGwSyzlGCouTuUMGBxTW/I55kqzB0W2Du5kN 4l5w== X-Gm-Message-State: AOJu0YwmzAAJLBb5kO44DdU3k4saGI1Rjr9IqgyvG9LXZUg46qmbZIiY m2H8MqIZDDW0eSO6zkyZKSz3WP8vf4g6uLG8l3c75/XAqfChEuCwNf92rWz/l7nCMD8JvakACND y X-Gm-Gg: ASbGnctY0Zo2fdh8YSMeOnr1QVxkqMMQy7VKPDVcrN7QBq/C28N911f3DpeyBY7GR6C U72ZquUAmm0lP3X4tspOabgXx9D7ngCZm/5sWKLRPKRrttlQEoGjqQiyH1Gt9vc/BgUQKvePxTu ZnqeSAZq6ZcE3TOLUMRgZbYep4Pakd7cqET6MZas3BZXJd9RHQ5WkVSRAqd321jwNeS+uIUCMdR 3miHTzm92Oe4Q4iI/NFYY98KzIiiLh5/SUhc1uihnkWwS3Ar78V3dgShHI7x1PSTBtKpU+QTLc= X-Google-Smtp-Source: AGHT+IH8m0qAB5srEnDm2xrQP0MnazAqKbyVam/9EjJQdOZ2r57U+05ysS8jVb3A9UpRysrUN/UL9w== X-Received: by 2002:a05:6000:1fa4:b0:385:f677:8594 with SMTP id ffacd0b85a97d-3862b3e5d6dmr2562804f8f.43.1733495268327; Fri, 06 Dec 2024 06:27:48 -0800 (PST) Received: from localhost.localdomain ([88.202.252.90]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-386220b071dsm4608219f8f.101.2024.12.06.06.27.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Dec 2024 06:27:48 -0800 (PST) From: David Plowman To: libcamera-devel@lists.libcamera.org Cc: David Plowman Subject: [PATCH 5/5] pipeline: rpi: vc4: Add wallclock timestamp support Date: Fri, 6 Dec 2024 14:27:42 +0000 Message-Id: <20241206142742.7931-6-david.plowman@raspberrypi.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241206142742.7931-1-david.plowman@raspberrypi.com> References: <20241206142742.7931-1-david.plowman@raspberrypi.com> 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" Wallclocks are enabled for the unicam output, and the values returned in frame metadata are made available to the base pipeline handler class. Signed-off-by: David Plowman --- src/libcamera/pipeline/rpi/vc4/vc4.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp index fd8d84b1..eb98c56e 100644 --- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp +++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp @@ -398,6 +398,9 @@ int PipelineHandlerVc4::platformRegister(std::unique_ptr &camer Camera::create(std::move(cameraData), id, streams); PipelineHandler::registerCamera(std::move(camera)); + /* Enable wall clock timestamps for the unicam output. */ + data->unicam_[Unicam::Image].dev()->enableWallClock(&wallClockRecoery_); + LOG(RPI, Info) << "Registered camera " << id << " to Unicam device " << unicam->deviceNode() << " and ISP device " << isp->deviceNode(); @@ -784,6 +787,7 @@ void Vc4CameraData::unicamBufferDequeue(FrameBuffer *buffer) * as it does not receive the FrameBuffer object. */ ctrl.set(controls::SensorTimestamp, buffer->metadata().timestamp); + ctrl.set(controls::FrameWallClock, buffer->metadata().wallClock); bayerQueue_.push({ buffer, std::move(ctrl), delayContext }); } else { embeddedQueue_.push(buffer);