summaryrefslogtreecommitdiff
path: root/src/libcamera/bayer_format.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/bayer_format.cpp')
-rw-r--r--src/libcamera/bayer_format.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libcamera/bayer_format.cpp b/src/libcamera/bayer_format.cpp
index a6a40be0..9eb83898 100644
--- a/src/libcamera/bayer_format.cpp
+++ b/src/libcamera/bayer_format.cpp
@@ -7,6 +7,7 @@
#include "libcamera/internal/bayer_format.h"
+#include <algorithm>
#include <map>
#include <unordered_map>
@@ -273,6 +274,23 @@ V4L2PixelFormat BayerFormat::toV4L2PixelFormat() const
}
/**
+ * \brief Convert \a v4l2Format to the corresponding BayerFormat
+ * \param[in] v4l2Format The raw format to convert into a BayerFormat
+ * \return The BayerFormat corresponding to \a v4l2Format
+ */
+BayerFormat BayerFormat::fromV4L2PixelFormat(V4L2PixelFormat v4l2Format)
+{
+ auto it = std::find_if(bayerToV4l2.begin(), bayerToV4l2.end(),
+ [v4l2Format](const auto &i) {
+ return i.second == v4l2Format;
+ });
+ if (it != bayerToV4l2.end())
+ return it->first;
+
+ return BayerFormat();
+}
+
+/**
* \brief Apply a transform to this BayerFormat
* \param[in] t The transform to apply
*