[libcamera-devel] [PATCH v2 2/2] libcamera: v4l2_device: Add stubs to set/get format

Jacopo Mondi jacopo at jmondi.org
Thu Jan 24 12:30:00 CET 2019


Add function stubs for set/get format to V4L2Device.

Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 src/libcamera/include/v4l2_device.h |  9 ++++++
 src/libcamera/v4l2_device.cpp       | 49 +++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+)

diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h
index 413bb7f..2da30d1 100644
--- a/src/libcamera/include/v4l2_device.h
+++ b/src/libcamera/include/v4l2_device.h
@@ -72,10 +72,19 @@ public:
 	const char *deviceName() const { return caps_.card(); }
 	const char *busName() const { return caps_.bus_info(); }
 
+	int format();
+	int setFormat();
+
 private:
 	std::string deviceNode_;
 	int fd_;
 	V4L2Capability caps_;
+
+	int getFormatSingleplane();
+	int setFormatSingleplane();
+
+	int getFormatMultiplane();
+	int setFormatMultiplane();
 };
 
 } /* namespace libcamera */
diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
index 9cb504d..2ddb800 100644
--- a/src/libcamera/v4l2_device.cpp
+++ b/src/libcamera/v4l2_device.cpp
@@ -213,4 +213,53 @@ void V4L2Device::close()
  * \return The string containing the device location
  */
 
+/**
+ * \brief Retrieve the image format set on the V4L2 device
+ *
+ * TODO: define how the image format is encoded
+ * FIXME: this function is a stub at the moment
+ *
+ * \return 0 for success, a negative error code otherwise
+ */
+int V4L2Device::format()
+{
+	return caps_.isMultiplanar() ? getFormatMultiplane() :
+				       getFormatSingleplane();
+}
+
+/**
+ * \brief Program an image format on the V4L2 device
+ *
+ * TODO: define how the image format is encoded
+ * FIXME: this function is a stub at the moment
+ *
+ * \return 0 for success, a negative error code otherwise
+ */
+int V4L2Device::setFormat()
+{
+	return caps_.isMultiplanar() ? setFormatMultiplane() :
+				       setFormatSingleplane();
+}
+
+/* FIXME: these functions are stubs at the moment. */
+int V4L2Device::getFormatSingleplane()
+{
+	return 0;
+}
+
+int V4L2Device::setFormatSingleplane()
+{
+	return 0;
+}
+
+int V4L2Device::getFormatMultiplane()
+{
+	return 0;
+}
+
+int V4L2Device::setFormatMultiplane()
+{
+	return 0;
+}
+
 } /* namespace libcamera */
-- 
2.20.1



More information about the libcamera-devel mailing list