[libcamera-devel] [PATCH v2 11/16] libcamera: stream: StreamConfiguration: Add StreamFormats information
Niklas Söderlund
niklas.soderlund at ragnatech.se
Wed Jun 12 02:43:54 CEST 2019
Allow StreamFormats to be associated to a StreamConfiguration. The
intention is that pipeline handlers should associate formats to a
StreamConfiguration when it's created in generateConfiguration().
Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
---
include/libcamera/stream.h | 8 ++++----
src/libcamera/stream.cpp | 25 +++++++++++++++++++++++++
2 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h
index 48daf5ac23f55d85..5b4fea324ce449b1 100644
--- a/include/libcamera/stream.h
+++ b/include/libcamera/stream.h
@@ -35,10 +35,8 @@ private:
};
struct StreamConfiguration {
- StreamConfiguration()
- : stream_(nullptr)
- {
- }
+ StreamConfiguration();
+ StreamConfiguration(const StreamFormats &formats);
unsigned int pixelFormat;
Size size;
@@ -47,11 +45,13 @@ struct StreamConfiguration {
Stream *stream() const { return stream_; }
void setStream(Stream *stream) { stream_ = stream; }
+ const StreamFormats &formats() const { return formats_; }
std::string toString() const;
private:
Stream *stream_;
+ StreamFormats formats_;
};
enum StreamRole {
diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
index 52340c2644aac8d8..254a5e10db24287d 100644
--- a/src/libcamera/stream.cpp
+++ b/src/libcamera/stream.cpp
@@ -268,6 +268,19 @@ SizeRange StreamFormats::range(unsigned int pixelformat) const
* configured for a single video stream.
*/
+StreamConfiguration::StreamConfiguration()
+ : stream_(nullptr)
+{
+}
+
+/**
+ * \brief Construct a configuration with stream formats
+ */
+StreamConfiguration::StreamConfiguration(const StreamFormats &formats)
+ : stream_(nullptr), formats_(formats)
+{
+}
+
/**
* \var StreamConfiguration::size
* \brief Stream size in pixels
@@ -308,6 +321,18 @@ SizeRange StreamFormats::range(unsigned int pixelformat) const
* \param[in] stream The stream
*/
+/**
+ * \fn StreamConfiguration::formats()
+ * \brief Retrieve advisory stream format information
+ *
+ * Retrieve information about pixel formats and sizes for possible stream
+ * configuration. The size information is advisory and not guaranteed to
+ * be fully satisfied by the hardware, users should always inspect the actual
+ * size used by the device after a camera have been configured.
+ *
+ * \return Stream formats information
+ */
+
/**
* \brief Assemble and return a string describing the configuration
*
--
2.21.0
More information about the libcamera-devel
mailing list