summaryrefslogtreecommitdiff
path: root/src/cam/buffer_writer.h
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-01-10 18:41:30 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-01-12 16:10:38 +0100
commitc89cfa534ba1d35e35de7d33c57a6c2906a5b11f (patch)
tree750a2919d7f91405407474bd3e9aaebff1867403 /src/cam/buffer_writer.h
parent164fbf17ff4f9798b4d43606d7cd70578ed46747 (diff)
cam: Cache buffer memory mapping
With the buffer allocator in use it's possible to cache the dmabuf memory mappings when starting the camera instead of mapping and unmapping them each time. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/cam/buffer_writer.h')
-rw-r--r--src/cam/buffer_writer.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cam/buffer_writer.h b/src/cam/buffer_writer.h
index 5917a7df..8c9b2436 100644
--- a/src/cam/buffer_writer.h
+++ b/src/cam/buffer_writer.h
@@ -7,6 +7,7 @@
#ifndef __LIBCAMERA_BUFFER_WRITER_H__
#define __LIBCAMERA_BUFFER_WRITER_H__
+#include <map>
#include <string>
#include <libcamera/buffer.h>
@@ -15,12 +16,16 @@ class BufferWriter
{
public:
BufferWriter(const std::string &pattern = "frame-#.bin");
+ ~BufferWriter();
+
+ void mapBuffer(libcamera::FrameBuffer *buffer);
int write(libcamera::FrameBuffer *buffer,
const std::string &streamName);
private:
std::string pattern_;
+ std::map<int, std::pair<void *, unsigned int>> mappedBuffers_;
};
#endif /* __LIBCAMERA_BUFFER_WRITER_H__ */