From 5967363c0b99a59f3526c51917572b807324e389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Date: Thu, 21 Nov 2019 20:12:38 +0100 Subject: libcamera: buffer: Move captured metadata to FrameMetadata MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the metadata retrieved when dequeuing a V4L2 buffer into a FrameMetadata object. This is done as a step to migrate to the FrameBuffer interface as the functions added to Buffer around FrameMetadata match the ones in FrameBuffer. Signed-off-by: Niklas Söderlund Reviewed-by: Laurent Pinchart --- src/v4l2/v4l2_camera.cpp | 8 +++++--- src/v4l2/v4l2_camera.h | 4 ++-- src/v4l2/v4l2_camera_proxy.cpp | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/v4l2') diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp index b6e0bb76..e4a03c41 100644 --- a/src/v4l2/v4l2_camera.cpp +++ b/src/v4l2/v4l2_camera.cpp @@ -17,9 +17,11 @@ using namespace libcamera; LOG_DECLARE_CATEGORY(V4L2Compat); V4L2FrameMetadata::V4L2FrameMetadata(Buffer *buffer) - : index_(buffer->index()), bytesused_(buffer->bytesused()), - timestamp_(buffer->timestamp()), sequence_(buffer->sequence()), - status_(buffer->status()) + : index_(buffer->index()), + bytesused_(buffer->metadata().planes[0].bytesused), + timestamp_(buffer->metadata().timestamp), + sequence_(buffer->metadata().sequence), + status_(buffer->metadata().status) { } diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h index f760316c..06eab0e1 100644 --- a/src/v4l2/v4l2_camera.h +++ b/src/v4l2/v4l2_camera.h @@ -31,7 +31,7 @@ public: uint64_t timestamp() const { return timestamp_; } unsigned int sequence() const { return sequence_; } - Buffer::Status status() const { return status_; } + FrameMetadata::Status status() const { return status_; } private: int index_; @@ -40,7 +40,7 @@ private: uint64_t timestamp_; unsigned int sequence_; - Buffer::Status status_; + FrameMetadata::Status status_; }; class V4L2Camera : public Object diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp index a84405a3..5158eac4 100644 --- a/src/v4l2/v4l2_camera_proxy.cpp +++ b/src/v4l2/v4l2_camera_proxy.cpp @@ -192,7 +192,7 @@ void V4L2CameraProxy::updateBuffers() struct v4l2_buffer &buf = buffers_[fmd.index()]; switch (fmd.status()) { - case Buffer::Status::BufferSuccess: + case FrameMetadata::FrameSuccess: buf.bytesused = fmd.bytesused(); buf.field = V4L2_FIELD_NONE; buf.timestamp.tv_sec = fmd.timestamp() / 1000000000; @@ -201,7 +201,7 @@ void V4L2CameraProxy::updateBuffers() buf.flags |= V4L2_BUF_FLAG_DONE; break; - case Buffer::Status::BufferError: + case FrameMetadata::FrameError: buf.flags |= V4L2_BUF_FLAG_ERROR; break; default: -- cgit v1.2.1