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 "AgoraMediaBase.h"
14 #include "AgoraRefPtr.h"
15
16 #include "NGIAgoraCameraCapturer.h"
17 #include "NGIAgoraVideoMixerSource.h"
18 #include "NGIAgoraMediaNodeFactory.h"
19 #include "NGIAgoraMediaNode.h"
20 #include "api/video/video_frame.h"
21 #include "main/core/video/stats_and_events/video_stats_events_pusher.h"
22 #include "facilities/miscellaneous/view_manager.h"
23
24 namespace webrtc {
25 class VideoFrame;
26 } // namespace webrtc
27
28 namespace rtc {
29 struct VideoSinkWants;
30
31 template <typename VideoFrameT>
32 class VideoSinkInterface;
33 } // namespace rtc
34
35 namespace agora {
36 namespace rtc {
37 struct RenderFreezeStats;
38
39 enum InternalRendererType {
40 RENDERER_NONE = -1,
41 RENDERER_BUILT_IN_RENDERER = 0,
42 RENDERER_EXT_OBSERVER = 3,
43 };
44
45 struct PreviewMetaInfo {
46 agora::rtc::view_shared_ptr_t view;
47 bool mirror;
48 bool vsync_mode;
49 media::base::RENDER_MODE_TYPE render_mode;
50 };
51
52 struct FrameProcessResult {
53 webrtc::VideoFrame outputFrame;
54 bool dropFrame;
55 FrameProcessResult(const webrtc::VideoFrame& frame, bool drop) : outputFrame(frame), dropFrame(drop) {}
56 };
57
58 struct VideoDataPipeFormat {
59 VideoFormat format;
60 bool fixed = false;
61
62 VideoDataPipeFormat() = default;
63 VideoDataPipeFormat(const VideoFormat& f, bool fi) : format(f), fixed(fi) {}
64
65 bool operator==(const VideoDataPipeFormat& fmt) const {
66 return format == fmt.format && fixed == fmt.fixed;
67 }
68 bool operator!=(const VideoDataPipeFormat& fmt) const {
69 return !operator==(fmt);
70 }
71 };
72
73 static const char* const BUILT_IN_SOURCE_FILTER = "built-in-source-filter";
74 static const char* const BUILT_IN_METADATA_OBSERVER = "built-in-metadata-observer";
75 static const char* const BUILT_IN_ADAPTER = "built-in-adapter";
76 static const char* const BUILT_IN_REMOTE_ADAPTER = "built-in-remote-adapter";
77 static const char* const BUILT_IN_PRE_ENCODER_WATERMARK_FILTER = "built-in-pre-encoder-watermarker";
78 static const char* const BUILT_IN_POST_CAPTURER_WATERMARK_FILTER = "built-in-post-capturer-watermarker";
79
80 static const char* const BUILT_IN_PRE_ENCODER_FACEDETECE_FILTER = "built-in-pre-encoder-facedetect";
81
82 static const char* const BUILT_IN_SOURCE_TEE = "built-in-source-tee";
83 static const char* const BUILT_IN_PREVIEW_TEE = "built-in-preview-tee";
84 static const char* const BUILT_IN_MAJOR_TEE = "built-in-major-tee";
85 static const char* const BUILT_IN_SIMULCAST_TEE = "built-in-simulcast-tee";
86 static const char* const BUILT_IN_MINOR_ADAPTER = "built-in-minor-adapter";
87 static const char* const BUILT_IN_POST_CAPTURER_FILTER_OBSERVER = "built-in-post-capturer-filter-observer";
88 static const char* const BUILT_IN_PRE_ENCODER_FILTER_OBSERVER = "built-in-pre-encoder-filter-observer";
89 static const char* const BUILT_IN_POST_CAPTURER_FILTER_FRAME_OBSERVER = "CaptureFilterModeObserver";
90 static const char* const BUILT_IN_PRE_ENCODER_FILTER_FRAME_OBSERVER = "PreEncoderFilterModeObserver";
91 static const char* const BUILT_IN_STITCH_FRAME = "built-in-stitch-frame";
92
95 class IVideoFilterEx : public IVideoFilter {
96 public:
97 // Internal node can use webrtc video frame directly to reduce copy operation.
98 virtual void adaptVideoFrameAsync(const webrtc::VideoFrame& inputFrame,
99 std::shared_ptr<FrameProcessResult> resultSp) = 0;
100
101 // TODO(Bob): This should be moved to node base.
102 virtual void onSinkWantsChanged(const ::rtc::VideoSinkWants& wants) = 0;
103 bool isExternal() override { return false; }
104 virtual void attachStatsSpace(uint64_t stats_space) {}
105 virtual void setVideoQoEPusher(std::weak_ptr<VideoStatsEventsPusher> pusher) {}
106 virtual void onDropFrame(agora::rtc::VideoQoEDropType drop_type) {}
107 virtual void SetFilterId(std::string id) {}
108
109 protected:
110 ~IVideoFilterEx() {}
111 };
112
115 class IVideoFrameAdapter : public IVideoFilterEx {
116 public:
117 // Requests the output frame size and frame interval from
118 // |AdaptFrameResolution| to not be larger than |format|. Also, the input
119 // frame size will be cropped to match the requested aspect ratio. When "fixed"
120 // is set false, the requested aspect ratio is orientation agnostic
121 // and will be adjusted to maintain the input orientation, so it doesn't matter
122 // if e.g. 1280x720 or 720x1280 is requested. Otherwise, the output format is
123 // fixed. The input frame may be cropped and rotated to meet the output format.
124 virtual void setOutputFormat(const VideoFormat& format, bool fixed = false) = 0;
125
126 virtual void setOutputFormat(const VideoDataPipeFormat& format, agora::Optional<VideoDataPipeFormat>& source_pipe_format_expected) {
127 setOutputFormat(format.format, format.fixed);
128 };
129
130 // Request the output frame in a fixed rotation.
131 virtual void setOutputRotation(webrtc::VideoRotation rotation) {}
132
133 // mirror the frame
134 virtual void setMirror(bool mirror) {}
135
136 protected:
137 ~IVideoFrameAdapter() {}
138 };
139
140 enum CAMERA_OUTPUT_DATA_TYPE {
141 CAMERA_OUTPUT_RAW = 0, // YUV
142 CAMERA_OUTPUT_TEXTURE = 1, // Texture
143 CAMERA_OUTPUT_TEXTURE_AND_RAW = 2, // YUV && Texture
144 };
145
146 class ICameraCapturerEx : public ICameraCapturer {
147 public:
148 virtual ~ICameraCapturerEx() {}
149
150 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
151 virtual void setPreviewInfo(const PreviewMetaInfo& info) {}
152 virtual int setCameraSourceLLApiInternal(ICameraCapturer::CAMERA_SOURCE source) = 0;
153 virtual bool isZoomSupportedLLApiInternal() = 0;
154 virtual int32_t setCameraZoomLLApiInternal(float zoomValue) = 0;
155 virtual float getCameraMaxZoomLLApiInternal() = 0;
156 virtual bool isFocusSupportedLLApiInternal() = 0;
157 virtual int32_t setCameraFocusLLApiInternal(float x, float y) = 0;
158 virtual bool isAutoFaceFocusSupportedLLApiInternal() = 0;
159 virtual int32_t setCameraAutoFaceFocusLLApiInternal(bool enable) = 0;
160 virtual int32_t enableFaceDetectionLLApiInternal(bool enable) = 0;
161 virtual bool isCameraFaceDetectSupportedLLApiInternal() = 0;
162 virtual bool isCameraTorchSupportedLLApiInternal() = 0;
163 virtual int32_t setCameraTorchOnLLApiInternal(bool isOn) = 0;
164 virtual bool isCameraExposurePositionSupportedLLApiInternal() = 0;
165 virtual int setCameraExposurePositionLLApiInternal(float positionXinView, float positionYinView) = 0;
166 virtual bool isCameraExposureSupportedLLApiInternal() = 0;
167 virtual int setCameraExposureFactorLLApiInternal(float factor) = 0;
168 virtual int switchCameraLLApiInternal() = 0;
169 #elif defined(_WIN32) || (defined(TARGET_OS_IPHONE) && !(TARGET_OS_IPHONE) && (TARGET_OS_MAC)) || \
170 (defined(__linux__) && !defined(__ANDROID__))
171 virtual int initWithDeviceIdLLApiInternal(const char* deviceId) = 0;
172 virtual int initWithDeviceNameLLApiInternal(const char* deviceName) = 0;
173 #endif
174
175 virtual int setDeviceOrientationLLApiInternal(VIDEO_ORIENTATION orientation) = 0;
176 virtual int setCaptureFormatLLApiInternal(const VideoFormat& capture_format) = 0;
177 virtual VideoFormat getCaptureFormatLLApiInternal() = 0;
178 virtual int registerCameraObserverLLApiInternal(ICameraCaptureObserver* observer) = 0;
179 virtual int unregisterCameraObserverLLApiInternal(ICameraCaptureObserver* observer) = 0;
180
181 #if defined(__ANDROID__)
182 virtual void setCameraOutputDataType(CAMERA_OUTPUT_DATA_TYPE type) = 0;
183 virtual CAMERA_OUTPUT_DATA_TYPE getCameraOutputDataType() = 0;
184 virtual void setCameraSelected(int module_selected) = 0;
185 virtual void setCameraSelectedLevel(int camera_selected_level) = 0;
186 virtual void setCameraPqFirst(bool pq_first) = 0;
187 virtual void setCameraSkipControl(int skip_control) = 0;
188 virtual void setVideoStabilityMode(int mode) = 0;
189 virtual void setCameraLowPower(bool lowPower) = 0;
190 virtual void setAutoFaceDetectFocus(bool enable) = 0;
191 virtual void setCameraTemplateType(int type) = 0;
192 virtual void setCameraTemplateVideoLowestScore(int lowestScore) = 0;
193 virtual void setCameraExtraSurface(bool extraSurface) = 0;
194 virtual void setCameraAutoWhiteBalance(bool enable) = 0;
195 virtual void setVideoEdgeMode(int mode) = 0;
196 virtual void setCamera1FocusMode(int mode) = 0;
197 virtual void setCamera2FocusMode(int mode) = 0;
198 virtual void setCamera1FpsRangeEnabled(bool enable) = 0;
199 virtual void setCameraRefocusEnabled(bool enable) = 0;
200 virtual int32_t setNoiseReductionMode(int mode) = 0;
201 virtual int setCameraSourceWithCameraId(CAMERA_SOURCE source,const char* camera_id) = 0;
202 virtual void switchCameraIdLLApiInternal(const char* cameraId) = 0;
203 virtual void setFocalLengthType(CAMERA_FOCAL_LENGTH_TYPE focalLengthType) = 0;
204 virtual void setCameraPqFirstCaptureMode(int captureMode) = 0;
205 virtual void setCameraPqFirstDiff(int diff) = 0;
206 virtual void setCameraTimeoutValue(int value) = 0;
207 virtual void setCameraCustomTange(int minFps, int maxFps) = 0;
208 #endif
209
210 #if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
211 virtual bool enableMultiCameraLLApiInternal(bool enable) = 0;
212 virtual bool isCameraAutoExposureFaceModeSupportedLLApiInternal() = 0;
213 virtual int setCameraAutoExposureFaceModeEnabledLLApiInternal(bool enabled) = 0;
214 #endif
215
216 #if defined(WEBRTC_IOS)
217 virtual void setHDRCaptureEnable(bool enableHDRCapture) = 0;
218 virtual void setCameraMirror(VIDEO_MIRROR_MODE_TYPE mirror) = 0;
219 #endif
220 virtual void setColorSpaceInfo(webrtc::ColorSpace colorSpace) = 0;
221
222 #if defined(__ANDROID__) || defined(WEBRTC_MAC)
223 virtual void setCameraDropCount(int dropcount) = 0;
224 #endif
225
226 #if defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__)) || \
227 (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
228 virtual std::string getDeviceId() = 0;
229 #endif
230 // Requests the output frame size and frame rate.
231 // The output frame size will be cropped to match the requested aspect
232 // ratio, unless |bypass_resolution_adaption| is set true in which case
233 // no cropping is done. The output frame rate will not be larger than the
234 // requested value.
235 // When "fixed" is set false, the requested aspect ratio is orientation
236 // agnostic, so it doesn't matter if e.g. 1280x720 or 720x1280 is requested.
237 // Otherwise, the aspect ratio of output frame is fixed.
238 virtual void setOutputFormat(const VideoDataPipeFormat& output_format, bool bypass_resolution_adaption = false) = 0;
239 };
240
241 class IVideoRendererEx : public IVideoRenderer {
242 public:
243 struct ViewOption {
244 Rectangle cropArea = {0, 0, 0, 0};
245 uid_t cropAreaUid = 0;
246 bool enableAlphaMask = false;
247 uint32_t backgroundColor = 0;
248 };
249
250 using IVideoRenderer::onFrame;
251 virtual int onFrame(const webrtc::VideoFrame& videoFrame) {
252 (void)videoFrame;
253 return -ERR_NOT_SUPPORTED;
254 }
255
256 int setView(void* view, aosl_ref_t ares = AOSL_REF_INVALID) override {
257 (void) view;
258 return -ERR_NOT_SUPPORTED;
259 }
260
261 int addView(void* view, const Rectangle& cropArea, aosl_ref_t ares = AOSL_REF_INVALID) override {
262 (void) view;
263 (void) cropArea;
264 return -ERR_NOT_SUPPORTED;
265 }
266
267 int removeView(void* view) override {
268 (void) view;
269 return -ERR_NOT_SUPPORTED;
270 }
271
272 virtual int addViewEx(agora::rtc::view_shared_ptr_t view, const ViewOption& option) {
273 (void) option;
274 return -ERR_NOT_SUPPORTED;
275 }
276
277 virtual int addViewEx(agora::rtc::view_shared_ptr_t view) {
278 (void) view;
279 return -ERR_NOT_SUPPORTED;
280 }
281
282 virtual int removeViewEx(agora::view_t view) {
283 (void) view;
284 return unsetView();
285 }
286
287 int setRenderMode(void* view, media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares = AOSL_REF_INVALID) override {
288 (void) view;
289 (void) renderMode;
290 return -ERR_NOT_SUPPORTED;
291 }
292
293 int setMirror(void* view, bool mirror, aosl_ref_t ares = AOSL_REF_INVALID) override {
294 (void) view;
295 (void) mirror;
296 return -ERR_NOT_SUPPORTED;
297 }
298
299 using IVideoRenderer::setRenderMode;
300 virtual int setRenderModeEx(agora::view_t view, media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares = AOSL_REF_INVALID) {
301 (void) view;
302 return setRenderMode(renderMode, ares);
303 }
304
305 using IVideoRenderer::setMirror;
306 virtual int setMirrorEx(agora::view_t view, bool mirror, aosl_ref_t ares = AOSL_REF_INVALID) {
307 (void) view;
308 return setMirror(mirror, ares);
309 }
310
311 virtual int setCropAreaEx(agora::view_t view, const Rectangle& cropArea, aosl_ref_t ares = AOSL_REF_INVALID) {
312 (void) view;
313 (void) cropArea;
314 return -ERR_NOT_SUPPORTED;
315 }
316
317 virtual void attachUserInfo(uid_t uid, uint64_t state_space) {
318 (void) uid;
319 (void) state_space;
320 }
321
322 virtual void SetVideoQoEPusher(std::weak_ptr<agora::rtc::VideoStatsEventsPusher> pusher) {
323 (void) pusher;
324 }
325
326 virtual int getViewMetaInfo(PreviewMetaInfo& info) {
327 (void) info;
328 return -ERR_NOT_SUPPORTED;
329 }
330
331 virtual int getViewMetaInfo(agora::view_t view, PreviewMetaInfo& info) {
332 (void) view;
333 (void) info;
334 return -ERR_NOT_SUPPORTED;
335 }
336
337 virtual int getViewCount() {
338 return -ERR_NOT_SUPPORTED;
339 }
340
341 virtual int clearBuffer() {
342 return -ERR_NOT_SUPPORTED;
343 }
344 virtual int setRenderModeLLApiInternal(media::base::RENDER_MODE_TYPE renderMode) {return -ERR_NOT_SUPPORTED;}
345 virtual int setRenderModeLLApiInternal(void* view, media::base::RENDER_MODE_TYPE renderMode) {return -ERR_NOT_SUPPORTED;}
346 virtual int setRenderModeExLLApiInternal(view_t view, media::base::RENDER_MODE_TYPE renderMode) {return -ERR_NOT_SUPPORTED;}
347 virtual int setMirrorLLApiInternal(bool mirror) {return -ERR_NOT_SUPPORTED;}
348 virtual int setMirrorLLApiInternal(void* view, bool mirror) {return -ERR_NOT_SUPPORTED;}
349 virtual int setMirrorExLLApiInternal(view_t view, bool mirror) {return -ERR_NOT_SUPPORTED;}
350 virtual int setCropAreaExLLApiInternal(view_t view, const Rectangle& cropArea) {return -ERR_NOT_SUPPORTED;}
351 virtual int setViewLLApiInternal(view_t view) {return -ERR_NOT_SUPPORTED;}
352 virtual int addViewLLApiInternal(view_t view, const Rectangle& cropArea) {return -ERR_NOT_SUPPORTED;}
353 virtual int unsetViewLLApiInternal() {return -ERR_NOT_SUPPORTED;}
354 virtual int removeViewLLApiInternal(view_t view) {return -ERR_NOT_SUPPORTED;}
355 };
356
357 class IObservableVideoSink : public IVideoRendererEx {
358 public:
359 virtual void setVideoFrameObserver(agora::media::IVideoFrameObserver* observer) {}
360
361 protected:
362 ~IObservableVideoSink() {}
363 };
364
365 class IObservableVideoFilter : public IVideoFilterEx {
366 public:
367 virtual void setVideoFrameObserver(agora::media::IVideoFrameObserver* observer) {}
368
369 protected:
370 ~IObservableVideoFilter() {}
371 };
372
373 struct VideoEncodedImageData : public RefCountInterface {
374 std::string image;
375 VIDEO_FRAME_TYPE frameType;
376 int width;
377 int height;
378 int framesPerSecond;
379 // int64_t renderTimeInMs;
380 VIDEO_ORIENTATION rotation;
381 VIDEO_CODEC_TYPE codec;
382 VIDEO_STREAM_TYPE streamType;
383 int64_t captureTimeMs;
384 int64_t decodeTimeMs;
385 int64_t internalUplinkCostTimeStartMs;
386 int64_t ptsMs;
387 };
388
389 struct CameraCharacteristicProfile {
390 int deviceId;
391 bool isTexture;
392 bool textureCopy;
393 int pqFirst;
394 int templateType;
395 int noiseReduce;
396 bool faceFocusing;
397 bool whiteBalance;
398 bool lowLevelCamera;
399 std::string hardwareLevel;
400 bool inited;
401 };
402
403 struct VideoHWCodecSpec {
404 std::string codecName;
405 std::string GPUVersion;
406 std::string EncodeCapacity;
407 std::string DecodeCapacity;
408 int32_t codecType = 0;
409 int32_t codecNum = 0;
410 int32_t platformid = 0;
411 std::string maxResolution;
412 std::string deviceid;
413 int32_t EncodeMaxLevel = 0;
414 int32_t inputType = 0;
415 int32_t bitrateMode = 0;
416 int32_t profile = 0;
417 int32_t minSupportedBitrate = 0;
418 bool inited = false;
419 };
420
421 struct CameraInfo {
422 bool inUse;
423 std::string deviceName;
424 std::string deviceId;
425 std::string deviceType;
426 };
427 using CameraInfoList = std::vector<CameraInfo>;
428
429 class IVideoEncodedImageCallback {
430 public:
431 virtual ~IVideoEncodedImageCallback() {}
432 virtual void OnVideoEncodedImage(agora_refptr<VideoEncodedImageData> data) = 0;
433 };
434
435 class IVideoEncodedImageSenderEx : public IVideoEncodedImageSender {
436 public:
437 virtual ~IVideoEncodedImageSenderEx() {}
438 virtual void RegisterEncodedImageCallback(IVideoEncodedImageCallback* dataCallback,
439 VIDEO_STREAM_TYPE stream_type) = 0;
440 virtual void DeRegisterEncodedImageCallback(IVideoEncodedImageCallback* dataCallback,
441 VIDEO_STREAM_TYPE stream_type) = 0;
442 virtual void AttachStatSpace(uint64_t stats_space) = 0;
443 virtual void DetachStatSpace(uint64_t stats_space) = 0;
444 virtual bool sendEncodedVideoImageLLApiInternal(const uint8_t* imageBuffer, size_t length,
445 const EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;
446
447 virtual int getWidth() const = 0;
448 virtual int getHeight() const = 0;
449 };
450
451 class IVideoFrameSenderEx : public IVideoFrameSender {
452 public:
453 using IVideoFrameSender::sendVideoFrame;
454
455 virtual ~IVideoFrameSenderEx() {}
456
457 virtual int sendVideoFrame(const webrtc::VideoFrame& videoFrame) = 0;
458
459 virtual void RegisterVideoFrameCallback(
460 ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
461 virtual void DeRegisterVideoFrameCallback() = 0;
462 virtual int sendVideoFrameLLApiInternal(const media::base::ExternalVideoFrame& videoFrame) = 0;
463 virtual int getVideoFrame(webrtc::VideoFrame& videoFrame) = 0;
464 virtual bool pushMode() = 0;
465 };
466
467 class IVideoMixerSourceEx : public IVideoMixerSource {
468 public:
469 virtual ~IVideoMixerSourceEx() = default;
470 virtual void registerMixedFrameCallback(
471 ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
472 virtual void deRegisterMixedFrameCallback(::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
473 virtual void onFrame(const std::string& uid, const webrtc::VideoFrame& frame) = 0;
474 virtual void startMixing() = 0;
475 virtual void stopMixing() = 0;
476 virtual bool hasVideoTrack(const std::string& id) = 0;
477 virtual int addVideoTrackLLApiInternal(const char* id, agora_refptr<IVideoTrack> track) = 0;
478 virtual int removeVideoTrackLLApiInternal(const char* id, agora_refptr<IVideoTrack> track) = 0;
479 virtual int setStreamLayoutLLApiInternal(const char* id, const MixerLayoutConfig& config, std::shared_ptr<int> result) = 0;
480 virtual int addImageSourceLLApiInternal(const char* id, const MixerLayoutConfig& config, ImageType type, std::shared_ptr<int> result) = 0;
481 virtual int delImageSourceLLApiInternal(const char* id) = 0;
482 virtual int delStreamLayoutLLApiInternal(const char* id) = 0;
483 virtual int clearLayoutLLApiInternal() = 0;
484 virtual int refreshLLApiInternal() = 0;
485 virtual int setBackgroundLLApiInternal(uint32_t width, uint32_t height, int fps, uint32_t color_rgba = 0) = 0;
486 virtual int setBackgroundLLApiInternal(uint32_t width, uint32_t height, int fps, const char* url) = 0;
487 virtual int setRotationLLApiInternal(uint8_t rotation) = 0;
488 virtual int getAvgMixerDelayLLApiInternal() = 0;
489 virtual int setMasterClockSourceLLApiInternal(const char* id = NULL) = 0;
490 };
491
492 class IVideoFrameTransceiverEx : public IVideoFrameTransceiver {
493 public:
494 virtual int onFrame(const webrtc::VideoFrame& videoFrame) = 0;
495 virtual void registerFrameCallback(
496 ::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
497 virtual void deRegisterFrameCallback(::rtc::VideoSinkInterface<webrtc::VideoFrame>* dataCallback) = 0;
498 virtual void observeTxDelay(ILocalVideoTrack* track) = 0;
499 virtual int addVideoTrackLLApiInternal(agora_refptr<IVideoTrack> track) = 0;
500
501 virtual int removeVideoTrackLLApiInternal(agora_refptr<IVideoTrack> track) = 0;
502 };
503
504 static const char* const GLFW_RESOURCE = "glfw_resource";
505 struct GlobalResourceMetaInfo {
506 const char* resource_name = nullptr;
507 int (*init_func)(void*) = nullptr;
508 int (*deinit_func)(void*) = nullptr;
509 void* context = nullptr;
510 bool fixed_thread = true;
511 bool init_once = false;
512 };
513
514 class IExtensionVideoFilterControlEx : public IExtensionVideoFilter::Control {
515 public:
516 virtual ~IExtensionVideoFilterControlEx() = default;
517 virtual int ReportCounter(int32_t counter_id, int32_t value) = 0;
518 virtual int ReportEvent(int32_t event_id, void* event) = 0;
519 virtual int DeclareGlobalResource(const GlobalResourceMetaInfo& meta_info, int& resource_count) = 0;
520 virtual int ReleaseGlobalResource(const GlobalResourceMetaInfo& meta_info, int& resource_count) = 0;
521 virtual void NotifySrDelay(int sr_delay_ms) = 0;
522 };
523
524 } // namespace rtc
525 } // namespace agora
agora::rtc::IVideoRendererEx::removeView
int removeView(void *view) override
Definition: video_node_i.h:267
agora::rtc::IObservableVideoFilter::setVideoFrameObserver
virtual void setVideoFrameObserver(agora::media::IVideoFrameObserver *observer)
Definition: video_node_i.h:367
agora::rtc::CameraInfo::deviceType
std::string deviceType
Definition: video_node_i.h:425
agora::rtc::VideoDataPipeFormat::operator==
bool operator==(const VideoDataPipeFormat &fmt) const
Definition: video_node_i.h:65
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:89
agora::rtc::CameraInfo::deviceName
std::string deviceName
Definition: video_node_i.h:423
agora::rtc::ICameraCapturerEx::setCameraAutoFaceFocusLLApiInternal
virtual int32_t setCameraAutoFaceFocusLLApiInternal(bool enable)=0
agora::rtc::ICameraCapturerEx::isCameraFaceDetectSupportedLLApiInternal
virtual bool isCameraFaceDetectSupportedLLApiInternal()=0
agora::rtc::VideoHWCodecSpec::maxResolution
std::string maxResolution
Definition: video_node_i.h:411
agora::rtc::IVideoMixerSourceEx::setBackgroundLLApiInternal
virtual int setBackgroundLLApiInternal(uint32_t width, uint32_t height, int fps, uint32_t color_rgba=0)=0
agora::rtc::VideoEncodedImageData::framesPerSecond
int framesPerSecond
Definition: video_node_i.h:378
agora::rtc::IVideoRenderer::unsetView
virtual int unsetView(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoEncodedImageSenderEx
Definition: video_node_i.h:435
agora::rtc::IVideoMixerSourceEx::~IVideoMixerSourceEx
virtual ~IVideoMixerSourceEx()=default
agora::rtc::IVideoMixerSourceEx::refreshLLApiInternal
virtual int refreshLLApiInternal()=0
agora::rtc::IVideoRendererEx::setMirrorEx
virtual int setMirrorEx(agora::view_t view, bool mirror, aosl_ref_t ares=AOSL_REF_INVALID)
Definition: video_node_i.h:306
agora::rtc::IVideoMixerSourceEx::delImageSourceLLApiInternal
virtual int delImageSourceLLApiInternal(const char *id)=0
agora::rtc::ICameraCapturerEx::setCameraDropCount
virtual void setCameraDropCount(int dropcount)=0
agora::rtc::IVideoRendererEx::setMirrorExLLApiInternal
virtual int setMirrorExLLApiInternal(view_t view, bool mirror)
Definition: video_node_i.h:349
agora::rtc::CAMERA_OUTPUT_DATA_TYPE
CAMERA_OUTPUT_DATA_TYPE
Definition: video_node_i.h:140
agora::rtc::ICameraCapturerEx::setCamera2FocusMode
virtual void setCamera2FocusMode(int mode)=0
agora::rtc::ICameraCaptureObserver
Definition: NGIAgoraCameraCapturer.h:484
agora::rtc::ICameraCapturer::CAMERA_SOURCE
CAMERA_SOURCE
Definition: NGIAgoraCameraCapturer.h:26
agora::rtc::IVideoFrameAdapter
Definition: video_node_i.h:115
agora::rtc::VideoHWCodecSpec::platformid
int32_t platformid
Definition: video_node_i.h:410
agora::rtc::ICameraCapturerEx::setCameraAutoWhiteBalance
virtual void setCameraAutoWhiteBalance(bool enable)=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:84
agora::rtc::IVideoFrameTransceiver
Definition: NGIAgoraMediaNode.h:936
agora::rtc::RENDERER_EXT_OBSERVER
@ RENDERER_EXT_OBSERVER
Definition: video_node_i.h:42
agora::rtc::IVideoEncodedImageSenderEx::sendEncodedVideoImageLLApiInternal
virtual bool sendEncodedVideoImageLLApiInternal(const uint8_t *imageBuffer, size_t length, const EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
agora::rtc::GlobalResourceMetaInfo::fixed_thread
bool fixed_thread
Definition: video_node_i.h:510
agora::rtc::IObservableVideoFilter
Definition: video_node_i.h:365
agora::rtc::IExtensionVideoFilterControlEx
Definition: video_node_i.h:514
agora::rtc::IVideoFilterEx::onDropFrame
virtual void onDropFrame(agora::rtc::VideoQoEDropType drop_type)
Definition: video_node_i.h:106
agora::rtc::IVideoRendererEx::setView
int setView(void *view, aosl_ref_t ares=AOSL_REF_INVALID) override
Definition: video_node_i.h:256
agora::rtc::IVideoMixerSourceEx::addImageSourceLLApiInternal
virtual int addImageSourceLLApiInternal(const char *id, const MixerLayoutConfig &config, ImageType type, std::shared_ptr< int > result)=0
webrtc
Definition: common_defines.h:18
agora::rtc::VideoHWCodecSpec::codecType
int32_t codecType
Definition: video_node_i.h:408
agora::rtc::IVideoFrameSenderEx::pushMode
virtual bool pushMode()=0
agora::rtc::Rectangle
Definition: AgoraBase.h:2220
agora::rtc::MixerLayoutConfig
Definition: NGIAgoraVideoMixerSource.h:18
agora::rtc::ICameraCapturerEx::setNoiseReductionMode
virtual int32_t setNoiseReductionMode(int mode)=0
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1639
agora::rtc::CameraCharacteristicProfile::textureCopy
bool textureCopy
Definition: video_node_i.h:392
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:1664
agora::view_t
void * view_t
Definition: AgoraBase.h:814
agora::rtc::ICameraCapturerEx::setDeviceOrientationLLApiInternal
virtual int setDeviceOrientationLLApiInternal(VIDEO_ORIENTATION orientation)=0
agora::rtc::ICameraCapturerEx::setCameraTorchOnLLApiInternal
virtual int32_t setCameraTorchOnLLApiInternal(bool isOn)=0
agora::rtc::ICameraCapturerEx::switchCameraIdLLApiInternal
virtual void switchCameraIdLLApiInternal(const char *cameraId)=0
agora::rtc::CameraCharacteristicProfile::inited
bool inited
Definition: video_node_i.h:400
agora::rtc::IVideoRendererEx::setViewLLApiInternal
virtual int setViewLLApiInternal(view_t view)
Definition: video_node_i.h:351
agora::rtc::IVideoMixerSourceEx::setRotationLLApiInternal
virtual int setRotationLLApiInternal(uint8_t rotation)=0
agora::rtc::VideoHWCodecSpec::bitrateMode
int32_t bitrateMode
Definition: video_node_i.h:415
agora::rtc::VideoEncodedImageData::image
std::string image
Definition: video_node_i.h:374
agora::rtc::IVideoFrameTransceiverEx::removeVideoTrackLLApiInternal
virtual int removeVideoTrackLLApiInternal(agora_refptr< IVideoTrack > track)=0
agora::rtc::IVideoFrameSenderEx::sendVideoFrameLLApiInternal
virtual int sendVideoFrameLLApiInternal(const media::base::ExternalVideoFrame &videoFrame)=0
agora::rtc::ICameraCapturerEx::setCameraTimeoutValue
virtual void setCameraTimeoutValue(int value)=0
agora::rtc::ICameraCapturerEx::setCameraPqFirstCaptureMode
virtual void setCameraPqFirstCaptureMode(int captureMode)=0
agora::rtc::BUILT_IN_PREVIEW_TEE
static const char *const BUILT_IN_PREVIEW_TEE
Definition: video_node_i.h:83
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:317
agora::rtc::VideoEncodedImageData::frameType
VIDEO_FRAME_TYPE frameType
Definition: video_node_i.h:375
agora::rtc::ICameraCapturerEx::setHDRCaptureEnable
virtual void setHDRCaptureEnable(bool enableHDRCapture)=0
agora::rtc::IVideoFilterEx::adaptVideoFrameAsync
virtual void adaptVideoFrameAsync(const webrtc::VideoFrame &inputFrame, std::shared_ptr< FrameProcessResult > resultSp)=0
agora::rtc::IVideoEncodedImageCallback::~IVideoEncodedImageCallback
virtual ~IVideoEncodedImageCallback()
Definition: video_node_i.h:431
agora::rtc::ICameraCapturerEx::getCameraOutputDataType
virtual CAMERA_OUTPUT_DATA_TYPE getCameraOutputDataType()=0
agora::rtc::VideoHWCodecSpec::codecName
std::string codecName
Definition: video_node_i.h:404
agora::rtc::VideoHWCodecSpec::inited
bool inited
Definition: video_node_i.h:418
agora::rtc::ICameraCapturerEx::setCameraExtraSurface
virtual void setCameraExtraSurface(bool extraSurface)=0
agora::rtc::IVideoMixerSourceEx::getAvgMixerDelayLLApiInternal
virtual int getAvgMixerDelayLLApiInternal()=0
agora::rtc::IVideoRendererEx::setRenderModeExLLApiInternal
virtual int setRenderModeExLLApiInternal(view_t view, media::base::RENDER_MODE_TYPE renderMode)
Definition: video_node_i.h:346
agora::rtc::IVideoRendererEx::setMirrorLLApiInternal
virtual int setMirrorLLApiInternal(bool mirror)
Definition: video_node_i.h:347
agora::rtc::IVideoRendererEx::onFrame
virtual int onFrame(const webrtc::VideoFrame &videoFrame)
Definition: video_node_i.h:251
agora::rtc::ICameraCapturerEx::enableMultiCameraLLApiInternal
virtual bool enableMultiCameraLLApiInternal(bool enable)=0
agora::rtc::VIDEO_MIRROR_MODE_TYPE
VIDEO_MIRROR_MODE_TYPE
Definition: AgoraBase.h:1818
agora::rtc::PreviewMetaInfo::vsync_mode
bool vsync_mode
Definition: video_node_i.h:48
agora::rtc::VideoDataPipeFormat::operator!=
bool operator!=(const VideoDataPipeFormat &fmt) const
Definition: video_node_i.h:68
agora::rtc::CameraCharacteristicProfile::whiteBalance
bool whiteBalance
Definition: video_node_i.h:397
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:78
agora::rtc::CAMERA_OUTPUT_RAW
@ CAMERA_OUTPUT_RAW
Definition: video_node_i.h:141
agora::rtc::IVideoEncodedImageSender
Definition: NGIAgoraMediaNode.h:758
agora::rtc::BUILT_IN_PRE_ENCODER_FILTER_OBSERVER
static const char *const BUILT_IN_PRE_ENCODER_FILTER_OBSERVER
Definition: video_node_i.h:88
agora::rtc::ICameraCapturerEx::setVideoStabilityMode
virtual void setVideoStabilityMode(int mode)=0
agora::rtc::CameraInfoList
std::vector< CameraInfo > CameraInfoList
Definition: video_node_i.h:427
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::ICameraCapturerEx::isCameraAutoExposureFaceModeSupportedLLApiInternal
virtual bool isCameraAutoExposureFaceModeSupportedLLApiInternal()=0
agora::rtc::IVideoRendererEx::setMirror
int setMirror(void *view, bool mirror, aosl_ref_t ares=AOSL_REF_INVALID) override
Definition: video_node_i.h:293
agora::rtc::IVideoMixerSourceEx
Definition: video_node_i.h:467
agora::rtc::ICameraCapturerEx::setCameraCustomTange
virtual void setCameraCustomTange(int minFps, int maxFps)=0
agora::rtc::ICameraCapturerEx::setColorSpaceInfo
virtual void setColorSpaceInfo(webrtc::ColorSpace colorSpace)=0
agora::rtc::IVideoFrameSenderEx::getVideoFrame
virtual int getVideoFrame(webrtc::VideoFrame &videoFrame)=0
agora::rtc::ICameraCapturerEx::setCameraZoomLLApiInternal
virtual int32_t setCameraZoomLLApiInternal(float zoomValue)=0
agora::rtc::IVideoRenderer::setRenderMode
virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoFilterEx::SetFilterId
virtual void SetFilterId(std::string id)
Definition: video_node_i.h:107
agora::rtc::IVideoRendererEx::ViewOption
Definition: video_node_i.h:243
agora::rtc::IVideoRendererEx::setRenderMode
int setRenderMode(void *view, media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares=AOSL_REF_INVALID) override
Definition: video_node_i.h:287
agora::rtc::ICameraCapturerEx::setCameraExposurePositionLLApiInternal
virtual int setCameraExposurePositionLLApiInternal(float positionXinView, float positionYinView)=0
agora::rtc::BUILT_IN_MINOR_ADAPTER
static const char *const BUILT_IN_MINOR_ADAPTER
Definition: video_node_i.h:86
agora::rtc::IVideoMixerSourceEx::startMixing
virtual void startMixing()=0
agora::rtc::ICameraCapturerEx::setCameraPqFirstDiff
virtual void setCameraPqFirstDiff(int diff)=0
agora::rtc::BUILT_IN_SIMULCAST_TEE
static const char *const BUILT_IN_SIMULCAST_TEE
Definition: video_node_i.h:85
agora::rtc::ICameraCapturerEx::isCameraExposurePositionSupportedLLApiInternal
virtual bool isCameraExposurePositionSupportedLLApiInternal()=0
agora::rtc::IVideoFrameSenderEx::DeRegisterVideoFrameCallback
virtual void DeRegisterVideoFrameCallback()=0
agora::rtc::GlobalResourceMetaInfo::deinit_func
int(* deinit_func)(void *)
Definition: video_node_i.h:508
agora::rtc::VideoEncodedImageData::ptsMs
int64_t ptsMs
Definition: video_node_i.h:386
agora::rtc::IVideoMixerSourceEx::setBackgroundLLApiInternal
virtual int setBackgroundLLApiInternal(uint32_t width, uint32_t height, int fps, const char *url)=0
agora::rtc::VideoDataPipeFormat::fixed
bool fixed
Definition: video_node_i.h:60
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:770
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:504
agora::rtc::VideoFormat
Definition: AgoraBase.h:2724
agora::rtc::GlobalResourceMetaInfo
Definition: video_node_i.h:505
agora::rtc::VIDEO_CODEC_TYPE
VIDEO_CODEC_TYPE
Definition: AgoraBase.h:1169
agora::rtc::RENDERER_BUILT_IN_RENDERER
@ RENDERER_BUILT_IN_RENDERER
Definition: video_node_i.h:41
agora::rtc::IObservableVideoFilter::~IObservableVideoFilter
~IObservableVideoFilter()
Definition: video_node_i.h:370
agora::rtc::IVideoRendererEx::setCropAreaEx
virtual int setCropAreaEx(agora::view_t view, const Rectangle &cropArea, aosl_ref_t ares=AOSL_REF_INVALID)
Definition: video_node_i.h:311
agora::rtc::IVideoFrameSenderEx::~IVideoFrameSenderEx
virtual ~IVideoFrameSenderEx()
Definition: video_node_i.h:455
agora::rtc::ICameraCapturerEx::isZoomSupportedLLApiInternal
virtual bool isZoomSupportedLLApiInternal()=0
agora::rtc::RENDERER_NONE
@ RENDERER_NONE
Definition: video_node_i.h:40
agora::rtc::GlobalResourceMetaInfo::context
void * context
Definition: video_node_i.h:509
agora::rtc::IVideoFilterEx::setVideoQoEPusher
virtual void setVideoQoEPusher(std::weak_ptr< VideoStatsEventsPusher > pusher)
Definition: video_node_i.h:105
agora::rtc::VIDEO_ORIENTATION
VIDEO_ORIENTATION
Definition: AgoraBase.h:947
agora::rtc::IVideoFilterEx::attachStatsSpace
virtual void attachStatsSpace(uint64_t stats_space)
Definition: video_node_i.h:104
agora::rtc::CameraCharacteristicProfile::faceFocusing
bool faceFocusing
Definition: video_node_i.h:396
agora::rtc::ICameraCapturerEx::setCameraLowPower
virtual void setCameraLowPower(bool lowPower)=0
agora::rtc::IVideoFrameSenderEx::sendVideoFrame
virtual int sendVideoFrame(const webrtc::VideoFrame &videoFrame)=0
agora::rtc::VideoEncodedImageData::decodeTimeMs
int64_t decodeTimeMs
Definition: video_node_i.h:384
agora::rtc::ICameraCapturerEx::setCameraSelected
virtual void setCameraSelected(int module_selected)=0
agora::rtc::IExtensionVideoFilterControlEx::ReleaseGlobalResource
virtual int ReleaseGlobalResource(const GlobalResourceMetaInfo &meta_info, int &resource_count)=0
agora::rtc::ICameraCapturerEx::setAutoFaceDetectFocus
virtual void setAutoFaceDetectFocus(bool enable)=0
agora::rtc::ICameraCapturer
Definition: NGIAgoraCameraCapturer.h:20
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:90
agora::rtc::ICameraCapturerEx::setCameraTemplateVideoLowestScore
virtual void setCameraTemplateVideoLowestScore(int lowestScore)=0
agora::rtc::IVideoRendererEx::ViewOption::cropAreaUid
uid_t cropAreaUid
Definition: video_node_i.h:245
agora::rtc::ILocalVideoTrack
Definition: NGIAgoraVideoTrack.h:366
agora::rtc::IVideoMixerSourceEx::setStreamLayoutLLApiInternal
virtual int setStreamLayoutLLApiInternal(const char *id, const MixerLayoutConfig &config, std::shared_ptr< int > result)=0
agora::rtc::IVideoFrameSenderEx
Definition: video_node_i.h:451
agora::rtc::VIDEO_FRAME_TYPE
VIDEO_FRAME_TYPE
Definition: AgoraBase.h:1011
agora::rtc::CameraInfo::inUse
bool inUse
Definition: video_node_i.h:422
agora::rtc::IVideoFilterEx::onSinkWantsChanged
virtual void onSinkWantsChanged(const ::rtc::VideoSinkWants &wants)=0
agora::rtc::VideoHWCodecSpec::deviceid
std::string deviceid
Definition: video_node_i.h:412
agora::rtc::ICameraCapturerEx::initWithDeviceNameLLApiInternal
virtual int initWithDeviceNameLLApiInternal(const char *deviceName)=0
agora::rtc::IVideoFrameTransceiverEx
Definition: video_node_i.h:492
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:80
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::VideoDataPipeFormat
Definition: video_node_i.h:58
agora::rtc::IVideoSinkBase::onFrame
virtual int onFrame(const media::base::VideoFrame &videoFrame)=0
agora::rtc::IVideoRendererEx::addViewEx
virtual int addViewEx(agora::rtc::view_shared_ptr_t view, const ViewOption &option)
Definition: video_node_i.h:272
agora::rtc::VideoEncodedImageData::internalUplinkCostTimeStartMs
int64_t internalUplinkCostTimeStartMs
Definition: video_node_i.h:385
agora::rtc::IVideoMixerSourceEx::setMasterClockSourceLLApiInternal
virtual int setMasterClockSourceLLApiInternal(const char *id=NULL)=0
agora::rtc::VideoDataPipeFormat::VideoDataPipeFormat
VideoDataPipeFormat()=default
agora::rtc::IVideoRenderer::setMirror
virtual int setMirror(bool mirror, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ICameraCapturerEx::setPreviewInfo
virtual void setPreviewInfo(const PreviewMetaInfo &info)
Definition: video_node_i.h:151
agora::rtc::VideoEncodedImageData::captureTimeMs
int64_t captureTimeMs
Definition: video_node_i.h:383
agora::rtc::IVideoFrameSender::sendVideoFrame
virtual int sendVideoFrame(const media::base::ExternalVideoFrame &videoFrame, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoEncodedImageSenderEx::getHeight
virtual int getHeight() const =0
agora::rtc::ICameraCapturerEx::setCameraAutoExposureFaceModeEnabledLLApiInternal
virtual int setCameraAutoExposureFaceModeEnabledLLApiInternal(bool enabled)=0
agora::rtc::IVideoFilterEx::~IVideoFilterEx
~IVideoFilterEx()
Definition: video_node_i.h:110
agora::rtc::VideoDataPipeFormat::format
VideoFormat format
Definition: video_node_i.h:59
agora::rtc::IExtensionVideoFilterControlEx::DeclareGlobalResource
virtual int DeclareGlobalResource(const GlobalResourceMetaInfo &meta_info, int &resource_count)=0
agora::rtc::IVideoRendererEx::addViewLLApiInternal
virtual int addViewLLApiInternal(view_t view, const Rectangle &cropArea)
Definition: video_node_i.h:352
agora::rtc::IVideoRendererEx::setRenderModeEx
virtual int setRenderModeEx(agora::view_t view, media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares=AOSL_REF_INVALID)
Definition: video_node_i.h:300
agora::rtc::VideoHWCodecSpec::minSupportedBitrate
int32_t minSupportedBitrate
Definition: video_node_i.h:417
agora::rtc::IVideoMixerSourceEx::addVideoTrackLLApiInternal
virtual int addVideoTrackLLApiInternal(const char *id, agora_refptr< IVideoTrack > track)=0
agora::rtc::CameraInfo
Definition: video_node_i.h:421
agora::rtc::IVideoRenderer
Definition: NGIAgoraMediaNode.h:857
agora::rtc::IVideoEncodedImageCallback::OnVideoEncodedImage
virtual void OnVideoEncodedImage(agora_refptr< VideoEncodedImageData > data)=0
agora::rtc::IVideoEncodedImageSenderEx::getWidth
virtual int getWidth() const =0
agora::rtc::ICameraCapturerEx::unregisterCameraObserverLLApiInternal
virtual int unregisterCameraObserverLLApiInternal(ICameraCaptureObserver *observer)=0
agora::rtc::ImageType
ImageType
Definition: NGIAgoraVideoMixerSource.h:32
agora::rtc::PreviewMetaInfo
Definition: video_node_i.h:45
agora::rtc::IVideoRendererEx::removeViewEx
virtual int removeViewEx(agora::view_t view)
Definition: video_node_i.h:282
agora::rtc::BUILT_IN_SOURCE_TEE
static const char *const BUILT_IN_SOURCE_TEE
Definition: video_node_i.h:82
agora::rtc::IVideoFrameAdapter::~IVideoFrameAdapter
~IVideoFrameAdapter()
Definition: video_node_i.h:137
agora::rtc::GlobalResourceMetaInfo::init_once
bool init_once
Definition: video_node_i.h:511
agora::rtc::VideoHWCodecSpec::inputType
int32_t inputType
Definition: video_node_i.h:414
agora::rtc::IVideoRendererEx::addViewEx
virtual int addViewEx(agora::rtc::view_shared_ptr_t view)
Definition: video_node_i.h:277
agora::rtc::VideoHWCodecSpec
Definition: video_node_i.h:403
agora::rtc::ICameraCapturerEx::isCameraTorchSupportedLLApiInternal
virtual bool isCameraTorchSupportedLLApiInternal()=0
agora::rtc::ICameraCapturerEx::setCameraMirror
virtual void setCameraMirror(VIDEO_MIRROR_MODE_TYPE mirror)=0
agora::rtc::VideoHWCodecSpec::DecodeCapacity
std::string DecodeCapacity
Definition: video_node_i.h:407
agora::rtc::CAMERA_OUTPUT_TEXTURE_AND_RAW
@ CAMERA_OUTPUT_TEXTURE_AND_RAW
Definition: video_node_i.h:143
agora::rtc::ICameraCapturerEx::isAutoFaceFocusSupportedLLApiInternal
virtual bool isAutoFaceFocusSupportedLLApiInternal()=0
agora::rtc::FrameProcessResult
Definition: video_node_i.h:52
agora::rtc::ICameraCapturerEx::isCameraExposureSupportedLLApiInternal
virtual bool isCameraExposureSupportedLLApiInternal()=0
agora::rtc::FrameProcessResult::outputFrame
webrtc::VideoFrame outputFrame
Definition: video_node_i.h:53
agora::media::base::RENDER_MODE_TYPE
RENDER_MODE_TYPE
Definition: AgoraMediaBase.h:532
agora::rtc::PreviewMetaInfo::render_mode
media::base::RENDER_MODE_TYPE render_mode
Definition: video_node_i.h:49
agora::rtc::PreviewMetaInfo::mirror
bool mirror
Definition: video_node_i.h:47
agora::rtc::IExtensionVideoFilter::Control
Definition: NGIAgoraMediaNode.h:293
agora::rtc::IVideoEncodedImageSenderEx::DetachStatSpace
virtual void DetachStatSpace(uint64_t stats_space)=0
agora::rtc::IVideoRendererEx::getViewCount
virtual int getViewCount()
Definition: video_node_i.h:337
agora::rtc::ICameraCapturerEx::setFocalLengthType
virtual void setFocalLengthType(CAMERA_FOCAL_LENGTH_TYPE focalLengthType)=0
agora::rtc::IVideoFrameTransceiverEx::observeTxDelay
virtual void observeTxDelay(ILocalVideoTrack *track)=0
agora::ERR_NOT_SUPPORTED
@ ERR_NOT_SUPPORTED
Definition: AgoraBase.h:481
agora::rtc::VideoHWCodecSpec::codecNum
int32_t codecNum
Definition: video_node_i.h:409
agora::rtc::BUILT_IN_POST_CAPTURER_FILTER_OBSERVER
static const char *const BUILT_IN_POST_CAPTURER_FILTER_OBSERVER
Definition: video_node_i.h:87
agora::rtc::IVideoMixerSourceEx::delStreamLayoutLLApiInternal
virtual int delStreamLayoutLLApiInternal(const char *id)=0
agora::rtc::IVideoRendererEx::clearBuffer
virtual int clearBuffer()
Definition: video_node_i.h:341
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:380
agora::rtc::BUILT_IN_STITCH_FRAME
static const char *const BUILT_IN_STITCH_FRAME
Definition: video_node_i.h:91
agora::rtc::IVideoRendererEx::setCropAreaExLLApiInternal
virtual int setCropAreaExLLApiInternal(view_t view, const Rectangle &cropArea)
Definition: video_node_i.h:350
agora::rtc::ICameraCapturerEx::initWithDeviceIdLLApiInternal
virtual int initWithDeviceIdLLApiInternal(const char *deviceId)=0
agora::rtc::BUILT_IN_SOURCE_FILTER
static const char *const BUILT_IN_SOURCE_FILTER
Definition: video_node_i.h:73
agora::rtc::IVideoEncodedImageCallback
Definition: video_node_i.h:429
agora::rtc::InternalRendererType
InternalRendererType
Definition: video_node_i.h:39
agora::rtc::ICameraCapturerEx::setCaptureFormatLLApiInternal
virtual int setCaptureFormatLLApiInternal(const VideoFormat &capture_format)=0
agora::rtc::IVideoRendererEx::ViewOption::enableAlphaMask
bool enableAlphaMask
Definition: video_node_i.h:246
agora::rtc::CameraCharacteristicProfile
Definition: video_node_i.h:389
agora::rtc::IVideoFrameSenderEx::RegisterVideoFrameCallback
virtual void RegisterVideoFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
agora::rtc::ICameraCapturerEx::setCameraFocusLLApiInternal
virtual int32_t setCameraFocusLLApiInternal(float x, float y)=0
agora::rtc::IVideoFrameSender
Definition: NGIAgoraMediaNode.h:734
agora::rtc::ICameraCapturerEx::setCamera1FocusMode
virtual void setCamera1FocusMode(int mode)=0
agora::rtc::GlobalResourceMetaInfo::resource_name
const char * resource_name
Definition: video_node_i.h:506
agora::rtc::PreviewMetaInfo::view
agora::rtc::view_shared_ptr_t view
Definition: video_node_i.h:46
agora::rtc::VideoHWCodecSpec::EncodeMaxLevel
int32_t EncodeMaxLevel
Definition: video_node_i.h:413
agora::rtc::IVideoRendererEx::unsetViewLLApiInternal
virtual int unsetViewLLApiInternal()
Definition: video_node_i.h:353
agora::rtc::IObservableVideoSink
Definition: video_node_i.h:357
agora::rtc::IVideoEncodedImageSenderEx::~IVideoEncodedImageSenderEx
virtual ~IVideoEncodedImageSenderEx()
Definition: video_node_i.h:437
agora::rtc::BUILT_IN_PRE_ENCODER_WATERMARK_FILTER
static const char *const BUILT_IN_PRE_ENCODER_WATERMARK_FILTER
Definition: video_node_i.h:77
agora::rtc::ICameraCapturerEx::setCameraOutputDataType
virtual void setCameraOutputDataType(CAMERA_OUTPUT_DATA_TYPE type)=0
agora::rtc::ICameraCapturerEx::setCameraRefocusEnabled
virtual void setCameraRefocusEnabled(bool enable)=0
agora::rtc::CAMERA_FOCAL_LENGTH_TYPE
CAMERA_FOCAL_LENGTH_TYPE
Definition: AgoraBase.h:1217
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::CameraInfo::deviceId
std::string deviceId
Definition: video_node_i.h:424
agora::rtc::BUILT_IN_METADATA_OBSERVER
static const char *const BUILT_IN_METADATA_OBSERVER
Definition: video_node_i.h:74
agora::rtc::ICameraCapturerEx::getDeviceId
virtual std::string getDeviceId()=0
agora::rtc::IExtensionVideoFilterControlEx::~IExtensionVideoFilterControlEx
virtual ~IExtensionVideoFilterControlEx()=default
agora::rtc::CameraCharacteristicProfile::deviceId
int deviceId
Definition: video_node_i.h:390
agora::rtc::VIDEO_STREAM_TYPE
VIDEO_STREAM_TYPE
Definition: AgoraBase.h:1573
agora::rtc::IVideoRendererEx::getViewMetaInfo
virtual int getViewMetaInfo(PreviewMetaInfo &info)
Definition: video_node_i.h:326
agora::rtc::ICameraCapturerEx::~ICameraCapturerEx
virtual ~ICameraCapturerEx()
Definition: video_node_i.h:148
agora::rtc::IVideoFrameTransceiverEx::onFrame
virtual int onFrame(const webrtc::VideoFrame &videoFrame)=0
agora::rtc::CameraCharacteristicProfile::isTexture
bool isTexture
Definition: video_node_i.h:391
agora::rtc::IVideoEncodedImageSenderEx::AttachStatSpace
virtual void AttachStatSpace(uint64_t stats_space)=0
agora::rtc::IVideoFrameTransceiverEx::addVideoTrackLLApiInternal
virtual int addVideoTrackLLApiInternal(agora_refptr< IVideoTrack > track)=0
agora::rtc::IVideoFilterEx::isExternal
bool isExternal() override
Definition: video_node_i.h:103
agora::rtc::IVideoRendererEx
Definition: video_node_i.h:241
agora::rtc::IVideoFrameAdapter::setOutputFormat
virtual void setOutputFormat(const VideoDataPipeFormat &format, agora::Optional< VideoDataPipeFormat > &source_pipe_format_expected)
Definition: video_node_i.h:126
agora::rtc::IVideoFilterEx
Definition: video_node_i.h:95
agora::rtc::VideoEncodedImageData::codec
VIDEO_CODEC_TYPE codec
Definition: video_node_i.h:381
agora::rtc::ICameraCapturerEx
Definition: video_node_i.h:146
agora::rtc::ICameraCapturerEx::getCaptureFormatLLApiInternal
virtual VideoFormat getCaptureFormatLLApiInternal()=0
agora::rtc::CameraCharacteristicProfile::pqFirst
int pqFirst
Definition: video_node_i.h:393
agora::rtc::ICameraCapturerEx::getCameraMaxZoomLLApiInternal
virtual float getCameraMaxZoomLLApiInternal()=0
agora::rtc::IVideoRendererEx::removeViewLLApiInternal
virtual int removeViewLLApiInternal(view_t view)
Definition: video_node_i.h:354
agora::rtc::IVideoRendererEx::ViewOption::cropArea
Rectangle cropArea
Definition: video_node_i.h:244
agora::rtc::VideoEncodedImageData
Definition: video_node_i.h:373
agora::rtc::IExtensionVideoFilterControlEx::NotifySrDelay
virtual void NotifySrDelay(int sr_delay_ms)=0
agora::rtc::BUILT_IN_REMOTE_ADAPTER
static const char *const BUILT_IN_REMOTE_ADAPTER
Definition: video_node_i.h:76
agora::rtc::ICameraCapturerEx::setCameraSkipControl
virtual void setCameraSkipControl(int skip_control)=0
agora::rtc::IVideoMixerSourceEx::removeVideoTrackLLApiInternal
virtual int removeVideoTrackLLApiInternal(const char *id, agora_refptr< IVideoTrack > track)=0
agora::rtc::GlobalResourceMetaInfo::init_func
int(* init_func)(void *)
Definition: video_node_i.h:507
agora::rtc::ICameraCapturerEx::setCameraSourceLLApiInternal
virtual int setCameraSourceLLApiInternal(ICameraCapturer::CAMERA_SOURCE source)=0
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:28
agora::rtc::VideoHWCodecSpec::EncodeCapacity
std::string EncodeCapacity
Definition: video_node_i.h:406
agora::rtc::CameraCharacteristicProfile::lowLevelCamera
bool lowLevelCamera
Definition: video_node_i.h:398
agora::rtc::IVideoRendererEx::setRenderModeLLApiInternal
virtual int setRenderModeLLApiInternal(media::base::RENDER_MODE_TYPE renderMode)
Definition: video_node_i.h:344
agora::rtc::IVideoRendererEx::SetVideoQoEPusher
virtual void SetVideoQoEPusher(std::weak_ptr< agora::rtc::VideoStatsEventsPusher > pusher)
Definition: video_node_i.h:322
agora::rtc::ICameraCapturerEx::enableFaceDetectionLLApiInternal
virtual int32_t enableFaceDetectionLLApiInternal(bool enable)=0
agora::rtc::ICameraCapturerEx::setCameraTemplateType
virtual void setCameraTemplateType(int type)=0
agora::rtc::ICameraCapturerEx::switchCameraLLApiInternal
virtual int switchCameraLLApiInternal()=0
agora::rtc::IObservableVideoSink::~IObservableVideoSink
~IObservableVideoSink()
Definition: video_node_i.h:362
agora::rtc::ICameraCapturerEx::setCameraExposureFactorLLApiInternal
virtual int setCameraExposureFactorLLApiInternal(float factor)=0
agora::rtc::ICameraCapturerEx::setCamera1FpsRangeEnabled
virtual void setCamera1FpsRangeEnabled(bool enable)=0
agora::rtc::VideoEncodedImageData::height
int height
Definition: video_node_i.h:377
agora::rtc::CAMERA_OUTPUT_TEXTURE
@ CAMERA_OUTPUT_TEXTURE
Definition: video_node_i.h:142
agora::rtc::IVideoRendererEx::setMirrorLLApiInternal
virtual int setMirrorLLApiInternal(void *view, bool mirror)
Definition: video_node_i.h:348
agora::rtc::IVideoRendererEx::addView
int addView(void *view, const Rectangle &cropArea, aosl_ref_t ares=AOSL_REF_INVALID) override
Definition: video_node_i.h:261
agora::rtc::IVideoFrameAdapter::setOutputRotation
virtual void setOutputRotation(webrtc::VideoRotation rotation)
Definition: video_node_i.h:131
agora::rtc::VideoDataPipeFormat::VideoDataPipeFormat
VideoDataPipeFormat(const VideoFormat &f, bool fi)
Definition: video_node_i.h:63
agora::rtc::IVideoRendererEx::ViewOption::backgroundColor
uint32_t backgroundColor
Definition: video_node_i.h:247
agora::rtc::IVideoMixerSourceEx::onFrame
virtual void onFrame(const std::string &uid, const webrtc::VideoFrame &frame)=0
rtc::VideoSinkInterface
Definition: video_node_i.h:32
agora::rtc::ICameraCapturerEx::isFocusSupportedLLApiInternal
virtual bool isFocusSupportedLLApiInternal()=0
agora::rtc::IVideoMixerSourceEx::clearLayoutLLApiInternal
virtual int clearLayoutLLApiInternal()=0
agora::rtc::BUILT_IN_ADAPTER
static const char *const BUILT_IN_ADAPTER
Definition: video_node_i.h:75
agora::rtc::CameraCharacteristicProfile::noiseReduce
int noiseReduce
Definition: video_node_i.h:395
agora::rtc::ICameraCapturerEx::setCameraSelectedLevel
virtual void setCameraSelectedLevel(int camera_selected_level)=0
agora::rtc::IVideoFilter
Definition: NGIAgoraMediaNode.h:197
agora::rtc::VideoHWCodecSpec::GPUVersion
std::string GPUVersion
Definition: video_node_i.h:405
agora::rtc::VideoEncodedImageData::streamType
VIDEO_STREAM_TYPE streamType
Definition: video_node_i.h:382
agora::rtc::FrameProcessResult::FrameProcessResult
FrameProcessResult(const webrtc::VideoFrame &frame, bool drop)
Definition: video_node_i.h:55
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:359
agora::rtc::IVideoRendererEx::getViewMetaInfo
virtual int getViewMetaInfo(agora::view_t view, PreviewMetaInfo &info)
Definition: video_node_i.h:331
rtc
Definition: video_node_i.h:28
agora::rtc::ICameraCapturerEx::registerCameraObserverLLApiInternal
virtual int registerCameraObserverLLApiInternal(ICameraCaptureObserver *observer)=0
agora::rtc::CameraCharacteristicProfile::templateType
int templateType
Definition: video_node_i.h:394
agora::Optional
Definition: AgoraOptional.h:52
agora::rtc::ICameraCapturerEx::setVideoEdgeMode
virtual void setVideoEdgeMode(int mode)=0
agora::rtc::IVideoMixerSourceEx::stopMixing
virtual void stopMixing()=0
agora::rtc::IVideoRendererEx::setRenderModeLLApiInternal
virtual int setRenderModeLLApiInternal(void *view, media::base::RENDER_MODE_TYPE renderMode)
Definition: video_node_i.h:345
agora::rtc::IVideoFrameAdapter::setMirror
virtual void setMirror(bool mirror)
Definition: video_node_i.h:134
agora::rtc::ICameraCapturerEx::setCameraPqFirst
virtual void setCameraPqFirst(bool pq_first)=0
agora::rtc::CameraCharacteristicProfile::hardwareLevel
std::string hardwareLevel
Definition: video_node_i.h:399
agora::rtc::FrameProcessResult::dropFrame
bool dropFrame
Definition: video_node_i.h:54
agora::rtc::ICameraCapturerEx::setOutputFormat
virtual void setOutputFormat(const VideoDataPipeFormat &output_format, bool bypass_resolution_adaption=false)=0
agora::rtc::VideoEncodedImageData::width
int width
Definition: video_node_i.h:376
agora::rtc::VideoHWCodecSpec::profile
int32_t profile
Definition: video_node_i.h:416