diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h
index 97c8025d9e77..dda5075f2879 100644
--- a/include/libcamera/buffer.h
+++ b/include/libcamera/buffer.h
@@ -42,6 +42,7 @@ public:
 	void free();
 
 	unsigned int count() const { return buffers_.size(); };
+	const std::vector<Buffer *> &buffers() { return buffers_; };
 
 private:
 	virtual int allocateMemory() = 0;
diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
index 5abc2a68e978..08deaa97e4af 100644
--- a/src/libcamera/buffer.cpp
+++ b/src/libcamera/buffer.cpp
@@ -150,4 +150,10 @@ void BufferPool::free()
  * \brief Get the number of Buffers contained within this pool
  */
 
+/**
+ * \fn BufferPool::buffers()
+ * \brief Retrieve all the buffers in the pool
+ * \return A vector containing all the buffers in the pool.
+ */
+
 } /* namespace libcamera */
