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