libcamera: v4l2_subdevice: Add support for the V4L2 subdev routing API

Extend the V4L2Subdevice class to support getting and setting routing
tables.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Tested-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Jacopo Mondi
2022-03-30 12:27:03 +02:00
committed by Laurent Pinchart
parent 39d4917619
commit 495aac658d
2 changed files with 115 additions and 0 deletions
@@ -61,6 +61,12 @@ public:
ActiveFormat = V4L2_SUBDEV_FORMAT_ACTIVE,
};
class Routing : public std::vector<struct v4l2_subdev_route>
{
public:
std::string toString() const;
};
explicit V4L2Subdevice(const MediaEntity *entity);
~V4L2Subdevice();
@@ -80,6 +86,9 @@ public:
int setFormat(unsigned int pad, V4L2SubdeviceFormat *format,
Whence whence = ActiveFormat);
int getRouting(Routing *routing, Whence whence = ActiveFormat);
int setRouting(Routing *routing, Whence whence = ActiveFormat);
const std::string &model();
const V4L2SubdeviceCapability &caps() const { return caps_; }