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

Jacopo Mondi jacopo.mondi at ideasonboard.com
Fri Dec 6 17:53:38 CET 2024


Hi Kieran

On Fri, Dec 06, 2024 at 04:32:58PM +0000, Kieran Bingham wrote:
> 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>
>

I copied the implementation from the Request class, and all the other
implementations of toString() based on operator<< are like this.

I'll keep it this way for consistency.

Thanks
  j

> > +       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