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 #include "main/core/video/stats_and_events/video_stats_events_pusher.h"
21 
22 namespace webrtc {
23 class VideoFrame;
24 } // namespace webrtc
25 
26 namespace rtc {
27 struct VideoSinkWants;
28 
29 template <typename VideoFrameT>
31 } // namespace rtc
32 
33 namespace agora {
34 namespace rtc {
35 struct RenderFreezeStats;
36 
41 };
42 
44  uintptr_t handle;
45  bool mirror;
46  bool vsync_mode;
48 };
49 
50 static const char* const BUILT_IN_SOURCE_FILTER = "built-in-source-filter";
51 static const char* const BUILT_IN_METADATA_OBSERVER = "built-in-metadata-observer";
52 static const char* const BUILT_IN_ADAPTER = "built-in-adapter";
53 static const char* const BUILT_IN_PRE_ENCODER_WATERMARK_FILTER = "built-in-pre-encoder-watermarker";
54 static const char* const BUILT_IN_POST_CAPTURER_WATERMARK_FILTER = "built-in-post-capturer-watermarker";
55 
56 static const char* const BUILT_IN_PRE_ENCODER_FACEDETECE_FILTER = "built-in-pre-encoder-facedetect";
57 
58 static const char* const BUILT_IN_PREVIEW_TEE = "built-in-preview-tee";
59 static const char* const BUILT_IN_MAJOR_TEE = "built-in-major-tee";
60 static const char* const BUILT_IN_MINOR_TEE = "built-in-minor-tee";
61 static const char* const BUILT_IN_MINOR_ADAPTER = "built-in-minor-adapter";
62 static const char* const BUILT_IN_POST_CAPTURER_FILTER_OBSERVER = "built-in-post-capturer-filter-observer";
63 static const char* const BUILT_IN_PRE_ENCODER_FILTER_OBSERVER = "built-in-pre-encoder-filter-observer";
64 static const char* const BUILT_IN_POST_CAPTURER_FILTER_FRAME_OBSERVER = "CaptureFilterModeObserver";
65 static const char* const BUILT_IN_PRE_ENCODER_FILTER_FRAME_OBSERVER = "PreEncoderFilterModeObserver";
66 
69 class IVideoFilterEx : public IVideoFilter {
70  public:
72  // Internal node can use webrtc video frame directly to reduce copy operation.
73  virtual bool adaptVideoFrame(const webrtc::VideoFrame& capturedFrame,
74  webrtc::VideoFrame& adaptedFrame) = 0;
75  // TODO(Bob): This should be moved to node base.
76  virtual void onSinkWantsChanged(const ::rtc::VideoSinkWants& wants) = 0;
77  bool isExternal() override { return false; }
78  virtual void attachStatsSpace(uint64_t stats_space) {}
79  virtual void setVideoQoEPusher(std::weak_ptr<VideoStatsEventsPusher> pusher) {}
80  virtual void onDropFrame(agora::rtc::VideoQoEDropType drop_type) {}
81  virtual void SetFilterId(std::string id) {}
82 
83  protected:
85 };
86 
90  public:
91  // Requests the output frame size and frame interval from
92  // |AdaptFrameResolution| to not be larger than |format|. Also, the input
93  // frame size will be cropped to match the requested aspect ratio. When "fixed"
94  // is set false, the requested aspect ratio is orientation agnostic
95  // and will be adjusted to maintain the input orientation, so it doesn't matter
96  // if e.g. 1280x720 or 720x1280 is requested. Otherwise, the output format is
97  // fixed. The input frame may be cropped and rotated to meet the output format.
98  virtual void setOutputFormat(const VideoFormat& format, bool fixed = false) = 0;
99 
100  // Request the output frame in a fixed rotation.
101  virtual void setOutputRotation(webrtc::VideoRotation rotation) {}
102 
103  // mirror the frame
104  virtual void setMirror(bool mirror) {}
105 
106  protected:
108 };
109 
111  CAMERA_OUTPUT_RAW = 0, // YUV
112  CAMERA_OUTPUT_TEXTURE = 1, // Texture
113  CAMERA_OUTPUT_TEXTURE_AND_RAW = 2, // YUV && Texture
114 };
115 
117  public:
118  virtual ~ICameraCapturerEx() {}
119 
120 #if defined(__ANDROID__) || defined(TARGET_OS_IPHONE)
121  virtual void setPreviewInfo(const PreviewMetaInfo& info) {}
122 #endif
123 
124 #if defined(__ANDROID__)
127  virtual void setCameraSelected(int module_selected) = 0;
128  virtual void setCameraSelectedLevel(int camera_selected_level) = 0;
129  virtual void setCameraPqFirst(bool pq_first) = 0;
130  virtual void setCameraSkipControl(int skip_control) = 0;
131  virtual void setVideoStabilityMode(int mode) = 0;
132  virtual int setCameraSourceWithCameraId(CAMERA_SOURCE source,const char* camera_id) = 0;
133  virtual void switchCameraId(const char* cameraId) = 0;
134 #endif
135 
136 #if defined(WEBRTC_IOS)
137  virtual void setCameraDropCount(int dropcount) = 0;
138  virtual void setHDRCaptureEnable(bool enableHDRCapture) = 0;
139 #endif
140  virtual void setColorSpaceInfo(webrtc::ColorSpace colorSpace) = 0;
141 
142 #if defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__)) || \
143  (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
144  virtual std::string getDeviceId() = 0;
145 #endif
146  // Requests the output frame size and frame rate.
147  // The output frame size will be cropped to match the requested aspect
148  // ratio, unless |bypass_resolution_adaption| is set true in which case
149  // no cropping is done. The output frame rate will not be larger than the
150  // requested value.
151  // When "fixed" is set false, the requested aspect ratio is orientation
152  // agnostic, so it doesn't matter if e.g. 1280x720 or 720x1280 is requested.
153  // Otherwise, the aspect ratio of output frame is fixed.
154  virtual void setOutputFormat(const rtc::VideoFormat& format, bool fixed = false, bool bypass_resolution_adaption = false) = 0;
155 };
156 
158  public:
159  struct ViewOption {
160  Rectangle cropArea = {0, 0, 0, 0};
161  webrtc::VideoRotation rotation = webrtc::VideoRotation::kVideoRotation_0;
162  bool enableAlphaMask = false;
163  uint32_t backgroundColor = 0;
164  };
165 
167  virtual int onFrame(const webrtc::VideoFrame& videoFrame) {
168  (void)videoFrame;
169  return -ERR_NOT_SUPPORTED;
170  }
171 
172  int setView(void* view) override {
173  (void) view;
174  return -ERR_NOT_SUPPORTED;
175  }
176 
177  int addView(void* view, const Rectangle& cropArea) override {
178  (void) view;
179  (void) cropArea;
180  return -ERR_NOT_SUPPORTED;
181  }
182 
183  int removeView(void* view) override {
184  (void) view;
185  return -ERR_NOT_SUPPORTED;
186  }
187 
188  virtual int addViewEx(uintptr_t handle, const ViewOption& option) {
189  (void) option;
190  return -ERR_NOT_SUPPORTED;
191  }
192 
193  virtual int addViewEx(uintptr_t handle) {
194  (void) handle;
195  return -ERR_NOT_SUPPORTED;
196  }
197 
198  virtual int removeViewEx(uintptr_t handle) {
199  (void) handle;
200  return unsetView();
201  }
202 
203  int setRenderMode(void* view, media::base::RENDER_MODE_TYPE renderMode) override {
204  (void) view;
205  (void) renderMode;
206  return -ERR_NOT_SUPPORTED;
207  }
208 
209  int setMirror(void* view, bool mirror) override {
210  (void) view;
211  (void) mirror;
212  return -ERR_NOT_SUPPORTED;
213  }
214 
215  int setRotation(void* view, VIDEO_ORIENTATION rotation) override {
216  (void) view;
217  (void) rotation;
218  return -ERR_NOT_SUPPORTED;
219  }
220 
222  virtual int setRenderModeEx(uintptr_t handle, media::base::RENDER_MODE_TYPE renderMode) {
223  (void) handle;
224  return setRenderMode(renderMode);
225  }
226 
228  virtual int setMirrorEx(uintptr_t handle, bool mirror) {
229  (void) handle;
230  return setMirror(mirror);
231  }
232 
234  virtual int setRotationEx(uintptr_t handle, VIDEO_ORIENTATION rotation) {
235  (void) handle;
236  return setRotation(rotation);
237  }
238 
239  virtual void attachUserInfo(uid_t uid, uint64_t state_space) {
240  (void) uid;
241  (void) state_space;
242  }
243 
244  virtual void SetVideoQoEPusher(std::weak_ptr<agora::rtc::VideoStatsEventsPusher> pusher) {
245  (void) pusher;
246  }
247 
248  virtual int getViewMetaInfo(PreviewMetaInfo& info) {
249  (void) info;
250  return -ERR_NOT_SUPPORTED;
251  }
252 
253  virtual int getViewMetaInfo(uintptr_t handle, PreviewMetaInfo& info) {
254  (void) handle;
255  (void) info;
256  return -ERR_NOT_SUPPORTED;
257  }
258 
259  virtual int getViewCount() {
260  return -ERR_NOT_SUPPORTED;
261  }
262 
263  virtual int clearBuffer() {
264  return -ERR_NOT_SUPPORTED;
265  }
266 };
267 
269  public:
271 
272  protected:
274 };
275 
277  public:
279 
280  protected:
282 };
283 
285  std::string image;
287  int width;
288  int height;
290  // int64_t renderTimeInMs;
294  int64_t captureTimeMs;
295  int64_t decodeTimeMs;
296 };
297 
298 struct CameraInfo {
299  bool inUse;
300  std::string deviceName;
301  std::string deviceId;
302  std::string deviceType;
303 };
304 using CameraInfoList = std::vector<CameraInfo>;
305 
307  public:
310 };
311 
313  public:
316  VIDEO_STREAM_TYPE stream_type) = 0;
318  VIDEO_STREAM_TYPE stream_type) = 0;
319  virtual void AttachStatSpace(uint64_t stats_space) = 0;
320  virtual void DetachStatSpace(uint64_t stats_space) = 0;
321 
322  virtual int getWidth() const = 0;
323  virtual int getHeight() const = 0;
324 };
325 
327  public:
329 
330  virtual ~IVideoFrameSenderEx() {}
331 
332  virtual int sendVideoFrame(const webrtc::VideoFrame& videoFrame) = 0;
333 
335  ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
336  virtual void DeRegisterVideoFrameCallback() = 0;
337 
338  virtual int getVideoFrame(webrtc::VideoFrame& videoFrame) = 0;
339  virtual bool pushMode() = 0;
340 };
341 
343  public:
344  virtual ~IVideoMixerSourceEx() = default;
346  ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
348  virtual void onFrame(const std::string& uid, const webrtc::VideoFrame& frame) = 0;
349  virtual void startMixing() = 0;
350  virtual void stopMixing() = 0;
351  virtual bool hasVideoTrack(const std::string& id) = 0;
352 };
353 
355  public:
356  virtual int onFrame(const webrtc::VideoFrame& videoFrame) = 0;
357  virtual void registerFrameCallback(
358  ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
360  virtual void observeTxDelay(ILocalVideoTrack* track) = 0;
361 };
362 
363 static const char* const GLFW_RESOURCE = "glfw_resource";
365  const char* resource_name = nullptr;
366  int (*init_func)(void*) = nullptr;
367  int (*deinit_func)(void*) = nullptr;
368  void* context = nullptr;
369  bool fixed_thread = true;
370  bool init_once = false;
371 };
372 
374  public:
375  virtual ~IExtensionVideoFilterControlEx() = default;
376  virtual int ReportCounter(int32_t counter_id, int32_t value) = 0;
377  virtual int ReportEvent(int32_t event_id, void* event) = 0;
378  virtual int DeclareGlobalResource(const GlobalResourceMetaInfo& meta_info, int& resource_count) = 0;
379  virtual int ReleaseGlobalResource(const GlobalResourceMetaInfo& meta_info, int& resource_count) = 0;
380  virtual void NotifySrDelay(int sr_delay_ms) = 0;
381 };
382 
383 } // namespace rtc
384 } // namespace agora
agora::rtc::IVideoRendererEx::removeView
int removeView(void *view) override
Definition: video_node_i.h:183
agora::rtc::IObservableVideoFilter::setVideoFrameObserver
virtual void setVideoFrameObserver(agora::media::IVideoFrameObserver *observer)
Definition: video_node_i.h:278
agora::rtc::CameraInfo::deviceType
std::string deviceType
Definition: video_node_i.h:302
agora::rtc::BUILT_IN_POST_CAPTURER_FILTER_FRAME_OBSERVER
static const char *const BUILT_IN_POST_CAPTURER_FILTER_FRAME_OBSERVER
Definition: video_node_i.h:64
agora::rtc::CameraInfo::deviceName
std::string deviceName
Definition: video_node_i.h:300
agora::rtc::IVideoRendererEx::setRotationEx
virtual int setRotationEx(uintptr_t handle, VIDEO_ORIENTATION rotation)
Definition: video_node_i.h:234
agora::rtc::VideoEncodedImageData::framesPerSecond
int framesPerSecond
Definition: video_node_i.h:289
agora::rtc::IVideoEncodedImageSenderEx
Definition: video_node_i.h:312
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:110
agora::rtc::ICameraCapturer::CAMERA_SOURCE
CAMERA_SOURCE
Definition: NGIAgoraCameraCapturer.h:25
agora::rtc::IVideoFrameAdapter
Definition: video_node_i.h:89
agora::rtc::ICameraCapturerEx::setOutputFormat
virtual void setOutputFormat(const rtc::VideoFormat &format, bool fixed=false, bool bypass_resolution_adaption=false)=0
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:59
agora::rtc::IVideoFrameTransceiver
Definition: NGIAgoraMediaNode.h:927
agora::rtc::RENDERER_EXT_OBSERVER
@ RENDERER_EXT_OBSERVER
Definition: video_node_i.h:40
agora::rtc::GlobalResourceMetaInfo::fixed_thread
bool fixed_thread
Definition: video_node_i.h:369
agora::rtc::IObservableVideoFilter
Definition: video_node_i.h:276
agora::rtc::IExtensionVideoFilterControlEx
Definition: video_node_i.h:373
agora::rtc::IVideoFilterEx::onDropFrame
virtual void onDropFrame(agora::rtc::VideoQoEDropType drop_type)
Definition: video_node_i.h:80
webrtc
Definition: common_defines.h:11
agora::rtc::IVideoFrameSenderEx::pushMode
virtual bool pushMode()=0
agora::rtc::Rectangle
Definition: AgoraBase.h:2007
agora::rtc::IVideoRendererEx::removeViewEx
virtual int removeViewEx(uintptr_t handle)
Definition: video_node_i.h:198
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:1382
agora::rtc::IVideoRenderer::unsetView
virtual int unsetView()=0
agora::rtc::VideoEncodedImageData::image
std::string image
Definition: video_node_i.h:285
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:58
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:239
agora::rtc::VideoEncodedImageData::frameType
VIDEO_FRAME_TYPE frameType
Definition: video_node_i.h:286
agora::rtc::ICameraCapturerEx::setHDRCaptureEnable
virtual void setHDRCaptureEnable(bool enableHDRCapture)=0
agora::rtc::IVideoEncodedImageCallback::~IVideoEncodedImageCallback
virtual ~IVideoEncodedImageCallback()
Definition: video_node_i.h:308
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:167
agora::rtc::PreviewMetaInfo::vsync_mode
bool vsync_mode
Definition: video_node_i.h:46
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:54
agora::rtc::CAMERA_OUTPUT_RAW
@ CAMERA_OUTPUT_RAW
Definition: video_node_i.h:111
agora::rtc::IVideoEncodedImageSender
Definition: NGIAgoraMediaNode.h:733
agora::rtc::BUILT_IN_PRE_ENCODER_FILTER_OBSERVER
static const char *const BUILT_IN_PRE_ENCODER_FILTER_OBSERVER
Definition: video_node_i.h:63
agora::rtc::ICameraCapturerEx::setVideoStabilityMode
virtual void setVideoStabilityMode(int mode)=0
agora::rtc::CameraInfoList
std::vector< CameraInfo > CameraInfoList
Definition: video_node_i.h:304
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::IVideoMixerSourceEx
Definition: video_node_i.h:342
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:177
agora::rtc::IVideoFilterEx::SetFilterId
virtual void SetFilterId(std::string id)
Definition: video_node_i.h:81
agora::rtc::IVideoRendererEx::ViewOption
Definition: video_node_i.h:159
agora::rtc::IVideoRendererEx::setMirror
int setMirror(void *view, bool mirror) override
Definition: video_node_i.h:209
agora::rtc::BUILT_IN_MINOR_ADAPTER
static const char *const BUILT_IN_MINOR_ADAPTER
Definition: video_node_i.h:61
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:367
agora::rtc::ICameraCapturerEx::setCameraSourceWithCameraId
virtual int setCameraSourceWithCameraId(CAMERA_SOURCE source, const char *camera_id)=0
agora::rtc::GLFW_RESOURCE
static const char *const GLFW_RESOURCE
Definition: video_node_i.h:363
agora::rtc::VideoFormat
Definition: AgoraBase.h:2495
agora::rtc::GlobalResourceMetaInfo
Definition: video_node_i.h:364
agora::rtc::VIDEO_CODEC_TYPE
VIDEO_CODEC_TYPE
Definition: AgoraBase.h:1150
agora::rtc::RENDERER_BUILT_IN_RENDERER
@ RENDERER_BUILT_IN_RENDERER
Definition: video_node_i.h:39
agora::rtc::IObservableVideoFilter::~IObservableVideoFilter
~IObservableVideoFilter()
Definition: video_node_i.h:281
agora::rtc::IVideoFrameSenderEx::~IVideoFrameSenderEx
virtual ~IVideoFrameSenderEx()
Definition: video_node_i.h:330
agora::rtc::RENDERER_NONE
@ RENDERER_NONE
Definition: video_node_i.h:38
agora::rtc::GlobalResourceMetaInfo::context
void * context
Definition: video_node_i.h:368
agora::rtc::IVideoFilterEx::setVideoQoEPusher
virtual void setVideoQoEPusher(std::weak_ptr< VideoStatsEventsPusher > pusher)
Definition: video_node_i.h:79
agora::rtc::VIDEO_ORIENTATION
VIDEO_ORIENTATION
Definition: AgoraBase.h:934
agora::rtc::IVideoFilterEx::attachStatsSpace
virtual void attachStatsSpace(uint64_t stats_space)
Definition: video_node_i.h:78
agora::rtc::IVideoFrameSenderEx::sendVideoFrame
virtual int sendVideoFrame(const webrtc::VideoFrame &videoFrame)=0
agora::rtc::VideoEncodedImageData::decodeTimeMs
int64_t decodeTimeMs
Definition: video_node_i.h:295
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:172
agora::rtc::IExtensionVideoFilterControlEx::ReleaseGlobalResource
virtual int ReleaseGlobalResource(const GlobalResourceMetaInfo &meta_info, int &resource_count)=0
agora::rtc::ICameraCapturer
Definition: NGIAgoraCameraCapturer.h:19
agora::rtc::BUILT_IN_PRE_ENCODER_FILTER_FRAME_OBSERVER
static const char *const BUILT_IN_PRE_ENCODER_FILTER_FRAME_OBSERVER
Definition: video_node_i.h:65
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:60
agora::rtc::IVideoFrameSenderEx
Definition: video_node_i.h:326
agora::rtc::VIDEO_FRAME_TYPE
VIDEO_FRAME_TYPE
Definition: AgoraBase.h:999
agora::rtc::CameraInfo::inUse
bool inUse
Definition: video_node_i.h:299
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:253
agora::rtc::IVideoFrameTransceiverEx
Definition: video_node_i.h:354
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::BUILT_IN_PRE_ENCODER_FACEDETECE_FILTER
static const char *const BUILT_IN_PRE_ENCODER_FACEDETECE_FILTER
Definition: video_node_i.h:56
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:121
agora::rtc::VideoEncodedImageData::captureTimeMs
int64_t captureTimeMs
Definition: video_node_i.h:294
agora::rtc::IVideoEncodedImageSenderEx::getHeight
virtual int getHeight() const =0
agora::rtc::IVideoFilterEx::~IVideoFilterEx
~IVideoFilterEx()
Definition: video_node_i.h:84
agora::rtc::IExtensionVideoFilterControlEx::DeclareGlobalResource
virtual int DeclareGlobalResource(const GlobalResourceMetaInfo &meta_info, int &resource_count)=0
agora::rtc::CameraInfo
Definition: video_node_i.h:298
agora::rtc::IVideoRenderer
Definition: NGIAgoraMediaNode.h:832
agora::rtc::IVideoEncodedImageCallback::OnVideoEncodedImage
virtual void OnVideoEncodedImage(agora_refptr< VideoEncodedImageData > data)=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:43
agora::rtc::IVideoFrameAdapter::~IVideoFrameAdapter
~IVideoFrameAdapter()
Definition: video_node_i.h:107
agora::rtc::GlobalResourceMetaInfo::init_once
bool init_once
Definition: video_node_i.h:370
agora::rtc::IVideoRendererEx::ViewOption::rotation
webrtc::VideoRotation rotation
Definition: video_node_i.h:161
agora::rtc::CAMERA_OUTPUT_TEXTURE_AND_RAW
@ CAMERA_OUTPUT_TEXTURE_AND_RAW
Definition: video_node_i.h:113
agora::rtc::IVideoRendererEx::setRenderModeEx
virtual int setRenderModeEx(uintptr_t handle, media::base::RENDER_MODE_TYPE renderMode)
Definition: video_node_i.h:222
agora::media::base::RENDER_MODE_TYPE
RENDER_MODE_TYPE
Definition: AgoraMediaBase.h:609
agora::rtc::IVideoRendererEx::addViewEx
virtual int addViewEx(uintptr_t handle)
Definition: video_node_i.h:193
agora::rtc::PreviewMetaInfo::render_mode
media::base::RENDER_MODE_TYPE render_mode
Definition: video_node_i.h:47
agora::rtc::PreviewMetaInfo::mirror
bool mirror
Definition: video_node_i.h:45
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:259
agora::rtc::IVideoFrameTransceiverEx::observeTxDelay
virtual void observeTxDelay(ILocalVideoTrack *track)=0
agora::ERR_NOT_SUPPORTED
@ ERR_NOT_SUPPORTED
Definition: AgoraBase.h:466
agora::rtc::BUILT_IN_POST_CAPTURER_FILTER_OBSERVER
static const char *const BUILT_IN_POST_CAPTURER_FILTER_OBSERVER
Definition: video_node_i.h:62
agora::rtc::IVideoRendererEx::clearBuffer
virtual int clearBuffer()
Definition: video_node_i.h:263
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:291
agora::rtc::BUILT_IN_SOURCE_FILTER
static const char *const BUILT_IN_SOURCE_FILTER
Definition: video_node_i.h:50
agora::rtc::IVideoEncodedImageCallback
Definition: video_node_i.h:306
agora::rtc::InternalRendererType
InternalRendererType
Definition: video_node_i.h:37
agora::rtc::IVideoRendererEx::ViewOption::enableAlphaMask
bool enableAlphaMask
Definition: video_node_i.h:162
agora::rtc::IVideoFrameSenderEx::RegisterVideoFrameCallback
virtual void RegisterVideoFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
agora::rtc::IVideoFrameSender
Definition: NGIAgoraMediaNode.h:709
agora::rtc::GlobalResourceMetaInfo::resource_name
const char * resource_name
Definition: video_node_i.h:365
agora::rtc::IObservableVideoSink
Definition: video_node_i.h:268
agora::rtc::IVideoEncodedImageSenderEx::~IVideoEncodedImageSenderEx
virtual ~IVideoEncodedImageSenderEx()
Definition: video_node_i.h:314
agora::rtc::BUILT_IN_PRE_ENCODER_WATERMARK_FILTER
static const char *const BUILT_IN_PRE_ENCODER_WATERMARK_FILTER
Definition: video_node_i.h:53
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:301
agora::rtc::BUILT_IN_METADATA_OBSERVER
static const char *const BUILT_IN_METADATA_OBSERVER
Definition: video_node_i.h:51
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:1532
agora::rtc::IVideoRendererEx::getViewMetaInfo
virtual int getViewMetaInfo(PreviewMetaInfo &info)
Definition: video_node_i.h:248
agora::rtc::ICameraCapturerEx::~ICameraCapturerEx
virtual ~ICameraCapturerEx()
Definition: video_node_i.h:118
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:77
agora::rtc::IVideoRendererEx
Definition: video_node_i.h:157
agora::rtc::IVideoFilterEx
Definition: video_node_i.h:69
agora::rtc::IVideoRendererEx::setRotation
int setRotation(void *view, VIDEO_ORIENTATION rotation) override
Definition: video_node_i.h:215
agora::rtc::VideoEncodedImageData::codec
VIDEO_CODEC_TYPE codec
Definition: video_node_i.h:292
agora::rtc::IVideoRendererEx::addViewEx
virtual int addViewEx(uintptr_t handle, const ViewOption &option)
Definition: video_node_i.h:188
agora::rtc::ICameraCapturerEx
Definition: video_node_i.h:116
agora::rtc::IVideoRendererEx::setRenderMode
int setRenderMode(void *view, media::base::RENDER_MODE_TYPE renderMode) override
Definition: video_node_i.h:203
agora::rtc::IVideoRendererEx::ViewOption::cropArea
Rectangle cropArea
Definition: video_node_i.h:160
agora::rtc::VideoEncodedImageData
Definition: video_node_i.h:284
agora::rtc::IExtensionVideoFilterControlEx::NotifySrDelay
virtual void NotifySrDelay(int sr_delay_ms)=0
agora::rtc::ICameraCapturerEx::setCameraSkipControl
virtual void setCameraSkipControl(int skip_control)=0
agora::rtc::GlobalResourceMetaInfo::init_func
int(* init_func)(void *)
Definition: video_node_i.h:366
agora::rtc::IVideoRenderer::setRotation
virtual int setRotation(agora::rtc::VIDEO_ORIENTATION rotation)=0
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:29
agora::rtc::IVideoRendererEx::SetVideoQoEPusher
virtual void SetVideoQoEPusher(std::weak_ptr< agora::rtc::VideoStatsEventsPusher > pusher)
Definition: video_node_i.h:244
agora::rtc::IObservableVideoSink::~IObservableVideoSink
~IObservableVideoSink()
Definition: video_node_i.h:273
agora::rtc::VideoEncodedImageData::height
int height
Definition: video_node_i.h:288
agora::rtc::CAMERA_OUTPUT_TEXTURE
@ CAMERA_OUTPUT_TEXTURE
Definition: video_node_i.h:112
agora::rtc::ICameraCapturerEx::switchCameraId
virtual void switchCameraId(const char *cameraId)=0
agora::rtc::IVideoFrameAdapter::setOutputRotation
virtual void setOutputRotation(webrtc::VideoRotation rotation)
Definition: video_node_i.h:101
agora::rtc::IVideoRendererEx::ViewOption::backgroundColor
uint32_t backgroundColor
Definition: video_node_i.h:163
agora::rtc::IVideoMixerSourceEx::onFrame
virtual void onFrame(const std::string &uid, const webrtc::VideoFrame &frame)=0
rtc::VideoSinkInterface
Definition: video_node_i.h:30
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:52
agora::rtc::PreviewMetaInfo::handle
uintptr_t handle
Definition: video_node_i.h:44
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:293
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:270
rtc
Definition: video_node_i.h:26
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:228
agora::rtc::IVideoFrameAdapter::setMirror
virtual void setMirror(bool mirror)
Definition: video_node_i.h:104
agora::rtc::ICameraCapturerEx::setCameraPqFirst
virtual void setCameraPqFirst(bool pq_first)=0
agora::rtc::VideoEncodedImageData::width
int width
Definition: video_node_i.h:287