summaryrefslogtreecommitdiff
path: root/src/libcamera/camera.cpp
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-02-26 02:46:33 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-02-28 18:41:52 +0100
commit132ce9c1cf6951d8cba8ff6ff5fbccadead385c1 (patch)
treed01cf52e2e68f468456907b335e24f8a6c85273d /src/libcamera/camera.cpp
parentdc01a5bc43787ac8bf8f16683383f60265326f27 (diff)
libcamera: store stream pointers in sets instead of a vectors
The arrays that store Stream pointers shall always contain unique values. Storing them in vectors opens up for the same stream pointer appearing twice. Remove this possibility by storing them in a set which guarantees each element is unique. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/libcamera/camera.cpp')
-rw-r--r--src/libcamera/camera.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index 3789732b..84b97b5c 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -66,7 +66,7 @@ LOG_DECLARE_CATEGORY(Camera)
*/
std::shared_ptr<Camera> Camera::create(PipelineHandler *pipe,
const std::string &name,
- const std::vector<Stream *> &streams)
+ const std::set<Stream *> &streams)
{
struct Allocator : std::allocator<Camera> {
void construct(void *p, PipelineHandler *pipe,
@@ -188,7 +188,7 @@ void Camera::release()
*
* \return An array of all the camera's streams.
*/
-const std::vector<Stream *> &Camera::streams() const
+const std::set<Stream *> &Camera::streams() const
{
return streams_;
}
@@ -210,7 +210,7 @@ const std::vector<Stream *> &Camera::streams() const
* empty list on error.
*/
std::map<Stream *, StreamConfiguration>
-Camera::streamConfiguration(std::vector<Stream *> &streams)
+Camera::streamConfiguration(std::set<Stream *> &streams)
{
if (disconnected_ || !streams.size())
return std::map<Stream *, StreamConfiguration>{};
@@ -264,7 +264,7 @@ int Camera::configureStreams(std::map<Stream *, StreamConfiguration> &config)
const StreamConfiguration &cfg = iter.second;
stream->configuration_ = cfg;
- activeStreams_.push_back(stream);
+ activeStreams_.insert(stream);
/*
* Allocate buffer objects in the pool.