From f1b449476cd82dd391bd8e078fb93181e2ec881c Mon Sep 17 00:00:00 2001
From: Paul Elder <paul.elder@ideasonboard.com>
Date: Sat, 4 Jul 2020 17:51:27 +0900
Subject: libcamera: V4L2VideoDevice: Add tryFormat

Add tryFormat and its variations (meta, single-plane, multi-plane) to
V4L2VideoDevice.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
---
 include/libcamera/internal/v4l2_videodevice.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

(limited to 'include')

diff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h
index 4d21f5a0..fb4c0aab 100644
--- a/include/libcamera/internal/v4l2_videodevice.h
+++ b/include/libcamera/internal/v4l2_videodevice.h
@@ -186,6 +186,7 @@ public:
 	const V4L2Capability &caps() const { return caps_; }
 
 	int getFormat(V4L2DeviceFormat *format);
+	int tryFormat(V4L2DeviceFormat *format);
 	int setFormat(V4L2DeviceFormat *format);
 	std::map<V4L2PixelFormat, std::vector<SizeRange>> formats(uint32_t code = 0);
 
@@ -217,13 +218,13 @@ protected:
 
 private:
 	int getFormatMeta(V4L2DeviceFormat *format);
-	int setFormatMeta(V4L2DeviceFormat *format);
+	int trySetFormatMeta(V4L2DeviceFormat *format, bool set);
 
 	int getFormatMultiplane(V4L2DeviceFormat *format);
-	int setFormatMultiplane(V4L2DeviceFormat *format);
+	int trySetFormatMultiplane(V4L2DeviceFormat *format, bool set);
 
 	int getFormatSingleplane(V4L2DeviceFormat *format);
-	int setFormatSingleplane(V4L2DeviceFormat *format);
+	int trySetFormatSingleplane(V4L2DeviceFormat *format, bool set);
 
 	std::vector<V4L2PixelFormat> enumPixelformats(uint32_t code);
 	std::vector<SizeRange> enumSizes(V4L2PixelFormat pixelFormat);
-- 
cgit v1.2.1