libcamera: framebuffer: Make FrameBuffer::cancel() private
FrameBuffer::cancel() is not meant to be used by applications. Move it to the FrameBuffer::Private class. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm> [Kieran: Handle rebase] Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
cef3e15324
commit
d98af71eaa
7 changed files with 17 additions and 15 deletions
|
@ -71,8 +71,6 @@ public:
|
||||||
|
|
||||||
std::unique_ptr<Fence> releaseFence();
|
std::unique_ptr<Fence> releaseFence();
|
||||||
|
|
||||||
void cancel() { metadata_.status = FrameMetadata::FrameCancelled; }
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LIBCAMERA_DISABLE_COPY_AND_MOVE(FrameBuffer)
|
LIBCAMERA_DISABLE_COPY_AND_MOVE(FrameBuffer)
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,8 @@ public:
|
||||||
Fence *fence() const { return fence_.get(); }
|
Fence *fence() const { return fence_.get(); }
|
||||||
void setFence(std::unique_ptr<Fence> fence) { fence_ = std::move(fence); }
|
void setFence(std::unique_ptr<Fence> fence) { fence_ = std::move(fence); }
|
||||||
|
|
||||||
|
void cancel() { LIBCAMERA_O_PTR()->metadata_.status = FrameMetadata::FrameCancelled; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<Fence> fence_;
|
std::unique_ptr<Fence> fence_;
|
||||||
Request *request_;
|
Request *request_;
|
||||||
|
|
|
@ -186,6 +186,14 @@ FrameBuffer::Private::~Private()
|
||||||
* fence and handle it opportunely before using the buffer again.
|
* fence and handle it opportunely before using the buffer again.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \fn FrameBuffer::Private::cancel()
|
||||||
|
* \brief Marks the buffer as cancelled
|
||||||
|
*
|
||||||
|
* If a buffer is not used by a request, it shall be marked as cancelled to
|
||||||
|
* indicate that the metadata is invalid.
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \class FrameBuffer
|
* \class FrameBuffer
|
||||||
* \brief Frame buffer data and its associated dynamic metadata
|
* \brief Frame buffer data and its associated dynamic metadata
|
||||||
|
@ -407,12 +415,4 @@ std::unique_ptr<Fence> FrameBuffer::releaseFence()
|
||||||
return std::move(_d()->fence_);
|
return std::move(_d()->fence_);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \fn FrameBuffer::cancel()
|
|
||||||
* \brief Marks the buffer as cancelled
|
|
||||||
*
|
|
||||||
* If a buffer is not used by a request, it shall be marked as cancelled to
|
|
||||||
* indicate that the metadata is invalid.
|
|
||||||
*/
|
|
||||||
|
|
||||||
} /* namespace libcamera */
|
} /* namespace libcamera */
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "libcamera/internal/camera_sensor.h"
|
#include "libcamera/internal/camera_sensor.h"
|
||||||
#include "libcamera/internal/delayed_controls.h"
|
#include "libcamera/internal/delayed_controls.h"
|
||||||
#include "libcamera/internal/device_enumerator.h"
|
#include "libcamera/internal/device_enumerator.h"
|
||||||
|
#include "libcamera/internal/framebuffer.h"
|
||||||
#include "libcamera/internal/ipa_manager.h"
|
#include "libcamera/internal/ipa_manager.h"
|
||||||
#include "libcamera/internal/media_device.h"
|
#include "libcamera/internal/media_device.h"
|
||||||
#include "libcamera/internal/pipeline_handler.h"
|
#include "libcamera/internal/pipeline_handler.h"
|
||||||
|
@ -836,7 +837,7 @@ void IPU3CameraData::cancelPendingRequests()
|
||||||
|
|
||||||
for (auto it : request->buffers()) {
|
for (auto it : request->buffers()) {
|
||||||
FrameBuffer *buffer = it.second;
|
FrameBuffer *buffer = it.second;
|
||||||
buffer->cancel();
|
buffer->_d()->cancel();
|
||||||
pipe()->completeBuffer(request, buffer);
|
pipe()->completeBuffer(request, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1356,7 +1357,7 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)
|
||||||
if (buffer->metadata().status == FrameMetadata::FrameCancelled) {
|
if (buffer->metadata().status == FrameMetadata::FrameCancelled) {
|
||||||
for (auto it : request->buffers()) {
|
for (auto it : request->buffers()) {
|
||||||
FrameBuffer *b = it.second;
|
FrameBuffer *b = it.second;
|
||||||
b->cancel();
|
b->_d()->cancel();
|
||||||
pipe()->completeBuffer(request, b);
|
pipe()->completeBuffer(request, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1907,7 +1907,7 @@ void RPiCameraData::clearIncompleteRequests()
|
||||||
* request? If not, do so now.
|
* request? If not, do so now.
|
||||||
*/
|
*/
|
||||||
if (buffer->request()) {
|
if (buffer->request()) {
|
||||||
buffer->cancel();
|
buffer->_d()->cancel();
|
||||||
pipe()->completeBuffer(request, buffer);
|
pipe()->completeBuffer(request, buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include "libcamera/internal/camera.h"
|
#include "libcamera/internal/camera.h"
|
||||||
#include "libcamera/internal/camera_sensor.h"
|
#include "libcamera/internal/camera_sensor.h"
|
||||||
#include "libcamera/internal/device_enumerator.h"
|
#include "libcamera/internal/device_enumerator.h"
|
||||||
|
#include "libcamera/internal/framebuffer.h"
|
||||||
#include "libcamera/internal/ipa_manager.h"
|
#include "libcamera/internal/ipa_manager.h"
|
||||||
#include "libcamera/internal/media_device.h"
|
#include "libcamera/internal/media_device.h"
|
||||||
#include "libcamera/internal/pipeline_handler.h"
|
#include "libcamera/internal/pipeline_handler.h"
|
||||||
|
@ -574,7 +575,7 @@ void VimcCameraData::bufferReady(FrameBuffer *buffer)
|
||||||
if (buffer->metadata().status == FrameMetadata::FrameCancelled) {
|
if (buffer->metadata().status == FrameMetadata::FrameCancelled) {
|
||||||
for (auto it : request->buffers()) {
|
for (auto it : request->buffers()) {
|
||||||
FrameBuffer *b = it.second;
|
FrameBuffer *b = it.second;
|
||||||
b->cancel();
|
b->_d()->cancel();
|
||||||
pipe->completeBuffer(request, b);
|
pipe->completeBuffer(request, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ void Request::Private::doCancelRequest()
|
||||||
Request *request = _o<Request>();
|
Request *request = _o<Request>();
|
||||||
|
|
||||||
for (FrameBuffer *buffer : pending_) {
|
for (FrameBuffer *buffer : pending_) {
|
||||||
buffer->cancel();
|
buffer->_d()->cancel();
|
||||||
camera_->bufferCompleted.emit(request, buffer);
|
camera_->bufferCompleted.emit(request, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue