Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/22681/?format=api
{ "id": 22681, "url": "https://patchwork.libcamera.org/api/1.1/covers/22681/?format=api", "web_url": "https://patchwork.libcamera.org/cover/22681/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20250122145349.7220-1-david.plowman@raspberrypi.com>", "date": "2025-01-22T14:53:42", "name": "[v4,0/7] Camera synchronisation", "submitter": { "id": 42, "url": "https://patchwork.libcamera.org/api/1.1/people/42/?format=api", "name": "David Plowman", "email": "david.plowman@raspberrypi.com" }, "mbox": "https://patchwork.libcamera.org/cover/22681/mbox/", "series": [ { "id": 4964, "url": "https://patchwork.libcamera.org/api/1.1/series/4964/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4964", "date": "2025-01-22T14:53:47", "name": "Camera synchronisation", "version": 4, "mbox": "https://patchwork.libcamera.org/series/4964/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/22681/comments/", "headers": { "Return-Path": "<kieran.bingham@ideasonboard.com>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": [ "parsemail@patchwork.libcamera.org", "kbingham@ideasonboard.com" ], "Received": [ "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 437DDBD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 30 Jan 2025 11:52:01 +0000 (UTC)", "from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net\n\t[86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C9E78886\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 30 Jan 2025 12:50:52 +0100 (CET)", "from perceval.ideasonboard.com\n\tby perceval.ideasonboard.com with LMTP id INlLAUgGkWeNRjQA4E0KoQ\n\t(envelope-from <libcamera-devel-bounces@lists.libcamera.org>)\n\tfor <kbingham@ideasonboard.com>; Wed, 22 Jan 2025 15:52:56 +0100", "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\tby perceval.ideasonboard.com (Postfix) with ESMTPS\n\tid B0172C16;\tWed, 22 Jan 2025 15:52:55 +0100 (CET)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ED5CB6855C;\n\tWed, 22 Jan 2025 15:53:55 +0100 (CET)", "from mail-wm1-x334.google.com (mail-wm1-x334.google.com\n\t[IPv6:2a00:1450:4864:20::334])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F057168549\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Jan 2025 15:53:53 +0100 (CET)", "by mail-wm1-x334.google.com with SMTP id\n\t5b1f17b1804b1-4361f664af5so80663165e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Jan 2025 06:53:53 -0800 (PST)", "from raspberrypi.pitowers.org\n\t([2a00:1098:3142:1f:ffc9:aff6:7f7f:893b])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-438b66dc08bsm11551395e9.37.2025.01.22.06.53.52\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 22 Jan 2025 06:53:52 -0800 (PST)" ], "Authentication-Results": [ "perceval.ideasonboard.com;\n\tdkim=permerror header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.a=rsa-sha1 header.s=google header.b=dCLzpLeT; \n\tdkim-atps=neutral", "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"dCLzpLeT\";\tdkim-atps=neutral" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1737557633; x=1738162433;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=hWe4PhjzGwoeE0P0sTVeWAOhFvt+ZK2Kd0fkNpVPMLA=;\n\tb=dCLzpLeTvgraC7CV4r0SSLkCOUXqWcrHpcp2mZqdGshKEFu/+mmGH4sXoPVmSww6cW\n\tnb5FbNEBsUow9GkPan31SbtjScnshsBjG9LRoF1mp7NLFg1zMO6th5qVg/rx3YeiG9iF\n\t1t4hKHKSXBjaFeGnooIX0tJI8WbGoPCrN2TGLjh6lAe3w+ZvTC8eOOq19vrkcpcehU/z\n\tsG/O8k9XUGSirpDalBC8ci+0+uhEL7e006QalH2bEe6omc9Gvd8AqsrT2G9quy1GfILu\n\t41sUix9Mw5+aZuWL+Qn9qJchspTZCG6ZtOxCdic+tDfqJHgKod+uwdDOY90RhNB5/+hJ\n\ta9mg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1737557633; x=1738162433;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=hWe4PhjzGwoeE0P0sTVeWAOhFvt+ZK2Kd0fkNpVPMLA=;\n\tb=gvUArrBpmhqqpnYv4ETIATozWjIJ4bTc4yZ5fuB0A2uxoa9c1A72Ej3uvwCJ/SdA6j\n\t2665jJJoSC1WwdWtmRTWJ0yjEsWeNuAiJ1pgMB9VunPoPHIs8TiupbHV+PyMFs1b0JFw\n\t6Y+oK//Ew95ky5QYKh5hY1EUj0QA7XLa7Ij+TnRYiQtdsHROU3Lu+RYrCVlw4AGKR1Ab\n\tontceH051uSpkSt20dlYvV+sPprfmhcp1eY+avdrl8EnfHg7k9VDa5b9Ka61vYlT7QOq\n\t6UuCos9wBWgO1E1hAumbPNAYnYkoaExvcvItcBfPAn8MHcm5rLG4eEXuFgZ88FUKt4XO\n\tDLdQ==", "X-Gm-Message-State": "AOJu0Ywhj7lzamWWHHzDA+E+y9FJ0gUuHALhLGSdfPCJSmdmFN07TNXL\n\tKNNXuxvMbfPay9HhpZXw6gK9aZktuT+Csibwr12I2kXz6HQRBUhqi2ug3sJs8JOrRcY6wC4FYeh\n\tZ", "X-Gm-Gg": "ASbGnct/jTX5f5aqUXEUQsGXiwzzYnPxxwnCrwlDhZaGfaR90x5DKzf36ENvsf35vUf\n\ts/zINB0tj5yBBfzvHoFXax6IofAsG7lkGx7QtHdjd5yjy2SA1OOabO5t/5hYuJYceWnkdzGFDVy\n\tW61EyMiV4PHyxSTL/onmNLDAIaEroB8xyaIn/r4oBi/V/3zwGHthBkDQedQzcDHCI08Ywsqs22q\n\tvKKWsOI5QOPpkSzbakVXFfhCZygLefjuZxZzRHzZAyXW6YegBUhcYEDcyLkysvvGCdq0G9heQuT\n\tGupm7OUVEsOC3INRQta79QaPNw==", "X-Google-Smtp-Source": "=?utf-8?q?AGHT+IHvFqz2jgasatcP+ASgGZzVrkFQvgpHag9Yd?=\n\t=?utf-8?q?bO95U7EgTMiQQAVO+YThIz+8eWTkzEGVBkZ3g=3D=3D?=", "X-Received": "by 2002:a05:600c:4fc1:b0:434:f218:e1a8 with SMTP id\n\t5b1f17b1804b1-4389141c21cmr172609885e9.19.1737557632994; \n\tWed, 22 Jan 2025 06:53:52 -0800 (PST)", "From": "David Plowman <david.plowman@raspberrypi.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "David Plowman <david.plowman@raspberrypi.com>", "Subject": "[PATCH v4 0/7] Camera synchronisation", "Date": "Wed, 22 Jan 2025 14:53:42 +0000", "Message-Id": "<20250122145349.7220-1-david.plowman@raspberrypi.com>", "X-Mailer": "git-send-email 2.39.5", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>", "X-TUID": "9uRbpaMHfK5h", "Resent-From": "Kieran Bingham <kieran.bingham@ideasonboard.com>", "Resent-To": "parsemail@patchwork.libcamera.org" }, "content": "Hi everyone\n\nHere's an updated set of camera sync patches. The only changes are the\ntags that Kieran and Naush added, plus a handful of very minor\ncosmetic things.\n\nI'm hoping we can make some progress towards getting at least some of\nthis merged (the first patch in particular looks to have plenty of\ntags already!), plus further reviews where these are still required.\n\nThanks!\nDavid\n\nDavid Plowman (6):\n controls: Add FrameWallClock control\n libcamera: Add ClockRecovery class to generate wallclock timestamps\n controls: Add camera synchronisation controls for Raspberry Pi\n pipeline: rpi: common: Add wallclock timestamp support\n ipa: rpi: sync: Add an implementation of the camera sync algorithm\n ipa: rpi: vc4: Update all tuning files for sync algorithm\n\nNaushir Patuck (1):\n ipa: rpi: Add base classes and plumbing for sync algorithm\n\n include/libcamera/internal/clock_recovery.h | 68 ++++\n include/libcamera/internal/meson.build | 1 +\n src/ipa/rpi/common/ipa_base.cpp | 61 +++-\n src/ipa/rpi/common/ipa_base.h | 4 +-\n src/ipa/rpi/controller/meson.build | 1 +\n src/ipa/rpi/controller/rpi/sync.cpp | 329 ++++++++++++++++++\n src/ipa/rpi/controller/rpi/sync.h | 68 ++++\n src/ipa/rpi/controller/sync_algorithm.h | 31 ++\n src/ipa/rpi/controller/sync_status.h | 27 ++\n src/ipa/rpi/vc4/data/imx219.json | 7 +-\n src/ipa/rpi/vc4/data/imx219_noir.json | 7 +-\n src/ipa/rpi/vc4/data/imx283.json | 7 +-\n src/ipa/rpi/vc4/data/imx290.json | 7 +-\n src/ipa/rpi/vc4/data/imx296.json | 7 +-\n src/ipa/rpi/vc4/data/imx296_mono.json | 7 +-\n src/ipa/rpi/vc4/data/imx378.json | 7 +-\n src/ipa/rpi/vc4/data/imx477.json | 7 +-\n src/ipa/rpi/vc4/data/imx477_noir.json | 7 +-\n src/ipa/rpi/vc4/data/imx477_scientific.json | 7 +-\n src/ipa/rpi/vc4/data/imx519.json | 7 +-\n src/ipa/rpi/vc4/data/imx708.json | 7 +-\n src/ipa/rpi/vc4/data/imx708_noir.json | 7 +-\n src/ipa/rpi/vc4/data/imx708_wide.json | 7 +-\n src/ipa/rpi/vc4/data/imx708_wide_noir.json | 7 +-\n src/ipa/rpi/vc4/data/ov5647.json | 7 +-\n src/ipa/rpi/vc4/data/ov5647_noir.json | 7 +-\n src/ipa/rpi/vc4/data/se327m12.json | 7 +-\n src/libcamera/clock_recovery.cpp | 230 ++++++++++++\n src/libcamera/control_ids_core.yaml | 19 +-\n src/libcamera/control_ids_rpi.yaml | 113 ++++++\n src/libcamera/meson.build | 1 +\n .../pipeline/rpi/common/pipeline_base.cpp | 5 +\n .../pipeline/rpi/common/pipeline_base.h | 3 +\n src/libcamera/pipeline/rpi/vc4/vc4.cpp | 10 +-\n 34 files changed, 1069 insertions(+), 28 deletions(-)\n create mode 100644 include/libcamera/internal/clock_recovery.h\n create mode 100644 src/ipa/rpi/controller/rpi/sync.cpp\n create mode 100644 src/ipa/rpi/controller/rpi/sync.h\n create mode 100644 src/ipa/rpi/controller/sync_algorithm.h\n create mode 100644 src/ipa/rpi/controller/sync_status.h\n create mode 100644 src/libcamera/clock_recovery.cpp" }