diff options
author | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2020-10-18 03:47:23 +0200 |
---|---|---|
committer | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2020-11-10 01:20:30 +0100 |
commit | 3d624b745b31383dbcd94d96246fab865820085f (patch) | |
tree | 60b0bdcec8479f1322e6cd914b019a757bf2f033 /include/libcamera/internal/v4l2_device.h | |
parent | 68d2c41835a871ecd7b441cd650cab3fefa88cf5 (diff) |
libcamera: v4l2_device: Move start of frame detection to V4L2Device
The V4L2_EVENT_FRAME_SYNC event may occur on both V4L2 video-devices
(V4L2VideoDevice) and sub-devices (V4L2Subdevice). Move the start of
frame detection to the common base class of the two, V4L2Device.
There is no functional change.
Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'include/libcamera/internal/v4l2_device.h')
-rw-r--r-- | include/libcamera/internal/v4l2_device.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/libcamera/internal/v4l2_device.h b/include/libcamera/internal/v4l2_device.h index 722fb722..c56a950e 100644 --- a/include/libcamera/internal/v4l2_device.h +++ b/include/libcamera/internal/v4l2_device.h @@ -13,11 +13,15 @@ #include <linux/videodev2.h> +#include <libcamera/signal.h> + #include "libcamera/internal/log.h" #include "libcamera/internal/v4l2_controls.h" namespace libcamera { +class EventNotifier; + class V4L2Device : protected Loggable { public: @@ -34,6 +38,9 @@ public: const std::string &deviceNode() const { return deviceNode_; } std::string devicePath() const; + int setFrameStartEnabled(bool enable); + Signal<uint32_t> frameStart; + protected: V4L2Device(const std::string &deviceNode); ~V4L2Device(); @@ -51,11 +58,16 @@ private: const struct v4l2_ext_control *v4l2Ctrls, unsigned int count); + void eventAvailable(EventNotifier *notifier); + std::map<unsigned int, struct v4l2_query_ext_ctrl> controlInfo_; std::vector<std::unique_ptr<V4L2ControlId>> controlIds_; ControlInfoMap controls_; std::string deviceNode_; int fd_; + + EventNotifier *fdEventNotifier_; + bool frameStartEnabled_; }; } /* namespace libcamera */ |