From patchwork Tue Aug 4 09:58:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naushir Patuck X-Patchwork-Id: 9165 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 60BFEBD86F for ; Tue, 4 Aug 2020 09:58:57 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E3FDB603C9; Tue, 4 Aug 2020 11:58:56 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="Csk1+Tty"; dkim-atps=neutral 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 16B6E6039D for ; Tue, 4 Aug 2020 11:58:56 +0200 (CEST) Received: by mail-wr1-x42b.google.com with SMTP id a5so26836293wrm.6 for ; Tue, 04 Aug 2020 02:58:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=DG/EvSFlJn6+vakpIWVJIrecEcXChEigahyu7FEmt1k=; b=Csk1+TtySII14anwi5ZI6Ij6G9KXtWyulG6d1zEhldJPWVtmtW1mjudW0h0v930H82 4r0uH5RD+CpiO4hqutnBaG7aUlR/2I7CaXOo5id2LacUhiq8+5ymU7dZINuyRf0kRYqt xcD8HXv9/kh6KQ5lxmNWdvEAmeBkM8uWUqdD3mD4JC9p1Muk0YhKkiBbnkNRDH0bsDTs JNO/TpipiD6Np2qrNsovN6IUQqsbV6OA8AmC/w65nUvgD6qUYYCLFLQn5Fn3TbDTOrv4 vemFLWkT0BU+Zio0c//FdprX9EW3rkFnARwCLM2D2opbsGsjKtkX2BYPtDqQ9gPJIhpC UsFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=DG/EvSFlJn6+vakpIWVJIrecEcXChEigahyu7FEmt1k=; b=PiyOkye4bXfNNFpdrOeYl1FhsRZ3LV2GNSszpkYaHhc92fXH6hwLy59S80mVafYU1c /wgSq5zvW+HM1PfuPIODuzYMS76jMdA+i42uJmysNySfRCSZCSXQX6ZcELT92vLGRHhn 7rnU90KF2Wkw9MoMV4jj2tQUZEspDrN7IATG2hBps8xZs/IkfHXsEFCkbznX0aikmArM 0zPe/Sl5M16j3jpFbu0feTnujBF/ldXL7AOQzeKx+RKsdJcnuA5Il0qS4gnGExjPF8F0 Uf1AqLgbKqfdQaJQ4V6m5OWFN4Iu+6kUGKtslFshJqDe6I27tPE5XDNnah17msxTUOVX 63TA== X-Gm-Message-State: AOAM533yaCzD5Zm2GOuqNOXUBfVFC8QwrwHqVdRvZ4wEsbqyEoYJiN6c 7DUNCYXkbJMdnNKG1T19b5RPJ1JizfeqPw== X-Google-Smtp-Source: ABdhPJxtAnSYS6Wm4upZr69HKehmoVpDqoUQSH3w4xQh6PqSqckNRrkzshH0hncrRrSzuIAb6CtJBQ== X-Received: by 2002:a05:6000:1211:: with SMTP id e17mr19120546wrx.263.1596535135493; Tue, 04 Aug 2020 02:58:55 -0700 (PDT) Received: from naushir-VirtualBox.patuck.local ([88.97.76.4]) by smtp.gmail.com with ESMTPSA id 32sm34047234wrh.18.2020.08.04.02.58.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Aug 2020 02:58:54 -0700 (PDT) From: Naushir Patuck To: libcamera-devel@lists.libcamera.org Date: Tue, 4 Aug 2020 10:58:38 +0100 Message-Id: <20200804095850.275499-1-naush@raspberrypi.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v6 00/12] Zero-copy RAW stream work 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, Here is the next version of the zero-copy function patchset for the Raspberry Pi platform. Patches 01-09/12 are identical to the previous patchset, and patches 10-12/12 add functionality to support any external buffer allocation to be used for stream captures. Regards, Naush Naushir Patuck (12): libcamera: pipeline: raspberrypi: Move RPiStream into a separate file libcamera: pipeline: ipa: raspberrypi: Rework drop frame signalling libcamera: pipeline: raspberrypi: Add some debug logging libcamera: pipeline: raspberrypi: Increase the number of RAW buffers libcamera: pipeline: raspberrypi: Remove const qualifier from RPiStream libcamera: pipeline: raspberrypi: Rework stream buffer logic for zero-copy libcamera: pipeline: raspberrypi: Fix bug in passing configuration to IPA libcamera: pipeline: raspberrypi: Add more robust stream buffer logic libcamera: pipeline: ipa: raspberrypi: Remove use of FrameBuffer cookie pipeline: raspberrypi: Use an unordered_map for the stream buffer list pipeline: raspberrypi: Use an unordered_set to store IPA buffer ids pipeline: ipa: raspberrypi: Handle any externally allocated FrameBuffer include/libcamera/ipa/raspberrypi.h | 13 +- src/ipa/raspberrypi/raspberrypi.cpp | 26 +- .../pipeline/raspberrypi/meson.build | 1 + .../pipeline/raspberrypi/raspberrypi.cpp | 587 ++++++++---------- .../pipeline/raspberrypi/rpi_stream.cpp | 244 ++++++++ .../pipeline/raspberrypi/rpi_stream.h | 140 +++++ 6 files changed, 662 insertions(+), 349 deletions(-) create mode 100644 src/libcamera/pipeline/raspberrypi/rpi_stream.cpp create mode 100644 src/libcamera/pipeline/raspberrypi/rpi_stream.h