[libcamera-devel] [PATCH 2/5] libcamera: Add operator<<() for pixel format classes

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Apr 29 23:23:45 CEST 2022


Implement the stream output operator<<() for the PixelFormat and
V4L2PixelFormat classes to simplify printing them.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 include/libcamera/internal/v4l2_pixelformat.h |  3 +++
 include/libcamera/pixel_format.h              |  3 +++
 src/libcamera/pixel_format.cpp                | 12 ++++++++++++
 src/libcamera/v4l2_pixelformat.cpp            | 13 +++++++++++++
 4 files changed, 31 insertions(+)

diff --git a/include/libcamera/internal/v4l2_pixelformat.h b/include/libcamera/internal/v4l2_pixelformat.h
index 886d534d8c91..fb2d5d0b93df 100644
--- a/include/libcamera/internal/v4l2_pixelformat.h
+++ b/include/libcamera/internal/v4l2_pixelformat.h
@@ -8,6 +8,7 @@
 
 #pragma once
 
+#include <ostream>
 #include <stdint.h>
 #include <string>
 
@@ -50,4 +51,6 @@ private:
 	uint32_t fourcc_;
 };
 
+std::ostream &operator<<(std::ostream &out, const V4L2PixelFormat &f);
+
 } /* namespace libcamera */
diff --git a/include/libcamera/pixel_format.h b/include/libcamera/pixel_format.h
index a9d7c03de851..d49c5f784118 100644
--- a/include/libcamera/pixel_format.h
+++ b/include/libcamera/pixel_format.h
@@ -7,6 +7,7 @@
 
 #pragma once
 
+#include <ostream>
 #include <set>
 #include <stdint.h>
 #include <string>
@@ -45,4 +46,6 @@ private:
 	uint64_t modifier_;
 };
 
+std::ostream &operator<<(std::ostream &out, const PixelFormat &f);
+
 } /* namespace libcamera */
diff --git a/src/libcamera/pixel_format.cpp b/src/libcamera/pixel_format.cpp
index 997aeb8a9290..80c22072b072 100644
--- a/src/libcamera/pixel_format.cpp
+++ b/src/libcamera/pixel_format.cpp
@@ -140,4 +140,16 @@ PixelFormat PixelFormat::fromString(const std::string &name)
 	return PixelFormatInfo::info(name).format;
 }
 
+/**
+ * \brief Insert a text representation of a PixelFormat into an output stream
+ * \param[in] out The output stream
+ * \param[in] f The PixelFormat
+ * \return The output stream \a out
+ */
+std::ostream &operator<<(std::ostream &out, const PixelFormat &f)
+{
+	out << f.toString();
+	return out;
+}
+
 } /* namespace libcamera */
diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp
index 0e0da3f0df07..1dd93baa7a64 100644
--- a/src/libcamera/v4l2_pixelformat.cpp
+++ b/src/libcamera/v4l2_pixelformat.cpp
@@ -316,4 +316,17 @@ V4L2PixelFormat V4L2PixelFormat::fromPixelFormat(const PixelFormat &pixelFormat,
 	return multiplanar ? info.v4l2Formats.multi : info.v4l2Formats.single;
 }
 
+/**
+ * \brief Insert a text representation of a V4L2PixelFormat into an output
+ * stream
+ * \param[in] out The output stream
+ * \param[in] f The V4L2PixelFormat
+ * \return The output stream \a out
+ */
+std::ostream &operator<<(std::ostream &out, const V4L2PixelFormat &f)
+{
+	out << f.toString();
+	return out;
+}
+
 } /* namespace libcamera */
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list