mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-23 08:35:07 +03:00
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>
This commit is contained in:
parent
58f1ad3c79
commit
70e53be538
2 changed files with 132 additions and 0 deletions
|
@ -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_; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue