[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