From 2b1a8f48f3a414e565cefb809f3e6a7c6aa5f8a7 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Wed, 6 Oct 2021 10:26:00 +0300 Subject: Split V4L2 code into separate libs Create v4l2++ library and pyv4l2, which are independent from the rest of the kms++. Signed-off-by: Tomi Valkeinen --- kms++util/inc/kms++util/videodevice.h | 88 ----------------------------------- 1 file changed, 88 deletions(-) delete mode 100644 kms++util/inc/kms++util/videodevice.h (limited to 'kms++util/inc') diff --git a/kms++util/inc/kms++util/videodevice.h b/kms++util/inc/kms++util/videodevice.h deleted file mode 100644 index 3bce4a9..0000000 --- a/kms++util/inc/kms++util/videodevice.h +++ /dev/null @@ -1,88 +0,0 @@ -#pragma once - -#include -#include -#include - -class VideoStreamer; - -class VideoDevice -{ -public: - struct VideoFrameSize { - uint32_t min_w, max_w, step_w; - uint32_t min_h, max_h, step_h; - }; - - VideoDevice(const std::string& dev); - VideoDevice(int fd); - ~VideoDevice(); - - VideoDevice(const VideoDevice& other) = delete; - VideoDevice& operator=(const VideoDevice& other) = delete; - - VideoStreamer* get_capture_streamer(); - VideoStreamer* get_output_streamer(); - - std::vector> get_discrete_frame_sizes(kms::PixelFormat fmt); - VideoFrameSize get_frame_sizes(kms::PixelFormat fmt); - - int fd() const { return m_fd; } - bool has_capture() const { return m_has_capture; } - bool has_output() const { return m_has_output; } - bool has_m2m() const { return m_has_m2m; } - - static std::vector get_capture_devices(); - static std::vector get_m2m_devices(); - -private: - int m_fd; - - bool m_has_capture; - bool m_has_mplane_capture; - - bool m_has_output; - bool m_has_mplane_output; - - bool m_has_m2m; - bool m_has_mplane_m2m; - - std::vector m_capture_fbs; - std::vector m_output_fbs; - - std::unique_ptr m_capture_streamer; - std::unique_ptr m_output_streamer; -}; - -class VideoStreamer -{ -public: - enum class StreamerType { - CaptureSingle, - CaptureMulti, - OutputSingle, - OutputMulti, - }; - - VideoStreamer(int fd, StreamerType type); - - std::vector get_ports(); - void set_port(uint32_t index); - - std::vector get_formats(); - void set_format(kms::PixelFormat fmt, uint32_t width, uint32_t height); - void get_selection(uint32_t& left, uint32_t& top, uint32_t& width, uint32_t& height); - void set_selection(uint32_t& left, uint32_t& top, uint32_t& width, uint32_t& height); - void set_queue_size(uint32_t queue_size); - void queue(kms::DumbFramebuffer* fb); - kms::DumbFramebuffer* dequeue(); - void stream_on(); - void stream_off(); - - int fd() const { return m_fd; } - -private: - int m_fd; - StreamerType m_type; - std::vector m_fbs; -}; -- cgit v1.2.3