summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-03-25 18:05:38 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-04-05 22:07:24 +0200
commit70e53be538984739d500ef641c262e79affdeac4 (patch)
tree878ffdb67f847d40df9973d8380aaf1ceff0b687 /include
parent58f1ad3c79e56eca7d64449ee55d823efe86e213 (diff)
libcamera: stream: Add basic stream usages
In preparation of reworking how a default configuration is retrieved from a camera add stream usages. The usages will be used by applications to describe how they intend to use a camera and replace the Stream IDs when retrieving default configuration from the camera using streamConfiguration(). Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/stream.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h
index 970c4796..d0f7b0e1 100644
--- a/include/libcamera/stream.h
+++ b/include/libcamera/stream.h
@@ -8,6 +8,7 @@
#define __LIBCAMERA_STREAM_H__
#include <libcamera/buffer.h>
+#include <libcamera/geometry.h>
namespace libcamera {
@@ -21,9 +22,48 @@ struct StreamConfiguration {
unsigned int bufferCount;
};
+class StreamUsage
+{
+public:
+ enum Role {
+ StillCapture,
+ VideoRecording,
+ Viewfinder,
+ };
+
+ Role role() const { return role_; }
+ const Size &size() const { return size_; }
+
+protected:
+ explicit StreamUsage(Role role);
+ StreamUsage(Role role, int width, int height);
+
+private:
+ Role role_;
+ Size size_;
+};
+
class Stream final
{
public:
+ class StillCapture : public StreamUsage
+ {
+ public:
+ StillCapture();
+ };
+
+ class VideoRecording : public StreamUsage
+ {
+ public:
+ VideoRecording();
+ };
+
+ class Viewfinder : public StreamUsage
+ {
+ public:
+ Viewfinder(int width, int height);
+ };
+
Stream();
BufferPool &bufferPool() { return bufferPool_; }
const StreamConfiguration &configuration() const { return configuration_; }