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