[PATCH v2] libcamera: stream: Add operator<<(StreamConfiguration)

Kieran Bingham kieran.bingham at ideasonboard.com
Fri Dec 6 17:32:58 CET 2024


Quoting Jacopo Mondi (2024-12-06 16:22:29)
> The StreamConfiguration class only implements toString() but doesn't
> offer an overload of operator<<() which is more convenient to use.
> 
> Add an overload for operator<<(StreamConfiguration) and re-implement
> StreamConfiguration::toString() on top of it.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> ---
>  include/libcamera/stream.h |  2 ++
>  src/libcamera/stream.cpp   | 18 +++++++++++++++++-
>  2 files changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h
> index 071b71698acb..ea228aea7d56 100644
> --- a/include/libcamera/stream.h
> +++ b/include/libcamera/stream.h
> @@ -61,6 +61,8 @@ private:
>         StreamFormats formats_;
>  };
> 
> +std::ostream &operator<<(std::ostream &out, StreamConfiguration cfg);
> +
>  enum class StreamRole {
>         Raw,
>         StillCapture,
> diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
> index 1f75dbbc5b64..63aa5a027295 100644
> --- a/src/libcamera/stream.cpp
> +++ b/src/libcamera/stream.cpp
> @@ -392,7 +392,23 @@ StreamConfiguration::StreamConfiguration(const StreamFormats &formats)
>   */
>  std::string StreamConfiguration::toString() const
>  {
> -       return size.toString() + "-" + pixelFormat.toString();
> +       std::stringstream ss;

Tiny nit: I'd probably have a blank line here. But it doesn't matter.

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> +       ss << *this;
> +
> +       return ss.str();
> +}
> +
> +/**
> + * \brief Insert a text representation of a StreamConfiguration into an output
> + * stream
> + * \param[in] out The output stream
> + * \param[in] cfg The StreamConfiguration
> + * \return The output stream \a out
> + */
> +std::ostream &operator<<(std::ostream &out, StreamConfiguration cfg)
> +{
> +       out << size.toString() + "-" + pixelFormat.toString();
> +       return out;
>  }
> 
>  /**
> --
> 2.47.1
>


More information about the libcamera-devel mailing list