SkyWay Linux SDK
読み取り中…
検索中…
一致する文字列を見つけられません
i420_video_renderer.hpp
1#ifndef SKYWAY_MEDIA_INTERFACE_I420_VIDEO_RENDERER_HPP_
2#define SKYWAY_MEDIA_INTERFACE_I420_VIDEO_RENDERER_HPP_
3
4#include <mutex>
5#include <unordered_set>
6
7#include "skyway/media/interface/video_renderer.hpp"
8#include "skyway/media/stream/interface/remote/remote_video_stream.hpp"
9
10namespace skyway {
11namespace media {
12namespace interface {
13
17 std::optional<int> scaled_width;
19 std::optional<int> scaled_height;
20};
21
23struct I420Frame {
25 const uint8_t* y;
27 const uint8_t* u;
29 const uint8_t* v;
37 int width;
39 int height;
40
42 rtc::scoped_refptr<webrtc::I420BufferInterface> i420_buffer;
44};
45
48public:
50 class Listener {
51 public:
52 virtual ~Listener() = default;
53 virtual void OnFrame(I420Frame frame) = 0;
54 };
55
58 virtual void RegisterListener(Listener* listener) = 0;
59
61 virtual void UnregisterListener(Listener* listener) = 0;
62
65 virtual void Render(std::shared_ptr<stream::interface::remote::RemoteVideoStream> stream) = 0;
66
67 // rtc::VideoSinkInterface<webrtc::VideoFrame>
68 virtual void OnFrame(const webrtc::VideoFrame& frame) = 0;
69};
70
71} // namespace interface
72} // namespace media
73} // namespace skyway
74
75#endif /* SKYWAY_MEDIA_INTERFACE_I420_VIDEO_RENDERER_HPP_ */
RemoteVideoStreamにて映像フレームが更新された際に呼ばれるイベントリスナー
Definition i420_video_renderer.hpp:50
SubscribeしたVideoStreamの映像を取得するインターフェース
Definition i420_video_renderer.hpp:47
virtual void UnregisterListener(Listener *listener)=0
イベントリスナーの登録を解除します。
virtual void RegisterListener(Listener *listener)=0
I420VideoRenderer::Listenerを登録します。
virtual void Render(std::shared_ptr< stream::interface::remote::RemoteVideoStream > stream)=0
RemoteVideoStreamをRendererに登録します。
Definition video_renderer.hpp:10
映像フレーム
Definition i420_video_renderer.hpp:23
const uint8_t * v
映像のV成分
Definition i420_video_renderer.hpp:29
int stride_u
映像のY成分のStride
Definition i420_video_renderer.hpp:33
const uint8_t * u
映像のU成分
Definition i420_video_renderer.hpp:27
int width
width 映像の横幅
Definition i420_video_renderer.hpp:37
int stride_v
映像のY成分のStride
Definition i420_video_renderer.hpp:35
int height
height 映像の縦幅
Definition i420_video_renderer.hpp:39
const uint8_t * y
映像のY成分
Definition i420_video_renderer.hpp:25
int stride_y
映像のY成分のStride
Definition i420_video_renderer.hpp:31
映像の出力時の設定
Definition i420_video_renderer.hpp:15
std::optional< int > scaled_width
出力時の横幅(px)を指定します。
Definition i420_video_renderer.hpp:17
std::optional< int > scaled_height
出力時の高さ(px)を指定します。
Definition i420_video_renderer.hpp:19