[libcamera-devel] [PATCH v3 5/8] libcamera: request: Add streams() method
Jacopo Mondi
jacopo at jmondi.org
Wed Apr 3 17:07:32 CEST 2019
Add a method to retrieve the list of streams contained in a requests.
This is useful for pipeline handler willing to cycle on all the streams
a request contains at queueRequest() time.
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
include/libcamera/request.h | 3 +++
src/libcamera/request.cpp | 15 +++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/include/libcamera/request.h b/include/libcamera/request.h
index 0dbd425115e8..5ac4d20d1d9f 100644
--- a/include/libcamera/request.h
+++ b/include/libcamera/request.h
@@ -7,6 +7,7 @@
#ifndef __LIBCAMERA_REQUEST_H__
#define __LIBCAMERA_REQUEST_H__
+#include <list>
#include <map>
#include <unordered_set>
@@ -35,6 +36,8 @@ public:
int setBuffers(const std::map<Stream *, Buffer *> &streamMap);
Buffer *findBuffer(Stream *stream) const;
+ const std::list<Stream *> streams() const;
+
Status status() const { return status_; }
private:
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index e0e77e972411..3a7841fb2bb3 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -93,6 +93,21 @@ Buffer *Request::findBuffer(Stream *stream) const
return it->second;
}
+/**
+ * \brief Retrieve the set of streams contained in the request
+ *
+ * \return The set of streams contained in the request
+ */
+const std::list<Stream *> Request::streams() const
+{
+ std::list<Stream *> streams = {};
+
+ for (auto const &it : bufferMap_)
+ streams.push_front(it.first);
+
+ return streams;
+}
+
/**
* \fn Request::status()
* \brief Retrieve the request completion status
--
2.21.0
More information about the libcamera-devel
mailing list