summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2019-01-21 16:50:05 +0100
committerJacopo Mondi <jacopo@jmondi.org>2019-01-25 14:04:41 +0100
commit987bd370b0aa1778271fdac39a04ab35adfffb3a (patch)
tree24a577cf047755c108d3e737529e4980e2e71073
parent0052aaa40e9d9c92f4ada41987f03015adf4953e (diff)
libcamera: v4l2_device: Identify multiplanar formats
Add functions to V4L2Capability to identify if a V4L2 device supports multiplanar V4L2 APIs. Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r--src/libcamera/include/v4l2_device.h23
-rw-r--r--src/libcamera/v4l2_device.cpp6
2 files changed, 25 insertions, 4 deletions
diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h
index cb3601ca..413bb7fd 100644
--- a/src/libcamera/include/v4l2_device.h
+++ b/src/libcamera/include/v4l2_device.h
@@ -32,10 +32,25 @@ struct V4L2Capability final : v4l2_capability {
? v4l2_capability::device_caps
: v4l2_capability::capabilities;
}
-
- bool isCapture() const { return device_caps() & V4L2_CAP_VIDEO_CAPTURE; }
- bool isOutput() const { return device_caps() & V4L2_CAP_VIDEO_OUTPUT; }
- bool hasStreaming() const { return device_caps() & V4L2_CAP_STREAMING; }
+ bool isMultiplanar() const
+ {
+ return device_caps() & (V4L2_CAP_VIDEO_CAPTURE_MPLANE |
+ V4L2_CAP_VIDEO_OUTPUT_MPLANE);
+ }
+ bool isCapture() const
+ {
+ return device_caps() & (V4L2_CAP_VIDEO_CAPTURE |
+ V4L2_CAP_VIDEO_CAPTURE_MPLANE);
+ }
+ bool isOutput() const
+ {
+ return device_caps() & (V4L2_CAP_VIDEO_OUTPUT |
+ V4L2_CAP_VIDEO_OUTPUT_MPLANE);
+ }
+ bool hasStreaming() const
+ {
+ return device_caps() & V4L2_CAP_STREAMING;
+ }
};
class MediaEntity;
diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
index 0ce2b187..9cb504d2 100644
--- a/src/libcamera/v4l2_device.cpp
+++ b/src/libcamera/v4l2_device.cpp
@@ -57,6 +57,12 @@ LOG_DEFINE_CATEGORY(V4L2)
*/
/**
+ * \fn bool V4L2Capability::isMultiplanar()
+ * \brief Identify if the device implement V4L2 multiplanar APIs
+ * \return True if the device supports multiplanar APIs
+ */
+
+/**
* \fn bool V4L2Capability::isCapture()
* \brief Identify if the device is capable of capturing video
* \return True if the device can capture video frames