| Message ID | 20250109143211.11939-1-david.plowman@raspberrypi.com |
|---|---|
| Headers | show |
| Series |
|
| Related | show |
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 >
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). 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