Agora C++ API Reference for All Platforms
video_node_i.h
1 //
2 // Agora Media SDK
3 //
4 // Created by Sting Feng in 2015-05.
5 // Copyright (c) 2015 Agora IO. All rights reserved.
6 //
7 #pragma once
8 
9 #include <memory>
10 #include <string>
11 #include <vector>
12 
13 #include "AgoraRefPtr.h"
14 
15 #include "NGIAgoraCameraCapturer.h"
16 #include "NGIAgoraVideoMixerSource.h"
17 #include "NGIAgoraMediaNodeFactory.h"
18 #include "NGIAgoraMediaNode.h"
19 #include "api/video/video_frame.h"
20 
21 namespace webrtc {
22 class VideoFrame;
23 } // namespace webrtc
24 
25 namespace rtc {
26 struct VideoSinkWants;
27 
28 template <typename VideoFrameT>
30 } // namespace rtc
31 
32 namespace agora {
33 namespace rtc {
34 struct RenderFreezeStats;
35 
40 };
41 
43  uintptr_t handle;
44  bool mirror;
46 };
47 
48 static const char* const BUILT_IN_SOURCE_FILTER = "built-in-source-filter";
49 static const char* const BUILT_IN_METADATA_OBSERVER = "built-in-metadata-observer";
50 static const char* const BUILT_IN_ADAPTER = "built-in-adapter";
51 static const char* const BUILT_IN_PRE_ENCODER_WATERMARK_FILTER = "built-in-pre-encoder-watermarker";
52 static const char* const BUILT_IN_POST_CAPTURER_WATERMARK_FILTER = "built-in-post-capturer-watermarker";
53 static const char* const BUILT_IN_PREVIEW_TEE = "built-in-preview-tee";
54 static const char* const BUILT_IN_MAJOR_TEE = "built-in-major-tee";
55 static const char* const BUILT_IN_MINOR_TEE = "built-in-minor-tee";
56 static const char* const BUILT_IN_MINOR_ADAPTER = "built-in-minor-adapter";
57 static const char* const BUILT_IN_POST_CAPTURER_FILTER_OBSERVER = "built-in-post-capturer-filter-observer";
58 static const char* const BUILT_IN_PRE_ENCODER_FILTER_OBSERVER = "built-in-pre-encoder-filter-observer";
59 
62 class IVideoFilterEx : public IVideoFilter {
63  public:
65  // Internal node can use webrtc video frame directly to reduce copy operation.
66  virtual bool adaptVideoFrame(const webrtc::VideoFrame& capturedFrame,
67  webrtc::VideoFrame& adaptedFrame) = 0;
68  // TODO(Bob): This should be moved to node base.
69  virtual void onSinkWantsChanged(const ::rtc::VideoSinkWants& wants) = 0;
70  bool isExternal() override { return false; }
71  virtual void attachStatsSpace(uint64_t stats_space) {}
72 
73  protected:
75 };
76 
80  public:
81  // Requests the output frame size and frame interval from
82  // |AdaptFrameResolution| to not be larger than |format|. Also, the input
83  // frame size will be cropped to match the requested aspect ratio. When "fixed"
84  // is set false, the requested aspect ratio is orientation agnostic
85  // and will be adjusted to maintain the input orientation, so it doesn't matter
86  // if e.g. 1280x720 or 720x1280 is requested. Otherwise, the output format is
87  // fixed. The input frame may be cropped and rotated to meet the output format.
88  virtual void setOutputFormat(const VideoFormat& format, bool fixed = false) = 0;
89 
90  // Request the output frame in a fixed rotation.
91  virtual void setOutputRotation(webrtc::VideoRotation rotation) {}
92 
93  // mirror the frame
94  virtual void setMirror(bool mirror) {}
95 
96  protected:
98 };
99 
101  CAMERA_OUTPUT_RAW = 0, // YUV
102  CAMERA_OUTPUT_TEXTURE = 1, // Texture
103  CAMERA_OUTPUT_TEXTURE_AND_RAW = 2, // YUV && Texture
104 };
105 
107  public:
108  virtual ~ICameraCapturerEx() {}
109 
110 #if defined(__ANDROID__) || defined(TARGET_OS_IPHONE)
111  virtual void setPreviewInfo(const PreviewMetaInfo& info) {}
112 #endif
113 
114 #if defined(__ANDROID__)
117  virtual void setCameraSelected(int module_selected) = 0;
118  virtual void setCameraSelectedLevel(int camera_selected_level) = 0;
119  virtual void setCameraPqFirst(bool pq_first) = 0;
120 #endif
121 
122 #if defined(WEBRTC_IOS)
123  virtual void setCameraDropCount(int dropcount) = 0;
124  virtual void setHDRCaptureEnable(bool enableHDRCapture) = 0;
125 #endif
126  virtual void setColorSpaceInfo(webrtc::ColorSpace colorSpace) = 0;
127 
128 #if defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__)) || \
129  (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
130  virtual std::string getDeviceId() = 0;
131 #endif
132  // Requests the output frame size and frame rate. It takes effect
133  // only if regulator is enabled.
134  // The output frame size will be cropped to match the requested aspect
135  // ratio, and frame rate will not be larger than the requested value.
136  // When "fixed" is set false, the requested aspect ratio is orientation
137  // agnostic, so it doesn't matter if e.g. 1280x720 or 720x1280 is requested.
138  // Otherwise, the aspect ratio of output frame is fixed.
139  virtual void setOutputFormat(const rtc::VideoFormat& format, bool fixed = false) = 0;
140  virtual void enableRegulator(bool enable) = 0;
141  virtual bool regulatorEnabled() = 0;
142 };
143 
145  public:
147  virtual int onFrame(const webrtc::VideoFrame& videoFrame) {
148  (void)videoFrame;
149  return -ERR_NOT_SUPPORTED;
150  }
151 
152  int setView(void* view) override {
153  (void) view;
154  return -ERR_NOT_SUPPORTED;
155  }
156 
157  int addView(void* view, const Rectangle& cropArea) override {
158  (void) view;
159  (void) cropArea;
160  return -ERR_NOT_SUPPORTED;
161  }
162 
163  int removeView(void* view) override {
164  (void) view;
165  return -ERR_NOT_SUPPORTED;
166  }
167 
168  virtual int addViewEx(uintptr_t handle, const Rectangle& cropArea) {
169  (void) handle;
170  (void) cropArea;
171  return -ERR_NOT_SUPPORTED;
172  }
173 
174  virtual int addViewEx(uintptr_t handle) {
175  (void) handle;
176  return -ERR_NOT_SUPPORTED;
177  }
178 
179  virtual int removeViewEx(uintptr_t handle) {
180  (void) handle;
181  return unsetView();
182  }
183 
184  int setRenderMode(void* view, media::base::RENDER_MODE_TYPE renderMode) override {
185  (void) view;
186  (void) renderMode;
187  return -ERR_NOT_SUPPORTED;
188  }
189 
190  int setMirror(void* view, bool mirror) override {
191  (void) view;
192  (void) mirror;
193  return -ERR_NOT_SUPPORTED;
194  }
195 
197  virtual int setRenderModeEx(uintptr_t handle, media::base::RENDER_MODE_TYPE renderMode) {
198  (void) handle;
199  return setRenderMode(renderMode);
200  }
201 
203  virtual int setMirrorEx(uintptr_t handle, bool mirror) {
204  (void) handle;
205  return setMirror(mirror);
206  }
207 
208  virtual void attachUserInfo(uid_t uid, uint64_t state_space) {
209  (void) uid;
210  (void) state_space;
211  }
212 
213  virtual int getViewMetaInfo(PreviewMetaInfo& info) {
214  (void) info;
215  return -ERR_NOT_SUPPORTED;
216  }
217 
218  virtual int getViewMetaInfo(uintptr_t handle, PreviewMetaInfo& info) {
219  (void) handle;
220  (void) info;
221  return -ERR_NOT_SUPPORTED;
222  }
223 
224  virtual int getViewCount() {
225  return -ERR_NOT_SUPPORTED;
226  }
227 
228  virtual int clearBuffer() {
229  return -ERR_NOT_SUPPORTED;
230  }
231 };
232 
234  public:
236 
237  protected:
239 };
240 
242  public:
244 
245  protected:
247 };
248 
250  std::string image;
252  int width;
253  int height;
255  // int64_t renderTimeInMs;
259  int64_t captureTimeMs;
260 };
261 
262 struct CameraInfo {
263  bool inUse;
264  std::string deviceName;
265  std::string deviceId;
266 };
267 using CameraInfoList = std::vector<CameraInfo>;
268 
270  public:
273 };
274 
276  public:
279  VIDEO_STREAM_TYPE stream_type) = 0;
281  VIDEO_STREAM_TYPE stream_type) = 0;
282  virtual void AttachStatSpace(uint64_t stats_space) = 0;
283  virtual void DetachStatSpace(uint64_t stats_space) = 0;
284 
285  virtual int getWidth() const = 0;
286  virtual int getHeight() const = 0;
287 };
288 
290  public:
292 
293  virtual ~IVideoFrameSenderEx() {}
294 
295  virtual int sendVideoFrame(const webrtc::VideoFrame& videoFrame) = 0;
296 
298  ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
299  virtual void DeRegisterVideoFrameCallback() = 0;
300 
301  virtual int getVideoFrame(webrtc::VideoFrame& videoFrame) = 0;
302  virtual bool pushMode() = 0;
303 };
304 
306  public:
307  virtual ~IVideoMixerSourceEx() = default;
309  ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
311  virtual void onFrame(const std::string& uid, const webrtc::VideoFrame& frame) = 0;
312  virtual void startMixing() = 0;
313  virtual void stopMixing() = 0;
314  virtual bool hasVideoTrack(const std::string& id) = 0;
315 };
316 
318  public:
319  virtual int onFrame(const webrtc::VideoFrame& videoFrame) = 0;
320  virtual void registerFrameCallback(
321  ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
323  virtual void observeTxDelay(ILocalVideoTrack* track) = 0;
324 };
325 
326 static const char* const GLFW_RESOURCE = "glfw_resource";
328  const char* resource_name = nullptr;
329  int (*init_func)(void*) = nullptr;
330  int (*deinit_func)(void*) = nullptr;
331  void* context = nullptr;
332  bool fixed_thread = true;
333  bool init_once = false;
334 };
335 
337  public:
338  virtual ~IExtensionVideoFilterControlEx() = default;
339  virtual int ReportCounter(int32_t counter_id, int32_t value) = 0;
340  virtual int ReportEvent(int32_t event_id, void* event) = 0;
341  virtual int DeclareGlobalResource(const GlobalResourceMetaInfo& meta_info, int& resource_count) = 0;
342  virtual int ReleaseGlobalResource(const GlobalResourceMetaInfo& meta_info, int& resource_count) = 0;
343  virtual void NotifySrDelay(int sr_delay_ms) = 0;
344 };
345 
346 } // namespace rtc
347 } // namespace agora
agora::rtc::IVideoRendererEx::removeView
int removeView(void *view) override
Definition: video_node_i.h:163
agora::rtc::IObservableVideoFilter::setVideoFrameObserver
virtual void setVideoFrameObserver(agora::media::IVideoFrameObserver *observer)
Definition: video_node_i.h:243
agora::rtc::CameraInfo::deviceName
std::string deviceName
Definition: video_node_i.h:264
agora::rtc::VideoEncodedImageData::framesPerSecond
int framesPerSecond
Definition: video_node_i.h:254
agora::rtc::IVideoEncodedImageSenderEx
Definition: video_node_i.h:275
agora::rtc::IVideoMixerSourceEx::~IVideoMixerSourceEx
virtual ~IVideoMixerSourceEx()=default
agora::rtc::ICameraCapturerEx::setCameraDropCount
virtual void setCameraDropCount(int dropcount)=0
agora::rtc::IVideoFrameSender::sendVideoFrame
virtual int sendVideoFrame(const media::base::ExternalVideoFrame &videoFrame)=0
agora::rtc::CAMERA_OUTPUT_DATA_TYPE
CAMERA_OUTPUT_DATA_TYPE
Definition: video_node_i.h:100
agora::rtc::IVideoFrameAdapter
Definition: video_node_i.h:79
agora::rtc::IVideoFilterBase::adaptVideoFrame
virtual bool adaptVideoFrame(const media::base::VideoFrame &capturedFrame, media::base::VideoFrame &adaptedFrame)=0
agora::rtc::IVideoMixerSourceEx::registerMixedFrameCallback
virtual void registerMixedFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::BUILT_IN_MAJOR_TEE
static const char *const BUILT_IN_MAJOR_TEE
Definition: video_node_i.h:54
agora::rtc::IVideoFrameTransceiver
Definition: NGIAgoraMediaNode.h:853
agora::rtc::RENDERER_EXT_OBSERVER
@ RENDERER_EXT_OBSERVER
Definition: video_node_i.h:39
agora::rtc::GlobalResourceMetaInfo::fixed_thread
bool fixed_thread
Definition: video_node_i.h:332
agora::rtc::IObservableVideoFilter
Definition: video_node_i.h:241
agora::rtc::IExtensionVideoFilterControlEx
Definition: video_node_i.h:336
webrtc
Definition: common_defines.h:11
agora::rtc::IVideoFrameSenderEx::pushMode
virtual bool pushMode()=0
agora::rtc::Rectangle
Definition: AgoraBase.h:1930
agora::rtc::IVideoRendererEx::removeViewEx
virtual int removeViewEx(uintptr_t handle)
Definition: video_node_i.h:179
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:1142
agora::rtc::IVideoRenderer::unsetView
virtual int unsetView()=0
agora::rtc::VideoEncodedImageData::image
std::string image
Definition: video_node_i.h:250
agora::rtc::IVideoFilterEx::adaptVideoFrame
virtual bool adaptVideoFrame(const webrtc::VideoFrame &capturedFrame, webrtc::VideoFrame &adaptedFrame)=0
agora::rtc::BUILT_IN_PREVIEW_TEE
static const char *const BUILT_IN_PREVIEW_TEE
Definition: video_node_i.h:53
agora::rtc::IVideoMixerSourceEx::deRegisterMixedFrameCallback
virtual void deRegisterMixedFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
agora::rtc::IVideoRendererEx::attachUserInfo
virtual void attachUserInfo(uid_t uid, uint64_t state_space)
Definition: video_node_i.h:208
agora::rtc::VideoEncodedImageData::frameType
VIDEO_FRAME_TYPE frameType
Definition: video_node_i.h:251
agora::rtc::ICameraCapturerEx::setHDRCaptureEnable
virtual void setHDRCaptureEnable(bool enableHDRCapture)=0
agora::rtc::IVideoEncodedImageCallback::~IVideoEncodedImageCallback
virtual ~IVideoEncodedImageCallback()
Definition: video_node_i.h:271
agora::rtc::ICameraCapturerEx::getCameraOutputDataType
virtual CAMERA_OUTPUT_DATA_TYPE getCameraOutputDataType()=0
agora::rtc::IVideoRendererEx::onFrame
virtual int onFrame(const webrtc::VideoFrame &videoFrame)
Definition: video_node_i.h:147
agora::rtc::IExtensionVideoFilterControlEx::ReportCounter
virtual int ReportCounter(int32_t counter_id, int32_t value)=0
agora::rtc::BUILT_IN_POST_CAPTURER_WATERMARK_FILTER
static const char *const BUILT_IN_POST_CAPTURER_WATERMARK_FILTER
Definition: video_node_i.h:52
agora::rtc::CAMERA_OUTPUT_RAW
@ CAMERA_OUTPUT_RAW
Definition: video_node_i.h:101
agora::rtc::IVideoEncodedImageSender
Definition: NGIAgoraMediaNode.h:675
agora::rtc::BUILT_IN_PRE_ENCODER_FILTER_OBSERVER
static const char *const BUILT_IN_PRE_ENCODER_FILTER_OBSERVER
Definition: video_node_i.h:58
agora::rtc::CameraInfoList
std::vector< CameraInfo > CameraInfoList
Definition: video_node_i.h:267
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::IVideoMixerSourceEx
Definition: video_node_i.h:305
agora::rtc::ICameraCapturerEx::setColorSpaceInfo
virtual void setColorSpaceInfo(webrtc::ColorSpace colorSpace)=0
agora::rtc::IVideoFrameSenderEx::getVideoFrame
virtual int getVideoFrame(webrtc::VideoFrame &videoFrame)=0
agora::rtc::IVideoRendererEx::addView
int addView(void *view, const Rectangle &cropArea) override
Definition: video_node_i.h:157
agora::rtc::IVideoRendererEx::setMirror
int setMirror(void *view, bool mirror) override
Definition: video_node_i.h:190
agora::rtc::BUILT_IN_MINOR_ADAPTER
static const char *const BUILT_IN_MINOR_ADAPTER
Definition: video_node_i.h:56
agora::rtc::IVideoMixerSourceEx::startMixing
virtual void startMixing()=0
agora::rtc::IVideoFrameSenderEx::DeRegisterVideoFrameCallback
virtual void DeRegisterVideoFrameCallback()=0
agora::rtc::GlobalResourceMetaInfo::deinit_func
int(* deinit_func)(void *)
Definition: video_node_i.h:330
agora::rtc::GLFW_RESOURCE
static const char *const GLFW_RESOURCE
Definition: video_node_i.h:326
agora::rtc::VideoFormat
Definition: AgoraBase.h:2567
agora::rtc::GlobalResourceMetaInfo
Definition: video_node_i.h:327
agora::rtc::VIDEO_CODEC_TYPE
VIDEO_CODEC_TYPE
Definition: AgoraBase.h:1124
agora::rtc::RENDERER_BUILT_IN_RENDERER
@ RENDERER_BUILT_IN_RENDERER
Definition: video_node_i.h:38
agora::rtc::IObservableVideoFilter::~IObservableVideoFilter
~IObservableVideoFilter()
Definition: video_node_i.h:246
agora::rtc::IVideoFrameSenderEx::~IVideoFrameSenderEx
virtual ~IVideoFrameSenderEx()
Definition: video_node_i.h:293
agora::rtc::RENDERER_NONE
@ RENDERER_NONE
Definition: video_node_i.h:37
agora::rtc::GlobalResourceMetaInfo::context
void * context
Definition: video_node_i.h:331
agora::rtc::VIDEO_ORIENTATION
VIDEO_ORIENTATION
Definition: AgoraBase.h:933
agora::rtc::IVideoFilterEx::attachStatsSpace
virtual void attachStatsSpace(uint64_t stats_space)
Definition: video_node_i.h:71
agora::rtc::IVideoFrameSenderEx::sendVideoFrame
virtual int sendVideoFrame(const webrtc::VideoFrame &videoFrame)=0
agora::rtc::ICameraCapturerEx::setCameraSelected
virtual void setCameraSelected(int module_selected)=0
agora::rtc::IVideoRendererEx::setView
int setView(void *view) override
Definition: video_node_i.h:152
agora::rtc::IExtensionVideoFilterControlEx::ReleaseGlobalResource
virtual int ReleaseGlobalResource(const GlobalResourceMetaInfo &meta_info, int &resource_count)=0
agora::rtc::ICameraCapturer
Definition: NGIAgoraCameraCapturer.h:19
agora::rtc::ILocalVideoTrack
Definition: NGIAgoraVideoTrack.h:292
agora::rtc::BUILT_IN_MINOR_TEE
static const char *const BUILT_IN_MINOR_TEE
Definition: video_node_i.h:55
agora::rtc::IVideoFrameSenderEx
Definition: video_node_i.h:289
agora::rtc::VIDEO_FRAME_TYPE
VIDEO_FRAME_TYPE
Definition: AgoraBase.h:998
agora::rtc::CameraInfo::inUse
bool inUse
Definition: video_node_i.h:263
agora::rtc::IVideoFilterEx::onSinkWantsChanged
virtual void onSinkWantsChanged(const ::rtc::VideoSinkWants &wants)=0
agora::rtc::IVideoRendererEx::getViewMetaInfo
virtual int getViewMetaInfo(uintptr_t handle, PreviewMetaInfo &info)
Definition: video_node_i.h:218
agora::rtc::ICameraCapturerEx::setOutputFormat
virtual void setOutputFormat(const rtc::VideoFormat &format, bool fixed=false)=0
agora::rtc::IVideoFrameTransceiverEx
Definition: video_node_i.h:317
agora::rtc::IVideoEncodedImageSenderEx::DeRegisterEncodedImageCallback
virtual void DeRegisterEncodedImageCallback(IVideoEncodedImageCallback *dataCallback, VIDEO_STREAM_TYPE stream_type)=0
agora::rtc::IVideoMixerSourceEx::hasVideoTrack
virtual bool hasVideoTrack(const std::string &id)=0
agora::rtc::IExtensionVideoFilterControlEx::ReportEvent
virtual int ReportEvent(int32_t event_id, void *event)=0
agora::rtc::IVideoMixerSource
Definition: NGIAgoraVideoMixerSource.h:44
agora::rtc::IVideoFrameTransceiverEx::deRegisterFrameCallback
virtual void deRegisterFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
agora::rtc::IVideoFrameTransceiverEx::registerFrameCallback
virtual void registerFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
agora::rtc::IVideoSinkBase::onFrame
virtual int onFrame(const media::base::VideoFrame &videoFrame)=0
agora::rtc::ICameraCapturerEx::setPreviewInfo
virtual void setPreviewInfo(const PreviewMetaInfo &info)
Definition: video_node_i.h:111
agora::rtc::VideoEncodedImageData::captureTimeMs
int64_t captureTimeMs
Definition: video_node_i.h:259
agora::rtc::IVideoEncodedImageSenderEx::getHeight
virtual int getHeight() const =0
agora::rtc::IVideoFilterEx::~IVideoFilterEx
~IVideoFilterEx()
Definition: video_node_i.h:74
agora::rtc::IExtensionVideoFilterControlEx::DeclareGlobalResource
virtual int DeclareGlobalResource(const GlobalResourceMetaInfo &meta_info, int &resource_count)=0
agora::rtc::CameraInfo
Definition: video_node_i.h:262
agora::rtc::IVideoRenderer
Definition: NGIAgoraMediaNode.h:774
agora::rtc::IVideoEncodedImageCallback::OnVideoEncodedImage
virtual void OnVideoEncodedImage(agora_refptr< VideoEncodedImageData > data)=0
agora::rtc::ICameraCapturerEx::enableRegulator
virtual void enableRegulator(bool enable)=0
agora::rtc::IVideoRenderer::setRenderMode
virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode)=0
agora::rtc::IVideoEncodedImageSenderEx::getWidth
virtual int getWidth() const =0
agora::rtc::PreviewMetaInfo
Definition: video_node_i.h:42
agora::rtc::IVideoFrameAdapter::~IVideoFrameAdapter
~IVideoFrameAdapter()
Definition: video_node_i.h:97
agora::rtc::GlobalResourceMetaInfo::init_once
bool init_once
Definition: video_node_i.h:333
agora::rtc::CAMERA_OUTPUT_TEXTURE_AND_RAW
@ CAMERA_OUTPUT_TEXTURE_AND_RAW
Definition: video_node_i.h:103
agora::rtc::IVideoRendererEx::setRenderModeEx
virtual int setRenderModeEx(uintptr_t handle, media::base::RENDER_MODE_TYPE renderMode)
Definition: video_node_i.h:197
agora::media::base::RENDER_MODE_TYPE
RENDER_MODE_TYPE
Definition: AgoraMediaBase.h:462
agora::rtc::IVideoRendererEx::addViewEx
virtual int addViewEx(uintptr_t handle)
Definition: video_node_i.h:174
agora::rtc::PreviewMetaInfo::render_mode
media::base::RENDER_MODE_TYPE render_mode
Definition: video_node_i.h:45
agora::rtc::PreviewMetaInfo::mirror
bool mirror
Definition: video_node_i.h:44
agora::rtc::IExtensionVideoFilter::Control
Definition: NGIAgoraMediaNode.h:266
agora::rtc::IVideoEncodedImageSenderEx::DetachStatSpace
virtual void DetachStatSpace(uint64_t stats_space)=0
agora::rtc::IVideoRendererEx::getViewCount
virtual int getViewCount()
Definition: video_node_i.h:224
agora::rtc::IVideoFrameTransceiverEx::observeTxDelay
virtual void observeTxDelay(ILocalVideoTrack *track)=0
agora::ERR_NOT_SUPPORTED
@ ERR_NOT_SUPPORTED
Definition: AgoraBase.h:474
agora::rtc::BUILT_IN_POST_CAPTURER_FILTER_OBSERVER
static const char *const BUILT_IN_POST_CAPTURER_FILTER_OBSERVER
Definition: video_node_i.h:57
agora::rtc::IVideoRendererEx::clearBuffer
virtual int clearBuffer()
Definition: video_node_i.h:228
agora::rtc::IVideoEncodedImageSenderEx::RegisterEncodedImageCallback
virtual void RegisterEncodedImageCallback(IVideoEncodedImageCallback *dataCallback, VIDEO_STREAM_TYPE stream_type)=0
agora::rtc::VideoEncodedImageData::rotation
VIDEO_ORIENTATION rotation
Definition: video_node_i.h:256
agora::rtc::BUILT_IN_SOURCE_FILTER
static const char *const BUILT_IN_SOURCE_FILTER
Definition: video_node_i.h:48
agora::rtc::IVideoEncodedImageCallback
Definition: video_node_i.h:269
agora::rtc::InternalRendererType
InternalRendererType
Definition: video_node_i.h:36
agora::rtc::IVideoFrameSenderEx::RegisterVideoFrameCallback
virtual void RegisterVideoFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
agora::rtc::IVideoFrameSender
Definition: NGIAgoraMediaNode.h:651
agora::rtc::GlobalResourceMetaInfo::resource_name
const char * resource_name
Definition: video_node_i.h:328
agora::rtc::IObservableVideoSink
Definition: video_node_i.h:233
agora::rtc::IVideoEncodedImageSenderEx::~IVideoEncodedImageSenderEx
virtual ~IVideoEncodedImageSenderEx()
Definition: video_node_i.h:277
agora::rtc::BUILT_IN_PRE_ENCODER_WATERMARK_FILTER
static const char *const BUILT_IN_PRE_ENCODER_WATERMARK_FILTER
Definition: video_node_i.h:51
agora::rtc::ICameraCapturerEx::setCameraOutputDataType
virtual void setCameraOutputDataType(CAMERA_OUTPUT_DATA_TYPE type)=0
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::CameraInfo::deviceId
std::string deviceId
Definition: video_node_i.h:265
agora::rtc::BUILT_IN_METADATA_OBSERVER
static const char *const BUILT_IN_METADATA_OBSERVER
Definition: video_node_i.h:49
agora::rtc::ICameraCapturerEx::getDeviceId
virtual std::string getDeviceId()=0
agora::rtc::IExtensionVideoFilterControlEx::~IExtensionVideoFilterControlEx
virtual ~IExtensionVideoFilterControlEx()=default
agora::rtc::VIDEO_STREAM_TYPE
VIDEO_STREAM_TYPE
Definition: AgoraBase.h:1494
agora::rtc::IVideoRendererEx::getViewMetaInfo
virtual int getViewMetaInfo(PreviewMetaInfo &info)
Definition: video_node_i.h:213
agora::rtc::ICameraCapturerEx::~ICameraCapturerEx
virtual ~ICameraCapturerEx()
Definition: video_node_i.h:108
agora::rtc::IVideoFrameTransceiverEx::onFrame
virtual int onFrame(const webrtc::VideoFrame &videoFrame)=0
agora::rtc::IVideoEncodedImageSenderEx::AttachStatSpace
virtual void AttachStatSpace(uint64_t stats_space)=0
agora::rtc::IVideoFilterEx::isExternal
bool isExternal() override
Definition: video_node_i.h:70
agora::rtc::IVideoRendererEx
Definition: video_node_i.h:144
agora::rtc::IVideoFilterEx
Definition: video_node_i.h:62
agora::rtc::VideoEncodedImageData::codec
VIDEO_CODEC_TYPE codec
Definition: video_node_i.h:257
agora::rtc::ICameraCapturerEx
Definition: video_node_i.h:106
agora::rtc::IVideoRendererEx::setRenderMode
int setRenderMode(void *view, media::base::RENDER_MODE_TYPE renderMode) override
Definition: video_node_i.h:184
agora::rtc::VideoEncodedImageData
Definition: video_node_i.h:249
agora::rtc::IExtensionVideoFilterControlEx::NotifySrDelay
virtual void NotifySrDelay(int sr_delay_ms)=0
agora::rtc::GlobalResourceMetaInfo::init_func
int(* init_func)(void *)
Definition: video_node_i.h:329
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:29
agora::rtc::IObservableVideoSink::~IObservableVideoSink
~IObservableVideoSink()
Definition: video_node_i.h:238
agora::rtc::VideoEncodedImageData::height
int height
Definition: video_node_i.h:253
agora::rtc::CAMERA_OUTPUT_TEXTURE
@ CAMERA_OUTPUT_TEXTURE
Definition: video_node_i.h:102
agora::rtc::IVideoFrameAdapter::setOutputRotation
virtual void setOutputRotation(webrtc::VideoRotation rotation)
Definition: video_node_i.h:91
agora::rtc::IVideoMixerSourceEx::onFrame
virtual void onFrame(const std::string &uid, const webrtc::VideoFrame &frame)=0
rtc::VideoSinkInterface
Definition: video_node_i.h:29
agora::rtc::IVideoRenderer::setMirror
virtual int setMirror(bool mirror)=0
agora::rtc::BUILT_IN_ADAPTER
static const char *const BUILT_IN_ADAPTER
Definition: video_node_i.h:50
agora::rtc::PreviewMetaInfo::handle
uintptr_t handle
Definition: video_node_i.h:43
agora::rtc::ICameraCapturerEx::setCameraSelectedLevel
virtual void setCameraSelectedLevel(int camera_selected_level)=0
agora::rtc::IVideoFilter
Definition: NGIAgoraMediaNode.h:170
agora::rtc::VideoEncodedImageData::streamType
VIDEO_STREAM_TYPE streamType
Definition: video_node_i.h:258
agora::rtc::IVideoRendererEx::addViewEx
virtual int addViewEx(uintptr_t handle, const Rectangle &cropArea)
Definition: video_node_i.h:168
agora::rtc::IVideoFrameAdapter::setOutputFormat
virtual void setOutputFormat(const VideoFormat &format, bool fixed=false)=0
agora::rtc::IObservableVideoSink::setVideoFrameObserver
virtual void setVideoFrameObserver(agora::media::IVideoFrameObserver *observer)
Definition: video_node_i.h:235
rtc
Definition: video_node_i.h:25
agora::rtc::IVideoMixerSourceEx::stopMixing
virtual void stopMixing()=0
agora::rtc::IVideoRendererEx::setMirrorEx
virtual int setMirrorEx(uintptr_t handle, bool mirror)
Definition: video_node_i.h:203
agora::rtc::IVideoFrameAdapter::setMirror
virtual void setMirror(bool mirror)
Definition: video_node_i.h:94
agora::rtc::ICameraCapturerEx::setCameraPqFirst
virtual void setCameraPqFirst(bool pq_first)=0
agora::rtc::VideoEncodedImageData::width
int width
Definition: video_node_i.h:252
agora::rtc::ICameraCapturerEx::regulatorEnabled
virtual bool regulatorEnabled()=0