MillicastSDK
2.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
renderer.h
Go to the documentation of this file.
1
#ifndef MILLICAST_API_RENDERER_H
2
#define MILLICAST_API_RENDERER_H
3
4
#ifdef __cplusplus
5
12
13
#include <cstddef>
// size_t
14
#include <cstdint>
// uint32_t
15
16
#include "
frames.h
"
17
#include "
source.h
"
18
19
namespace
millicast {
20
21
// base ///////////////////////////////////////////////////////////////////////
22
27
28
class
Renderer {
29
public
:
30
Renderer() =
default
;
31
virtual
~Renderer() =
default
;
32
36
37
virtual
void
init() = 0;
38
};
39
40
// Video //////////////////////////////////////////////////////////////////////
41
47
48
class
VideoRenderer :
public
Renderer {
49
public
:
50
VideoRenderer() =
default
;
51
~VideoRenderer()
override
=
default
;
52
58
59
virtual
void
on_frame(
const
VideoFrame& frame) = 0;
60
};
61
62
// Audio //////////////////////////////////////////////////////////////////////
63
71
72
class
AudioRenderer {
73
public
:
74
AudioRenderer() =
default
;
75
virtual
~AudioRenderer() =
default
;
76
81
82
virtual
void
on_frame(
const
AudioFrame& frame) = 0;
83
};
84
85
// decklink ///////////////////////////////////////////////////////////////////
86
93
94
class
DeckLinkRenderer :
public
VideoRenderer {
95
public
:
96
DeckLinkRenderer() =
default
;
97
~DeckLinkRenderer()
override
=
default
;
98
103
104
MILLICAST_API
virtual
void
set_source(VideoSource::Ptr device) = 0;
105
MILLICAST_API
virtual
void
stop() = 0;
106
111
112
MILLICAST_API
static
std::vector<VideoSource::Ptr> get_decklink_devices();
113
118
119
MILLICAST_API
static
DeckLinkRenderer* create();
120
};
121
122
// ndi ////////////////////////////////////////////////////////////////////////
123
129
130
class
NdiRenderer :
public
VideoRenderer {
131
public
:
132
NdiRenderer() =
default
;
133
~NdiRenderer()
override
=
default
;
134
141
142
MILLICAST_API
virtual
void
set_name(
const
std::string&) = 0;
143
148
149
MILLICAST_API
static
NdiRenderer* create();
150
};
151
152
#if defined MILLICAST_SDK_TVOS || defined MILLICAST_SDK_IOS
153
154
class
MILLICAST_API
IosVideoRenderer :
public
VideoRenderer {
155
public
:
156
IosVideoRenderer() =
default
;
157
virtual
~IosVideoRenderer() =
default
;
158
159
virtual
void
* get_uiview() = 0;
160
virtual
float
width() = 0;
161
virtual
float
height() = 0;
162
163
static
IosVideoRenderer* create();
164
165
std::function<void(
float
,
float
)> did_change_video_size;
166
};
167
168
#endif
169
170
}
// namespace millicast
171
172
#endif
// __cplusplus
173
#endif
/* MILLICAST_API_RENDERER_H */
MILLICAST_API
#define MILLICAST_API
Definition
exports.h:51
frames.h
source.h
api
millicast-sdk
renderer.h
Generated by
1.18.0