SkyWay Linux SDK
読み取り中…
検索中…
一致する文字列を見つけられません
opencv_video_renderer.hpp
1// OpenCVの機能を利用する際には、SKYWAY_ENABLE_OPENCVマクロを定義してください。
2#ifdef SKYWAY_ENABLE_OPENCV
3
4#ifndef SKYWAY_MEDIA_OPENCV_VIDEO_RENDERER_HPP_
5#define SKYWAY_MEDIA_OPENCV_VIDEO_RENDERER_HPP_
6
7#include "skyway/media/i420_video_renderer.hpp"
8
9#include <thread>
10#include <unordered_set>
11
12#include <memory>
13
14#include <opencv2/opencv.hpp>
15
16namespace skyway {
17namespace media {
18namespace opencv {
19
23public:
24 class Listener {
25 public:
26 virtual ~Listener() = default;
27 virtual void OnFrame(cv::Mat mat) = 0;
28 };
29
33
36 void RegisterListener(Listener* listener);
40
41 // Impl I420VideoRenderer
42 void OnFrame(const webrtc::VideoFrame& frame) override;
43
44private:
45 cv::Mat I420ToMat(const interface::I420Frame& frame);
46 std::mutex listeners_mtx_;
47 std::unordered_set<Listener*> listeners_;
48};
49} // namespace opencv
50} // namespace media
51} // namespace skyway
52
53#endif /* SKYWAY_MEDIA_V4L2_VIDEO_RENDERER_HPP_ */
54#endif /* SKYWAY_ENABLE_OPENCV */
SubscribeしたVideoStreamの映像を取得するクラス
Definition i420_video_renderer.hpp:12
Definition opencv_video_renderer.hpp:24
映像の描画を行うクラス
Definition opencv_video_renderer.hpp:22
void RegisterListener(Listener *listener)
リスナーを登録します
void UnregisterListener(Listener *listener)
登録しているリスナーを解除します
OpenCVVideoRenderer()
コンストラクタ
映像フレーム
Definition i420_video_renderer.hpp:23