summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline/raspberrypi/rpi_stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/pipeline/raspberrypi/rpi_stream.h')
-rw-r--r--src/libcamera/pipeline/raspberrypi/rpi_stream.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/libcamera/pipeline/raspberrypi/rpi_stream.h b/src/libcamera/pipeline/raspberrypi/rpi_stream.h
index 73954ec7..f42e25b9 100644
--- a/src/libcamera/pipeline/raspberrypi/rpi_stream.h
+++ b/src/libcamera/pipeline/raspberrypi/rpi_stream.h
@@ -57,6 +57,7 @@ public:
private:
void clearBuffers();
+ int queueToDevice(FrameBuffer *buffer);
/*
* Indicates that this stream is active externally, i.e. the buffers
@@ -73,7 +74,7 @@ private:
/* The actual device stream. */
std::unique_ptr<V4L2VideoDevice> dev_;
- /* All framebuffers associated with this device stream. */
+ /* All frame buffers associated with this device stream. */
std::vector<FrameBuffer *> bufferList_;
/*
@@ -84,6 +85,16 @@ private:
std::queue<FrameBuffer *> availableBuffers_;
/*
+ * List of frame buffers that are to be queued into the device from a Request.
+ * A nullptr indicates any internal buffer can be used (from availableBuffers_),
+ * whereas a valid pointer indicates an external buffer to be queued.
+ *
+ * Ordering buffers to be queued is important here as it must match the
+ * requests coming from the application.
+ */
+ std::queue<FrameBuffer *> requestBuffers_;
+
+ /*
* This is a list of buffers exported internally. Need to keep this around
* as the stream needs to maintain ownership of these buffers.
*/