diff options
author | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2019-03-25 18:05:38 +0100 |
---|---|---|
committer | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2019-04-05 22:07:24 +0200 |
commit | 70e53be538984739d500ef641c262e79affdeac4 (patch) | |
tree | 878ffdb67f847d40df9973d8380aaf1ceff0b687 /include | |
parent | 58f1ad3c79e56eca7d64449ee55d823efe86e213 (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.h | 40 |
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_; } |