From patchwork Mon Sep 30 14:14:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 21425 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 58490C0F1B for ; Mon, 30 Sep 2024 14:14:01 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 53CD263517; Mon, 30 Sep 2024 16:14:00 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="TwsyUmDu"; dkim-atps=neutral Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1053D63502 for ; Mon, 30 Sep 2024 16:13:58 +0200 (CEST) Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-37cdab63866so197114f8f.2 for ; Mon, 30 Sep 2024 07:13:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1727705637; x=1728310437; 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=B7WPZNdYU2uNOmbeEmCbgZKfWT8isMBstgyiSCZDgXE=; b=TwsyUmDuw8cvvs9BJF7Tfi625PLYVNJUXdIV9Ti4y6wLGtTiGI5nTJ49Z0XuOVSr2e A4wwRJxobeNhlvO+HluEJ8bzMYh/+MrMFnfoJQUmhD307/EyuX2mp5+KPQ4u8nTKNONu UapAEKY/CF6qjcvqSNZ5fxb1GpXC1YfhS3ukr8HiUvMAAf08M2is18ohE2+CnxpT6NR1 aisZ+AKphWjkPDpqzDaF1TfqMUEFrT6U0CTE/rQeTEu5l8u2VSIVZ2nZZ8NHkMevfLKN bccIip4r7Dfthx7k5p2KDKbsor5ekFJGgLRJ4sxOe6TStc6GbJL1XMKm8qlXqdStRddD uSTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727705637; x=1728310437; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=B7WPZNdYU2uNOmbeEmCbgZKfWT8isMBstgyiSCZDgXE=; b=nD9i2qfsm/ryz4FGykOsgh2rUbUQFAQTLGhXWiUpUyK7qBwn1c3/+1RZVKxdSvunxZ YaSAJygtHdMV6GkdTvPIreJGIBCq5kVp0ddTe10c62mc1RvA8Vl5GTjBvBuuPq8QnBgw n+NuloCu26BI80AYrNUbHmsQN+1ASuHtvCbh+0FMpBeFXOicpjq3Z8VDjDbl/kYPhsEV bbLoWbgatBudK3/4o3qaMa638AANyX9+llNP0JtlEeXTJD+fnwXlZg709/8Bh59lyfOC 9rRPr9E8jy0W8rBio6n2lFz5lCjgZlVEaL5wDnaC9JEfyX+rg3TlUlWJuk36/ppWIcTp OJ+g== X-Gm-Message-State: AOJu0YxictkxJYIa+64NRZhruKOVyiJi53ODHvLUdpHIkhKtTP0ps6qi SFR/DcvBoPdFgtG6ZY4+PunIGvxKwn8yxNsPIh8KZJSrekI0yevg+fPvQ8ooA8a2fv50uSegzfI p X-Google-Smtp-Source: AGHT+IHO1LScb776M/5f65RE/hhu+UcQenQzG86y9p/GwIr0mh1tQAQKN0Z88gVhD9qTWlLJ5oZUJQ== X-Received: by 2002:a05:6000:bc2:b0:376:2e3e:e6d4 with SMTP id ffacd0b85a97d-37cde3d36a4mr1871897f8f.5.1727705637109; Mon, 30 Sep 2024 07:13:57 -0700 (PDT) Received: from naush-laptop.pitowers.org ([93.93.133.154]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-37cd56e65c3sm9142524f8f.60.2024.09.30.07.13.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Sep 2024 07:13:56 -0700 (PDT) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Cc: Naushir Patuck Subject: [PATCH v2 0/7] Raspberry Pi: Add controls::rpi::ScalerCrops Date: Mon, 30 Sep 2024 15:14:08 +0100 Message-Id: <20240930141415.8857-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.34.1 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, Apologies for the delay in preparing the second version of this series. Hopefully I've addressed all the feedback from the first revision, particularly: - The rpi::ScalerCrops control is not advertised for the VC4/BCM2835 platform. This will only be available on the VC5/pisp platform. - In the control documentation I've noted that this control will be a temporary measure until the libcamera API support per-stream controls. The PISP implementation (available only downstream for now) still needs to adapt to this revision, but I'll handle that once this is merged and our downstream tree is rebased. Thanks, Naush Naushir Patuck (7): controls: rpi: Add a vendor rpi::ScalerCrops control pipeline: rpi: Remove CameraData::scalerCrop_ pipeline: rpi: Pass crop rectangle as a parameter to platformSetIspCrop() pipeline: rpi: Introduce CameraData::CropParams pipeline: rpi: Track which ISP output is configured for a stream pipeline: rpi: Pass ISP output index into platformSetIspCrop() pipeline: rpi: Handler controls::rpi::ScalerCrops src/ipa/rpi/common/ipa_base.cpp | 14 +++ src/libcamera/control_ids_rpi.yaml | 21 +++++ .../pipeline/rpi/common/pipeline_base.cpp | 94 +++++++++++++------ .../pipeline/rpi/common/pipeline_base.h | 26 ++++- src/libcamera/pipeline/rpi/vc4/vc4.cpp | 17 +++- 5 files changed, 136 insertions(+), 36 deletions(-)