[libcamera-devel] [PATCH 0/5] libcamera: More operator<<() for stream output
Jacopo Mondi
jacopo at jmondi.org
Wed May 4 11:18:54 CEST 2022
Ah, right, different use cases, so having both is fine
For the series: add Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
On Tue, May 03, 2022 at 05:39:44PM +0300, Laurent Pinchart wrote:
> Hi Jacopo,
>
> On Tue, May 03, 2022 at 09:04:14AM +0200, Jacopo Mondi wrote:
> > Hi Laurent,
> >
> > On Sat, Apr 30, 2022 at 12:23:43AM +0300, Laurent Pinchart via libcamera-devel wrote:
> > > Hello,
> > >
> > > This patch series extends Han-Lin's operator<<() implementation for
> > > geometry classes to format classes. There isn't much else to mention in
> > > the cover letter, please see individual patches for details.
> >
> > We now have both .toString() and operator<< for printing. Is this
> > intentional ? Shouldn't we stabilize on only one of the two ?
>
> I think both make sense (as long as one of the two is implemented based
> on the other internally), as they serve different purposes. operator<<()
> certainly simplifies logging, but not all string representations are
> used in logs. toString() has few users so far, mostly in tests, for
> instance in
>
> if (PixelFormat().toString() != "<INVALID>") {
> cerr << "Failed to convert default PixelFormat to string"
> << endl;
> return TestFail;
> }
>
> It would need to be written as
>
> std::stringstream ss;
> ss << PixelFormat();
> if (ss.str() != "<INVALID>") {
> ...
> }
>
> which isn't very convenient. I can imagine more use cases in
> applications, for instance in qcam where available resolutions could be
> displayed in the UI.
>
> > > Laurent Pinchart (5):
> > > libcamera: geometry: Add missing ostream header in geometry.h
> > > libcamera: Add operator<<() for pixel format classes
> > > libcamera: bayer_format: Add operator<<()
> > > libcamera: Add operator<<() for V4L2 format classes
> > > libcamera: Replace toString with operator<<() for format classes
> > >
> > > include/libcamera/geometry.h | 1 +
> > > include/libcamera/internal/bayer_format.h | 3 +
> > > include/libcamera/internal/v4l2_pixelformat.h | 3 +
> > > include/libcamera/internal/v4l2_subdevice.h | 3 +
> > > include/libcamera/internal/v4l2_videodevice.h | 3 +
> > > include/libcamera/pixel_format.h | 3 +
> > > src/android/camera_capabilities.cpp | 6 +-
> > > src/android/camera_device.cpp | 4 +-
> > > src/android/jpeg/encoder_libjpeg.cpp | 2 +-
> > > src/android/jpeg/thumbnailer.cpp | 2 +-
> > > src/android/mm/generic_camera_buffer.cpp | 3 +-
> > > src/android/yuv/post_processor_yuv.cpp | 4 +-
> > > src/cam/camera_session.cpp | 2 +-
> > > src/cam/kms_sink.cpp | 2 +-
> > > src/libcamera/bayer_format.cpp | 57 ++++++++++++-------
> > > src/libcamera/pipeline/ipu3/cio2.cpp | 2 +-
> > > src/libcamera/pipeline/ipu3/imgu.cpp | 6 +-
> > > .../pipeline/raspberrypi/raspberrypi.cpp | 20 +++----
> > > src/libcamera/pipeline/rkisp1/rkisp1.cpp | 10 ++--
> > > src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 6 +-
> > > src/libcamera/pipeline/simple/converter.cpp | 4 +-
> > > src/libcamera/pipeline/simple/simple.cpp | 9 ++-
> > > src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 5 +-
> > > src/libcamera/pipeline/vimc/vimc.cpp | 2 +-
> > > src/libcamera/pixel_format.cpp | 12 ++++
> > > src/libcamera/v4l2_pixelformat.cpp | 13 +++++
> > > src/libcamera/v4l2_subdevice.cpp | 36 ++++++++----
> > > src/libcamera/v4l2_videodevice.cpp | 16 +++++-
> > > src/qcam/viewfinder_qt.cpp | 3 +-
> > > src/v4l2/v4l2_camera_proxy.cpp | 2 +-
> > > test/bayer-format.cpp | 24 ++++----
> > > test/camera-sensor.cpp | 2 +-
> > > 32 files changed, 175 insertions(+), 95 deletions(-)
>
> --
> Regards,
>
> Laurent Pinchart
More information about the libcamera-devel
mailing list