[PATCH v3 0/7] Camera synchronisation

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Jan 9 17:12:04 CET 2025


Quoting David Plowman (2025-01-09 14:32:04)
> Hi everyone
> 
> Here's what I think is version 3 (?) of this patch set. The main
> change here is just that the Sync controls have been made Raspberry Pi
> specific. Note also that the "FrameWallClock control" patch is still
> here (doesn't appear to have been merged at the time of writing).

Thanks I was just about to merge
https://patchwork.libcamera.org/patch/22399/ but realised there was
extraneous changes that needed to be removed. Now I've seen your update
here has the correct version that doesn't try to remove the SPDX header.

--
Kieran


> 
> Those interested in how a timing offset could be supplied should look
> at the 4th patch ("Add wallclock timestamp support"). A proposed
> "SyncOffset" control value would get remembered in applyControls(),
> and then in processStats() it could be used in place of the offset
> value from the SyncStatus (that pops out of the sync algorithm). Hope
> that's clear!
> 
> Thanks
> David
> 
> David Plowman (6):
>   controls: Add FrameWallClock control
>   libcamera: Add ClockRecovery class to generate wallclock timestamps
>   controls: Add camera synchronisation controls for Raspberry Pi
>   pipeline: rpi:: Add wallclock timestamp support
>   ipa: rpi: sync: Add an implementation of the camera sync algorithm
>   ipa: rpi: vc4: Update all tuning files for sync algorithm
> 
> Naushir Patuck (1):
>   ipa: rpi: Add base classes and plumbing for sync algorithm
> 
>  include/libcamera/internal/clock_recovery.h   |  68 ++++
>  include/libcamera/internal/meson.build        |   1 +
>  src/ipa/rpi/common/ipa_base.cpp               |  78 ++++-
>  src/ipa/rpi/common/ipa_base.h                 |   4 +-
>  src/ipa/rpi/controller/meson.build            |   1 +
>  src/ipa/rpi/controller/rpi/sync.cpp           | 330 ++++++++++++++++++
>  src/ipa/rpi/controller/rpi/sync.h             |  68 ++++
>  src/ipa/rpi/controller/sync_algorithm.h       |  31 ++
>  src/ipa/rpi/controller/sync_status.h          |  27 ++
>  src/ipa/rpi/vc4/data/imx219.json              |   7 +-
>  src/ipa/rpi/vc4/data/imx219_noir.json         |   7 +-
>  src/ipa/rpi/vc4/data/imx283.json              |   7 +-
>  src/ipa/rpi/vc4/data/imx290.json              |   7 +-
>  src/ipa/rpi/vc4/data/imx296.json              |   7 +-
>  src/ipa/rpi/vc4/data/imx296_mono.json         |   7 +-
>  src/ipa/rpi/vc4/data/imx378.json              |   7 +-
>  src/ipa/rpi/vc4/data/imx477.json              |   7 +-
>  src/ipa/rpi/vc4/data/imx477_noir.json         |   7 +-
>  src/ipa/rpi/vc4/data/imx477_scientific.json   |   7 +-
>  src/ipa/rpi/vc4/data/imx519.json              |   7 +-
>  src/ipa/rpi/vc4/data/imx708.json              |   7 +-
>  src/ipa/rpi/vc4/data/imx708_noir.json         |   7 +-
>  src/ipa/rpi/vc4/data/imx708_wide.json         |   7 +-
>  src/ipa/rpi/vc4/data/imx708_wide_noir.json    |   7 +-
>  src/ipa/rpi/vc4/data/ov5647.json              |   7 +-
>  src/ipa/rpi/vc4/data/ov5647_noir.json         |   7 +-
>  src/ipa/rpi/vc4/data/se327m12.json            |   7 +-
>  src/libcamera/clock_recovery.cpp              | 230 ++++++++++++
>  src/libcamera/control_ids_core.yaml           |  15 +
>  src/libcamera/control_ids_rpi.yaml            | 113 ++++++
>  src/libcamera/meson.build                     |   1 +
>  .../pipeline/rpi/common/pipeline_base.cpp     |   5 +
>  .../pipeline/rpi/common/pipeline_base.h       |   3 +
>  src/libcamera/pipeline/rpi/vc4/vc4.cpp        |  10 +-
>  34 files changed, 1086 insertions(+), 25 deletions(-)
>  create mode 100644 include/libcamera/internal/clock_recovery.h
>  create mode 100644 src/ipa/rpi/controller/rpi/sync.cpp
>  create mode 100644 src/ipa/rpi/controller/rpi/sync.h
>  create mode 100644 src/ipa/rpi/controller/sync_algorithm.h
>  create mode 100644 src/ipa/rpi/controller/sync_status.h
>  create mode 100644 src/libcamera/clock_recovery.cpp
> 
> -- 
> 2.39.5
>


More information about the libcamera-devel mailing list