Agora C++ API Reference for All Platforms
|
13 #include "AgoraMediaBase.h"
14 #include "AgoraRefPtr.h"
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"
29 struct VideoSinkWants;
31 template <
typename V
ideoFrameT>
37 struct RenderFreezeStats;
46 agora::rtc::view_shared_ptr_t
view;
99 std::shared_ptr<FrameProcessResult> resultSp) = 0;
106 virtual void onDropFrame(agora::rtc::VideoQoEDropType drop_type) {}
150 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
169 #elif defined(_WIN32) || (defined(TARGET_OS_IPHONE) && !(TARGET_OS_IPHONE) && (TARGET_OS_MAC)) || \
170 (defined(__linux__) && !defined(__ANDROID__))
181 #if defined(__ANDROID__)
206 #if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
212 #if defined(WEBRTC_IOS)
219 #if defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__)) || \
220 (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
244 virtual int onFrame(
const webrtc::VideoFrame& videoFrame) {
249 int setView(
void* view, aosl_ref_t ares = AOSL_REF_INVALID)
override {
254 int addView(
void* view,
const Rectangle& cropArea, aosl_ref_t ares = AOSL_REF_INVALID)
override {
270 virtual int addViewEx(agora::rtc::view_shared_ptr_t view) {
286 int setMirror(
void* view,
bool mirror, aosl_ref_t ares = AOSL_REF_INVALID)
override {
466 virtual void onFrame(
const std::string& uid,
const webrtc::VideoFrame& frame) = 0;
487 virtual int onFrame(
const webrtc::VideoFrame& videoFrame) = 0;
int removeView(void *view) override
Definition: video_node_i.h:260
virtual void setVideoFrameObserver(agora::media::IVideoFrameObserver *observer)
Definition: video_node_i.h:360
std::string deviceType
Definition: video_node_i.h:418
static const char *const BUILT_IN_POST_CAPTURER_FILTER_FRAME_OBSERVER
Definition: video_node_i.h:89
std::string deviceName
Definition: video_node_i.h:416
virtual int32_t setCameraAutoFaceFocusLLApiInternal(bool enable)=0
virtual bool isCameraFaceDetectSupportedLLApiInternal()=0
std::string maxResolution
Definition: video_node_i.h:404
virtual int setBackgroundLLApiInternal(uint32_t width, uint32_t height, int fps, uint32_t color_rgba=0)=0
int framesPerSecond
Definition: video_node_i.h:371
virtual int unsetView(aosl_ref_t ares=AOSL_REF_INVALID)=0
Definition: video_node_i.h:428
virtual ~IVideoMixerSourceEx()=default
virtual int refreshLLApiInternal()=0
virtual int setMirrorEx(agora::view_t view, bool mirror, aosl_ref_t ares=AOSL_REF_INVALID)
Definition: video_node_i.h:299
virtual int delImageSourceLLApiInternal(const char *id)=0
virtual void setCameraDropCount(int dropcount)=0
virtual int setMirrorExLLApiInternal(view_t view, bool mirror)
Definition: video_node_i.h:342
CAMERA_OUTPUT_DATA_TYPE
Definition: video_node_i.h:140
virtual void setCamera2FocusMode(int mode)=0
Definition: NGIAgoraCameraCapturer.h:484
CAMERA_SOURCE
Definition: NGIAgoraCameraCapturer.h:26
Definition: video_node_i.h:115
int32_t platformid
Definition: video_node_i.h:403
virtual void setCameraAutoWhiteBalance(bool enable)=0
virtual void registerMixedFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
Definition: AgoraRefPtr.h:44
static const char *const BUILT_IN_MAJOR_TEE
Definition: video_node_i.h:84
Definition: NGIAgoraMediaNode.h:936
@ RENDERER_EXT_OBSERVER
Definition: video_node_i.h:42
virtual bool sendEncodedVideoImageLLApiInternal(const uint8_t *imageBuffer, size_t length, const EncodedVideoFrameInfo &videoEncodedFrameInfo)=0
Definition: video_node_i.h:358
Definition: video_node_i.h:507
virtual void onDropFrame(agora::rtc::VideoQoEDropType drop_type)
Definition: video_node_i.h:106
int setView(void *view, aosl_ref_t ares=AOSL_REF_INVALID) override
Definition: video_node_i.h:249
virtual int addImageSourceLLApiInternal(const char *id, const MixerLayoutConfig &config, ImageType type, std::shared_ptr< int > result)=0
Definition: common_defines.h:18
int32_t codecType
Definition: video_node_i.h:401
virtual bool pushMode()=0
Definition: AgoraBase.h:2216
Definition: NGIAgoraVideoMixerSource.h:18
virtual int32_t setNoiseReductionMode(int mode)=0
Definition: AgoraBase.h:1635
bool textureCopy
Definition: video_node_i.h:385
void * view_t
Definition: AgoraBase.h:810
virtual int setDeviceOrientationLLApiInternal(VIDEO_ORIENTATION orientation)=0
virtual int32_t setCameraTorchOnLLApiInternal(bool isOn)=0
virtual void switchCameraIdLLApiInternal(const char *cameraId)=0
bool inited
Definition: video_node_i.h:393
virtual int setViewLLApiInternal(view_t view)
Definition: video_node_i.h:344
virtual int setRotationLLApiInternal(uint8_t rotation)=0
int32_t bitrateMode
Definition: video_node_i.h:408
std::string image
Definition: video_node_i.h:367
virtual int removeVideoTrackLLApiInternal(agora_refptr< IVideoTrack > track)=0
virtual int sendVideoFrameLLApiInternal(const media::base::ExternalVideoFrame &videoFrame)=0
static const char *const BUILT_IN_PREVIEW_TEE
Definition: video_node_i.h:83
virtual void deRegisterMixedFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
virtual void attachUserInfo(uid_t uid, uint64_t state_space)
Definition: video_node_i.h:310
VIDEO_FRAME_TYPE frameType
Definition: video_node_i.h:368
virtual void setHDRCaptureEnable(bool enableHDRCapture)=0
virtual void adaptVideoFrameAsync(const webrtc::VideoFrame &inputFrame, std::shared_ptr< FrameProcessResult > resultSp)=0
virtual ~IVideoEncodedImageCallback()
Definition: video_node_i.h:424
virtual CAMERA_OUTPUT_DATA_TYPE getCameraOutputDataType()=0
std::string codecName
Definition: video_node_i.h:397
bool inited
Definition: video_node_i.h:411
virtual void setCameraExtraSurface(bool extraSurface)=0
virtual int getAvgMixerDelayLLApiInternal()=0
virtual int setRenderModeExLLApiInternal(view_t view, media::base::RENDER_MODE_TYPE renderMode)
Definition: video_node_i.h:339
virtual int setMirrorLLApiInternal(bool mirror)
Definition: video_node_i.h:340
virtual int onFrame(const webrtc::VideoFrame &videoFrame)
Definition: video_node_i.h:244
virtual bool enableMultiCameraLLApiInternal(bool enable)=0
VIDEO_MIRROR_MODE_TYPE
Definition: AgoraBase.h:1814
bool whiteBalance
Definition: video_node_i.h:390
virtual int ReportCounter(int32_t counter_id, int32_t value)=0
static const char *const BUILT_IN_POST_CAPTURER_WATERMARK_FILTER
Definition: video_node_i.h:78
@ CAMERA_OUTPUT_RAW
Definition: video_node_i.h:141
Definition: NGIAgoraMediaNode.h:758
static const char *const BUILT_IN_PRE_ENCODER_FILTER_OBSERVER
Definition: video_node_i.h:88
virtual void setVideoStabilityMode(int mode)=0
std::vector< CameraInfo > CameraInfoList
Definition: video_node_i.h:420
Definition: AgoraAtomicOps.h:21
virtual bool isCameraAutoExposureFaceModeSupportedLLApiInternal()=0
int setMirror(void *view, bool mirror, aosl_ref_t ares=AOSL_REF_INVALID) override
Definition: video_node_i.h:286
Definition: video_node_i.h:460
virtual void setColorSpaceInfo(webrtc::ColorSpace colorSpace)=0
virtual int getVideoFrame(webrtc::VideoFrame &videoFrame)=0
virtual int32_t setCameraZoomLLApiInternal(float zoomValue)=0
virtual int setRenderMode(media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual void SetFilterId(std::string id)
Definition: video_node_i.h:107
Definition: video_node_i.h:236
int setRenderMode(void *view, media::base::RENDER_MODE_TYPE renderMode, aosl_ref_t ares=AOSL_REF_INVALID) override
Definition: video_node_i.h:280
virtual int setCameraExposurePositionLLApiInternal(float positionXinView, float positionYinView)=0
static const char *const BUILT_IN_MINOR_ADAPTER
Definition: video_node_i.h:86
virtual void startMixing()=0
static const char *const BUILT_IN_SIMULCAST_TEE
Definition: video_node_i.h:85
virtual bool isCameraExposurePositionSupportedLLApiInternal()=0
virtual void DeRegisterVideoFrameCallback()=0
int64_t ptsMs
Definition: video_node_i.h:379
virtual int setBackgroundLLApiInternal(uint32_t width, uint32_t height, int fps, const char *url)=0
virtual int setCameraSourceWithCameraId(CAMERA_SOURCE source, const char *camera_id)=0
static const char *const GLFW_RESOURCE
Definition: video_node_i.h:497
VIDEO_CODEC_TYPE
Definition: AgoraBase.h:1165
@ RENDERER_BUILT_IN_RENDERER
Definition: video_node_i.h:41
~IObservableVideoFilter()
Definition: video_node_i.h:363
virtual int setCropAreaEx(agora::view_t view, const Rectangle &cropArea, aosl_ref_t ares=AOSL_REF_INVALID)
Definition: video_node_i.h:304
virtual ~IVideoFrameSenderEx()
Definition: video_node_i.h:448
virtual bool isZoomSupportedLLApiInternal()=0
@ RENDERER_NONE
Definition: video_node_i.h:40
virtual void setVideoQoEPusher(std::weak_ptr< VideoStatsEventsPusher > pusher)
Definition: video_node_i.h:105
VIDEO_ORIENTATION
Definition: AgoraBase.h:943
virtual void attachStatsSpace(uint64_t stats_space)
Definition: video_node_i.h:104
bool faceFocusing
Definition: video_node_i.h:389
virtual void setCameraLowPower(bool lowPower)=0
virtual int sendVideoFrame(const webrtc::VideoFrame &videoFrame)=0
int64_t decodeTimeMs
Definition: video_node_i.h:377
virtual void setCameraSelected(int module_selected)=0
virtual int ReleaseGlobalResource(const GlobalResourceMetaInfo &meta_info, int &resource_count)=0
virtual void setAutoFaceDetectFocus(bool enable)=0
Definition: NGIAgoraCameraCapturer.h:20
static const char *const BUILT_IN_PRE_ENCODER_FILTER_FRAME_OBSERVER
Definition: video_node_i.h:90
virtual void setCameraTemplateVideoLowestScore(int lowestScore)=0
uid_t cropAreaUid
Definition: video_node_i.h:238
Definition: NGIAgoraVideoTrack.h:366
virtual int setStreamLayoutLLApiInternal(const char *id, const MixerLayoutConfig &config, std::shared_ptr< int > result)=0
Definition: video_node_i.h:444
VIDEO_FRAME_TYPE
Definition: AgoraBase.h:1007
bool inUse
Definition: video_node_i.h:415
virtual void onSinkWantsChanged(const ::rtc::VideoSinkWants &wants)=0
std::string deviceid
Definition: video_node_i.h:405
virtual int initWithDeviceNameLLApiInternal(const char *deviceName)=0
Definition: video_node_i.h:485
virtual void DeRegisterEncodedImageCallback(IVideoEncodedImageCallback *dataCallback, VIDEO_STREAM_TYPE stream_type)=0
virtual bool hasVideoTrack(const std::string &id)=0
virtual int ReportEvent(int32_t event_id, void *event)=0
static const char *const BUILT_IN_PRE_ENCODER_FACEDETECE_FILTER
Definition: video_node_i.h:80
Definition: NGIAgoraVideoMixerSource.h:44
virtual void deRegisterFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
virtual void registerFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
virtual int onFrame(const media::base::VideoFrame &videoFrame)=0
virtual int addViewEx(agora::rtc::view_shared_ptr_t view, const ViewOption &option)
Definition: video_node_i.h:265
int64_t internalUplinkCostTimeStartMs
Definition: video_node_i.h:378
virtual int setMasterClockSourceLLApiInternal(const char *id=NULL)=0
virtual int setMirror(bool mirror, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual void setPreviewInfo(const PreviewMetaInfo &info)
Definition: video_node_i.h:151
int64_t captureTimeMs
Definition: video_node_i.h:376
virtual int sendVideoFrame(const media::base::ExternalVideoFrame &videoFrame, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int getHeight() const =0
virtual int setCameraAutoExposureFaceModeEnabledLLApiInternal(bool enabled)=0
~IVideoFilterEx()
Definition: video_node_i.h:110
virtual int DeclareGlobalResource(const GlobalResourceMetaInfo &meta_info, int &resource_count)=0
virtual int addViewLLApiInternal(view_t view, const Rectangle &cropArea)
Definition: video_node_i.h:345
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:293
int32_t minSupportedBitrate
Definition: video_node_i.h:410
virtual int addVideoTrackLLApiInternal(const char *id, agora_refptr< IVideoTrack > track)=0
Definition: video_node_i.h:414
Definition: NGIAgoraMediaNode.h:857
virtual void OnVideoEncodedImage(agora_refptr< VideoEncodedImageData > data)=0
virtual int getWidth() const =0
virtual int unregisterCameraObserverLLApiInternal(ICameraCaptureObserver *observer)=0
ImageType
Definition: NGIAgoraVideoMixerSource.h:32
virtual int removeViewEx(agora::view_t view)
Definition: video_node_i.h:275
static const char *const BUILT_IN_SOURCE_TEE
Definition: video_node_i.h:82
~IVideoFrameAdapter()
Definition: video_node_i.h:137
int32_t inputType
Definition: video_node_i.h:407
virtual int addViewEx(agora::rtc::view_shared_ptr_t view)
Definition: video_node_i.h:270
Definition: video_node_i.h:396
virtual bool isCameraTorchSupportedLLApiInternal()=0
virtual void setCameraMirror(VIDEO_MIRROR_MODE_TYPE mirror)=0
std::string DecodeCapacity
Definition: video_node_i.h:400
@ CAMERA_OUTPUT_TEXTURE_AND_RAW
Definition: video_node_i.h:143
virtual bool isAutoFaceFocusSupportedLLApiInternal()=0
Definition: video_node_i.h:52
virtual bool isCameraExposureSupportedLLApiInternal()=0
webrtc::VideoFrame outputFrame
Definition: video_node_i.h:53
Definition: NGIAgoraMediaNode.h:293
virtual void DetachStatSpace(uint64_t stats_space)=0
virtual int getViewCount()
Definition: video_node_i.h:330
virtual void setFocalLengthType(CAMERA_FOCAL_LENGTH_TYPE focalLengthType)=0
virtual void observeTxDelay(ILocalVideoTrack *track)=0
@ ERR_NOT_SUPPORTED
Definition: AgoraBase.h:477
int32_t codecNum
Definition: video_node_i.h:402
static const char *const BUILT_IN_POST_CAPTURER_FILTER_OBSERVER
Definition: video_node_i.h:87
virtual int delStreamLayoutLLApiInternal(const char *id)=0
virtual int clearBuffer()
Definition: video_node_i.h:334
virtual void RegisterEncodedImageCallback(IVideoEncodedImageCallback *dataCallback, VIDEO_STREAM_TYPE stream_type)=0
VIDEO_ORIENTATION rotation
Definition: video_node_i.h:373
static const char *const BUILT_IN_STITCH_FRAME
Definition: video_node_i.h:91
virtual int setCropAreaExLLApiInternal(view_t view, const Rectangle &cropArea)
Definition: video_node_i.h:343
virtual int initWithDeviceIdLLApiInternal(const char *deviceId)=0
static const char *const BUILT_IN_SOURCE_FILTER
Definition: video_node_i.h:73
Definition: video_node_i.h:422
InternalRendererType
Definition: video_node_i.h:39
virtual int setCaptureFormatLLApiInternal(const VideoFormat &capture_format)=0
bool enableAlphaMask
Definition: video_node_i.h:239
Definition: video_node_i.h:382
virtual void RegisterVideoFrameCallback(::rtc::VideoSinkInterface< webrtc::VideoFrame > *dataCallback)=0
virtual int32_t setCameraFocusLLApiInternal(float x, float y)=0
Definition: NGIAgoraMediaNode.h:734
virtual void setCamera1FocusMode(int mode)=0
int32_t EncodeMaxLevel
Definition: video_node_i.h:406
virtual int unsetViewLLApiInternal()
Definition: video_node_i.h:346
Definition: video_node_i.h:350
virtual ~IVideoEncodedImageSenderEx()
Definition: video_node_i.h:430
static const char *const BUILT_IN_PRE_ENCODER_WATERMARK_FILTER
Definition: video_node_i.h:77
virtual void setCameraOutputDataType(CAMERA_OUTPUT_DATA_TYPE type)=0
virtual void setCameraRefocusEnabled(bool enable)=0
CAMERA_FOCAL_LENGTH_TYPE
Definition: AgoraBase.h:1213
Definition: AgoraRefPtr.h:31
std::string deviceId
Definition: video_node_i.h:417
static const char *const BUILT_IN_METADATA_OBSERVER
Definition: video_node_i.h:74
virtual std::string getDeviceId()=0
virtual ~IExtensionVideoFilterControlEx()=default
int deviceId
Definition: video_node_i.h:383
VIDEO_STREAM_TYPE
Definition: AgoraBase.h:1569
virtual int getViewMetaInfo(PreviewMetaInfo &info)
Definition: video_node_i.h:319
virtual ~ICameraCapturerEx()
Definition: video_node_i.h:148
virtual int onFrame(const webrtc::VideoFrame &videoFrame)=0
bool isTexture
Definition: video_node_i.h:384
virtual void AttachStatSpace(uint64_t stats_space)=0
virtual int addVideoTrackLLApiInternal(agora_refptr< IVideoTrack > track)=0
bool isExternal() override
Definition: video_node_i.h:103
Definition: video_node_i.h:234
virtual void setOutputFormat(const VideoDataPipeFormat &format, agora::Optional< VideoDataPipeFormat > &source_pipe_format_expected)
Definition: video_node_i.h:126
Definition: video_node_i.h:95
VIDEO_CODEC_TYPE codec
Definition: video_node_i.h:374
Definition: video_node_i.h:146
virtual VideoFormat getCaptureFormatLLApiInternal()=0
virtual float getCameraMaxZoomLLApiInternal()=0
virtual int removeViewLLApiInternal(view_t view)
Definition: video_node_i.h:347
Rectangle cropArea
Definition: video_node_i.h:237
Definition: video_node_i.h:366
virtual void NotifySrDelay(int sr_delay_ms)=0
static const char *const BUILT_IN_REMOTE_ADAPTER
Definition: video_node_i.h:76
bool pqFirst
Definition: video_node_i.h:386
virtual void setCameraSkipControl(int skip_control)=0
virtual int removeVideoTrackLLApiInternal(const char *id, agora_refptr< IVideoTrack > track)=0
virtual int setCameraSourceLLApiInternal(ICameraCapturer::CAMERA_SOURCE source)=0
unsigned int uid_t
Definition: AgoraMediaBase.h:28
std::string EncodeCapacity
Definition: video_node_i.h:399
bool lowLevelCamera
Definition: video_node_i.h:391
virtual int setRenderModeLLApiInternal(media::base::RENDER_MODE_TYPE renderMode)
Definition: video_node_i.h:337
virtual void SetVideoQoEPusher(std::weak_ptr< agora::rtc::VideoStatsEventsPusher > pusher)
Definition: video_node_i.h:315
virtual int32_t enableFaceDetectionLLApiInternal(bool enable)=0
virtual void setCameraTemplateType(int type)=0
virtual int switchCameraLLApiInternal()=0
~IObservableVideoSink()
Definition: video_node_i.h:355
virtual int setCameraExposureFactorLLApiInternal(float factor)=0
virtual void setCamera1FpsRangeEnabled(bool enable)=0
int height
Definition: video_node_i.h:370
@ CAMERA_OUTPUT_TEXTURE
Definition: video_node_i.h:142
virtual int setMirrorLLApiInternal(void *view, bool mirror)
Definition: video_node_i.h:341
int addView(void *view, const Rectangle &cropArea, aosl_ref_t ares=AOSL_REF_INVALID) override
Definition: video_node_i.h:254
virtual void setOutputRotation(webrtc::VideoRotation rotation)
Definition: video_node_i.h:131
uint32_t backgroundColor
Definition: video_node_i.h:240
virtual void onFrame(const std::string &uid, const webrtc::VideoFrame &frame)=0
Definition: video_node_i.h:32
virtual bool isFocusSupportedLLApiInternal()=0
virtual int clearLayoutLLApiInternal()=0
static const char *const BUILT_IN_ADAPTER
Definition: video_node_i.h:75
int noiseReduce
Definition: video_node_i.h:388
virtual void setCameraSelectedLevel(int camera_selected_level)=0
Definition: NGIAgoraMediaNode.h:197
std::string GPUVersion
Definition: video_node_i.h:398
VIDEO_STREAM_TYPE streamType
Definition: video_node_i.h:375
FrameProcessResult(const webrtc::VideoFrame &frame, bool drop)
Definition: video_node_i.h:55
virtual void setOutputFormat(const VideoFormat &format, bool fixed=false)=0
virtual void setVideoFrameObserver(agora::media::IVideoFrameObserver *observer)
Definition: video_node_i.h:352
virtual int getViewMetaInfo(agora::view_t view, PreviewMetaInfo &info)
Definition: video_node_i.h:324
Definition: video_node_i.h:28
virtual int registerCameraObserverLLApiInternal(ICameraCaptureObserver *observer)=0
int templateType
Definition: video_node_i.h:387
Definition: AgoraOptional.h:52
virtual void setVideoEdgeMode(int mode)=0
virtual void stopMixing()=0
virtual int setRenderModeLLApiInternal(void *view, media::base::RENDER_MODE_TYPE renderMode)
Definition: video_node_i.h:338
virtual void setMirror(bool mirror)
Definition: video_node_i.h:134
virtual void setCameraPqFirst(bool pq_first)=0
std::string hardwareLevel
Definition: video_node_i.h:392
bool dropFrame
Definition: video_node_i.h:54
virtual void setOutputFormat(const VideoDataPipeFormat &output_format, bool bypass_resolution_adaption=false)=0
int width
Definition: video_node_i.h:369
int32_t profile
Definition: video_node_i.h:409