diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2019-06-28 09:13:34 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-07-14 16:01:02 +0300 |
commit | 99e1e786b475f3d6f4f8d9f5cd21db6c524ba60f (patch) | |
tree | 00992fa3519e69c1e01d02b1746be0762b5de4af /include | |
parent | be3e3ebc92d8ffba8a03483f05e7956e33726c4e (diff) |
libcamera: stream: Add Stream memory type
Define the memory type a Stream uses and allow application to set it
through the associated StreamConfiguration.
A Stream can use either internal or external memory allocation methods,
depending on where the data produced by the stream is actually saved.
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/libcamera/stream.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h index bc14fb60..08eb8cc7 100644 --- a/include/libcamera/stream.h +++ b/include/libcamera/stream.h @@ -35,6 +35,11 @@ private: std::map<unsigned int, std::vector<SizeRange>> formats_; }; +enum MemoryType { + InternalMemory, + ExternalMemory, +}; + struct StreamConfiguration { StreamConfiguration(); StreamConfiguration(const StreamFormats &formats); @@ -42,6 +47,7 @@ struct StreamConfiguration { unsigned int pixelFormat; Size size; + MemoryType memoryType; unsigned int bufferCount; Stream *stream() const { return stream_; } @@ -73,15 +79,17 @@ public: BufferPool &bufferPool() { return bufferPool_; } std::vector<BufferMemory> &buffers() { return bufferPool_.buffers(); } const StreamConfiguration &configuration() const { return configuration_; } + MemoryType memoryType() const { return memoryType_; } protected: friend class Camera; - void createBuffers(unsigned int count); + void createBuffers(MemoryType memory, unsigned int count); void destroyBuffers(); BufferPool bufferPool_; StreamConfiguration configuration_; + MemoryType memoryType_; }; } /* namespace libcamera */ |