diff options
author | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2019-05-26 02:31:39 +0200 |
---|---|---|
committer | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2019-06-19 12:24:23 +0200 |
commit | a50289642948239722b0f45b2df097df20d43ae9 (patch) | |
tree | ad729cf9a3bde9305a22fddfc85ba4b2013d16be | |
parent | 63c578ed9993056dab3bd0774b572cd015747a45 (diff) |
libcamera: stream: StreamConfiguration: Add StreamFormats information
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@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r-- | include/libcamera/stream.h | 8 | ||||
-rw-r--r-- | src/libcamera/stream.cpp | 29 |
2 files changed, 33 insertions, 4 deletions
diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h index 48daf5ac..5b4fea32 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 3398c597..d60f8324 100644 --- a/src/libcamera/stream.cpp +++ b/src/libcamera/stream.cpp @@ -271,6 +271,23 @@ SizeRange StreamFormats::range(unsigned int pixelformat) const */ /** + * \todo This method is deprecated and should be removed once all pipeline + * handlers provied StreamFormats. + */ +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 */ @@ -311,6 +328,18 @@ SizeRange StreamFormats::range(unsigned int pixelformat) const */ /** + * \fn StreamConfiguration::formats() + * \brief Retrieve advisory stream format information + * + * This method retrieves information about the pixel formats and sizes supported + * by the stream configuration. The sizes are advisory and not all of them are + * guaranteed to be supported by the stream. Users shall always inspect the size + * in the stream configuration after calling CameraConfiguration::validate(). + * + * \return Stream formats information + */ + +/** * \brief Assemble and return a string describing the configuration * * \return A string describing the StreamConfiguration |