Message ID | 20241206142742.7931-5-david.plowman@raspberrypi.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Quoting David Plowman (2024-12-06 14:27:41) > A ClockRecovery object is added for derived classes to use, and > wallclock timetamps are copied into the request metadata for > applications. > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> > --- > src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 2 ++ > src/libcamera/pipeline/rpi/common/pipeline_base.h | 3 +++ > 2 files changed, 5 insertions(+) > > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp > index 6f278b29..34971973 100644 > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp > @@ -1509,6 +1509,8 @@ void CameraData::fillRequestMetadata(const ControlList &bufferControls, Request > { > request->metadata().set(controls::SensorTimestamp, > bufferControls.get(controls::SensorTimestamp).value_or(0)); > + request->metadata().set(controls::FrameWallClock, > + bufferControls.get(controls::FrameWallClock).value_or(0)); > > if (cropParams_.size()) { > std::vector<Rectangle> crops; > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h b/src/libcamera/pipeline/rpi/common/pipeline_base.h > index aae0c2f3..9aa591d6 100644 > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.h > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h > @@ -20,6 +20,7 @@ > #include "libcamera/internal/bayer_format.h" > #include "libcamera/internal/camera.h" > #include "libcamera/internal/camera_sensor.h" > +#include "libcamera/internal/clock_recovery.h" > #include "libcamera/internal/framebuffer.h" > #include "libcamera/internal/media_device.h" > #include "libcamera/internal/media_object.h" > @@ -237,6 +238,8 @@ protected: > virtual int platformRegister(std::unique_ptr<CameraData> &cameraData, > MediaDevice *unicam, MediaDevice *isp) = 0; > > + ClockRecovery wallClockRecoery_; s/wallClockRecoery_/wallClockRecovery_/ (If this object stays instantiated in the Pipeline Handler) > + > private: > CameraData *cameraData(Camera *camera) > { > -- > 2.39.5 >
diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp index 6f278b29..34971973 100644 --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp @@ -1509,6 +1509,8 @@ void CameraData::fillRequestMetadata(const ControlList &bufferControls, Request { request->metadata().set(controls::SensorTimestamp, bufferControls.get(controls::SensorTimestamp).value_or(0)); + request->metadata().set(controls::FrameWallClock, + bufferControls.get(controls::FrameWallClock).value_or(0)); if (cropParams_.size()) { std::vector<Rectangle> crops; diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h b/src/libcamera/pipeline/rpi/common/pipeline_base.h index aae0c2f3..9aa591d6 100644 --- a/src/libcamera/pipeline/rpi/common/pipeline_base.h +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h @@ -20,6 +20,7 @@ #include "libcamera/internal/bayer_format.h" #include "libcamera/internal/camera.h" #include "libcamera/internal/camera_sensor.h" +#include "libcamera/internal/clock_recovery.h" #include "libcamera/internal/framebuffer.h" #include "libcamera/internal/media_device.h" #include "libcamera/internal/media_object.h" @@ -237,6 +238,8 @@ protected: virtual int platformRegister(std::unique_ptr<CameraData> &cameraData, MediaDevice *unicam, MediaDevice *isp) = 0; + ClockRecovery wallClockRecoery_; + private: CameraData *cameraData(Camera *camera) {
A ClockRecovery object is added for derived classes to use, and wallclock timetamps are copied into the request metadata for applications. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> --- src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 2 ++ src/libcamera/pipeline/rpi/common/pipeline_base.h | 3 +++ 2 files changed, 5 insertions(+)