[v4,0/7] Camera synchronisation
mbox series

Message ID 20250122145349.7220-1-david.plowman@raspberrypi.com
Headers show
Series
  • Camera synchronisation
Related show

Message

David Plowman Jan. 22, 2025, 2:53 p.m. UTC
Hi everyone

Here's an updated set of camera sync patches. The only changes are the
tags that Kieran and Naush added, plus a handful of very minor
cosmetic things.

I'm hoping we can make some progress towards getting at least some of
this merged (the first patch in particular looks to have plenty of
tags already!), plus further reviews where these are still required.

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: common: 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               |  61 +++-
 src/ipa/rpi/common/ipa_base.h                 |   4 +-
 src/ipa/rpi/controller/meson.build            |   1 +
 src/ipa/rpi/controller/rpi/sync.cpp           | 329 ++++++++++++++++++
 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           |  19 +-
 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, 1069 insertions(+), 28 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

Comments

Naushir Patuck Jan. 23, 2025, 11:43 a.m. UTC | #1
Hi Kieran,

Do you think we are ok to merge this series upstream?  I think all
needed tags are present.

We are going to make a camera package release very soon and will push
these changes downstream imminently, assuming the control APIs are not
going to change from what David posted in v4.

Thanks!
Naush

On Wed, 22 Jan 2025 at 14:53, David Plowman
<david.plowman@raspberrypi.com> wrote:
>
> Hi everyone
>
> Here's an updated set of camera sync patches. The only changes are the
> tags that Kieran and Naush added, plus a handful of very minor
> cosmetic things.
>
> I'm hoping we can make some progress towards getting at least some of
> this merged (the first patch in particular looks to have plenty of
> tags already!), plus further reviews where these are still required.
>
> 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: common: 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               |  61 +++-
>  src/ipa/rpi/common/ipa_base.h                 |   4 +-
>  src/ipa/rpi/controller/meson.build            |   1 +
>  src/ipa/rpi/controller/rpi/sync.cpp           | 329 ++++++++++++++++++
>  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           |  19 +-
>  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, 1069 insertions(+), 28 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
>