[libcamera-devel] [PATCH v4 1/3] libcamera: formats: PixelFormatInfo: Add name lookup function
Kaaira Gupta
kgupta at es.iitr.ac.in
Mon Jul 27 18:21:41 CEST 2020
Add a function which returns PixelFormatInfo, given format name as
a string.
Signed-off-by: Kaaira Gupta <kgupta at es.iitr.ac.in>
---
include/libcamera/internal/formats.h | 1 +
src/libcamera/formats.cpp | 16 ++++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/include/libcamera/internal/formats.h b/include/libcamera/internal/formats.h
index 0bb1510..b8e4749 100644
--- a/include/libcamera/internal/formats.h
+++ b/include/libcamera/internal/formats.h
@@ -38,6 +38,7 @@ public:
static const PixelFormatInfo &info(const PixelFormat &format);
static const PixelFormatInfo &info(const V4L2PixelFormat &format);
+ static const PixelFormatInfo &info(const std::string &name);
unsigned int stride(unsigned int width, unsigned int plane,
unsigned int align = 1) const;
diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
index 11774b0..5f14281 100644
--- a/src/libcamera/formats.cpp
+++ b/src/libcamera/formats.cpp
@@ -663,6 +663,22 @@ const PixelFormatInfo &PixelFormatInfo::info(const V4L2PixelFormat &format)
return info->second;
}
+/**
+ * \brief Retrieve information about a pixel format
+ * \param[in] name The name of pixel format
+ * \return The PixelFormatInfo describing the \a name if known, or an
+ * invalid PixelFormatInfo otherwise
+ */
+const PixelFormatInfo &PixelFormatInfo::info(const std::string &name)
+{
+ for (const auto &info : pixelFormatInfo) {
+ if (info.second.name == name)
+ return info.second;
+ }
+
+ return pixelFormatInfoInvalid;
+}
+
/**
* \brief Compute the stride
* \param[in] width The width of the line, in pixels
--
2.17.1
More information about the libcamera-devel
mailing list