[libcamera-devel,v6,2/6] libcamera: stream: add initial StreamConfiguration structure

Message ID 20190131181853.23739-3-niklas.soderlund@ragnatech.se
State Accepted
Headers show
Series
  • libcamera: add basic support for streams and format configuration MIME-Version: 1.0
Related show

Commit Message

Niklas Söderlund Jan. 31, 2019, 6:18 p.m. UTC
Add an initial StreamConfiguration implementation to hold configuration
data for a single stream of a Camera. In its current form not many
configuration parameters are supported but it's expected the number of
options will grow over time.

At this stage the pixel format is represented as an unsigned int to
allow for easy mapping to the V4L2 API. This might be subject to change
in the future as we finalize how libcamera shall represent pixel
formats.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 include/libcamera/stream.h |  6 ++++++
 src/libcamera/stream.cpp   | 26 ++++++++++++++++++++++++++
 2 files changed, 32 insertions(+)

Patch

diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h
index 4f47d85ed6382b36..4b24dd841dd64b64 100644
--- a/include/libcamera/stream.h
+++ b/include/libcamera/stream.h
@@ -13,6 +13,12 @@  class Stream final
 {
 };
 
+struct StreamConfiguration {
+	unsigned int width;
+	unsigned int height;
+	unsigned int pixelFormat;
+};
+
 } /* namespace libcamera */
 
 #endif /* __LIBCAMERA_STREAM_H__ */
diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
index 9417c5886185d35c..b0b4efe39c81e747 100644
--- a/src/libcamera/stream.cpp
+++ b/src/libcamera/stream.cpp
@@ -47,4 +47,30 @@  namespace libcamera {
  * optimal stream for the task.
  */
 
+/**
+ * \struct StreamConfiguration
+ * \brief Configuration parameters for a stream
+ *
+ * The StreamConfiguration structure models all information which can be
+ * configured for a single video stream.
+ */
+
+/**
+ * \var StreamConfiguration::width
+ * \brief Stream width in pixels
+ */
+
+/**
+ * \var StreamConfiguration::height
+ * \brief Stream height in pixels
+ */
+
+/**
+ * \var StreamConfiguration::pixelFormat
+ * \brief Stream pixel format
+ *
+ * This is a little endian four character code representation of the pixel
+ * format described in V4L2 using the V4L2_PIX_FMT_* definitions.
+ */
+
 } /* namespace libcamera */