Agora RTC Objective-C API Reference Refactor

NGIAgoraLocalUser.h
Go to the documentation of this file.
1 //
2 // Agora SDK
3 //
4 // Created by Zheng Ender in 2018-01.
5 // Copyright (c) 2018 Agora.io. All rights reserved.
6 //
7
8 #pragma once // NOLINT(build/header_guard)
9
10 #include <cstring>
11 #include <vector>
12 #include "AgoraBase.h"
13 #include "AgoraOptional.h"
14 #include <api/cpp/aosl_ares_class.h>
15
16 namespace agora {
17 namespace media {
18 class IAudioFrameObserver;
19 }
20
21 class ILocalDataChannel;
22 class IDataChannelObserver;
23
24 namespace rtc {
25 class IAudioEngineWrapper;
26
27 class ILocalUserObserver;
28 class ILocalVideoTrack;
29 class IRemoteVideoTrack;
30 class IVideoFrameObserver2;
31
32 class IMediaControlPacketSender;
33 class IMediaControlPacketReceiver;
34 struct AudioEncoderConfiguration;
35 struct VideoEncoderConfiguration;
36
37 class ILocalAudioTrack;
38 struct RemoteAudioTrackStats;
39 class IRemoteAudioTrack;
40 struct LocalVideoTrackStats;
41 struct RemoteVideoTrackStats;
42 class IMediaPacketReceiver;
43 class IVideoSinkBase;
44
56 class ILocalUser {
57 public:
61 struct ANAStats {
67 agora::Optional<uint32_t> bitrate_action_counter;
73 agora::Optional<uint32_t> channel_action_counter;
79 agora::Optional<uint32_t> dtx_action_counter;
85 agora::Optional<uint32_t> fec_action_counter;
92 agora::Optional<uint32_t> frame_length_increase_counter;
99 agora::Optional<uint32_t> frame_length_decrease_counter;
105 agora::Optional<float> uplink_packet_loss_fraction;
106 };
107
111 struct AudioProcessingStats {
120 agora::Optional<double> echo_return_loss;
121 //
132 agora::Optional<double> echo_return_loss_enhancement;
137 agora::Optional<double> divergent_filter_fraction;
138
151 agora::Optional<int32_t> delay_median_ms;
155 agora::Optional<int32_t> delay_standard_deviation_ms;
156
160 agora::Optional<double> residual_echo_likelihood;
164 agora::Optional<double> residual_echo_likelihood_recent_max;
165
170 agora::Optional<int32_t> delay_ms;
171 };
172
176 struct LocalAudioDetailedStats {
180 uint32_t local_ssrc;
184 int64_t bytes_sent;
188 int32_t packets_sent;
192 int32_t packets_lost;
196 float fraction_lost;
200 char codec_name[media::base::kMaxCodecNameLength];
204 agora::Optional<int> codec_payload_type;
208 int32_t ext_seqnum;
212 int32_t jitter_ms;
216 int64_t rtt_ms;
220 int32_t audio_level;
224 double total_input_energy;
228 double total_input_duration;
234 bool typing_noise_detected;
235
240 ANAStats ana_statistics;
241 AudioProcessingStats apm_statistics;
242
243 LocalAudioDetailedStats() : local_ssrc(0), bytes_sent(0), packets_sent(0), packets_lost(-1), fraction_lost(-1.0f),
244 ext_seqnum(-1), jitter_ms(-1), rtt_ms(-1), audio_level(-1),
245 total_input_energy(0.0), total_input_duration(0.0), typing_noise_detected(false) {
246 memset(codec_name, 0, sizeof(codec_name));
247 }
248 };
249
250 enum NS_MODE {
251 ElderNsStatistical = 0, /* Elder Statistical Noise Suppression.*/
252 NsNGStatistical = 1, /* Next Generation Statistical Noise Suppression.*/
253 NsNG = 2 /* Next Generation Noise Suppression.*/
254 };
255 enum NS_LEVEL {
256 Soft = 0,/* Soft Noise Suppression.*/
257 Aggressive = 1 /* Aggressiveness Noise Suppression.*/
258 };
259 enum NS_DELAY {
260 HighQuality = 0,/* High Audio Quality with High Delay.*/
261 Balance = 1,/* Balanced Audio Quality and Delay.*/
262 LowDelay = 2/* Slight Low Audio Quality with Low Delay.*/
263 };
264
265 public:
266 virtual ~ILocalUser() {}
267
284 virtual int setUserRole(rtc::CLIENT_ROLE_TYPE role, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
285
291 virtual CLIENT_ROLE_TYPE getUserRole() = 0;
292
300 virtual int setAudienceLatencyLevel(AUDIENCE_LATENCY_LEVEL_TYPE level, int role, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
301
302 virtual AUDIENCE_LATENCY_LEVEL_TYPE getAudienceLatencyLevel() = 0;
303
314 virtual int setAudioEncoderConfiguration(const rtc::AudioEncoderConfiguration& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
315
325 virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
326
337 virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
338
352 virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
353
362 virtual bool getLocalAudioStatistics(LocalAudioDetailedStats& stats) = 0;
363
375 virtual int publishAudio(agora_refptr<ILocalAudioTrack> audioTrack, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
376
385 virtual int unpublishAudio(agora_refptr<ILocalAudioTrack> audioTrack, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
386
395 virtual int publishVideo(agora_refptr<ILocalVideoTrack> videoTrack, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
396
405 virtual int unpublishVideo(agora_refptr<ILocalVideoTrack> videoTrack, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
406
416 virtual int subscribeAudio(user_id_t userId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
417
427 virtual int subscribeAllAudio(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
428
438 virtual int unsubscribeAudio(user_id_t userId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
439
450 virtual int unsubscribeAllAudio(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
451
462 virtual int adjustPlaybackSignalVolume(int volume, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
463
471 virtual int getPlaybackSignalVolume(int* volume) = 0;
472
473 /*
474 * Adjust the playback volume of the user specified by uid.
475 *
476 * You can call this method to adjust the playback volume of the user specified by uid
477 * in call. If you want to adjust playback volume of the multi user, you can call this
478 * this method multi times.
479 *
480 * @note
481 * Please call this method after join channel.
482 * This method adjust the playback volume of specified user.
483 *
484 * @param userId The ID of the Remote user.
485 * @param volume The playback volume of the specified remote user. The value ranges between 0 and 400, including the following:
486 * 0: Mute.
487 * 100: (Default) Original volume.
488 * 400: Four times the original volume with signal-clipping protection.
489 * @return
490 * - 0: Success.
491 * - < 0: Failure.
492 */
493 virtual int adjustUserPlaybackSignalVolume(user_id_t userId, int volume, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
494
503 virtual int getUserPlaybackSignalVolume(user_id_t userId, int* volume) = 0;
504
517 virtual int enableSoundPositionIndication(bool enabled, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
518
539 virtual int setRemoteVoicePosition(user_id_t userId, double pan, double gain, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
540
550 virtual int enableSpatialAudio(bool enabled, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
551
561 virtual int setRemoteUserSpatialAudioParams(user_id_t userId, const agora::SpatialAudioParams& param, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
562
579 virtual int setPlaybackAudioFrameParameters(size_t numberOfChannels,
580 uint32_t sampleRateHz,
581 RAW_AUDIO_FRAME_OP_MODE_TYPE mode = RAW_AUDIO_FRAME_OP_MODE_READ_ONLY,
582 int samplesPerCall = 0, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
599 virtual int setRecordingAudioFrameParameters(size_t numberOfChannels,
600 uint32_t sampleRateHz,
601 RAW_AUDIO_FRAME_OP_MODE_TYPE mode = RAW_AUDIO_FRAME_OP_MODE_READ_ONLY,
602 int samplesPerCall = 0, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
617 virtual int setMixedAudioFrameParameters(size_t numberOfChannels,
618 uint32_t sampleRateHz,
619 int samplesPerCall = 0, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
620
639 virtual int setEarMonitoringAudioFrameParameters(bool enabled,
640 size_t numberOfChannels,
641 uint32_t sampleRateHz,
642 RAW_AUDIO_FRAME_OP_MODE_TYPE mode = RAW_AUDIO_FRAME_OP_MODE_READ_ONLY,
643 int samplesPerCall = 0, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
644
659 virtual int setPlaybackAudioFrameBeforeMixingParameters(size_t numberOfChannels,
660 uint32_t sampleRateHz, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
661
678 virtual int registerAudioFrameObserver(agora::media::IAudioFrameObserverBase* observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
687 virtual int unregisterAudioFrameObserver(agora::media::IAudioFrameObserverBase* observer) = 0;
688
699 virtual int enableAudioSpectrumMonitor(int intervalInMS = 100, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
707 virtual int disableAudioSpectrumMonitor(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
708
723 virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer, void (*safeDeleter)(agora::media::IAudioSpectrumObserver*), aosl_ref_t ares = AOSL_REF_INVALID) = 0;
733 virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0;
734
747 virtual int registerLocalVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
755 virtual int unregisterLocalVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* observer) = 0;
763 virtual int forceNextIntraFrame(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
776 virtual int registerVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
784 virtual int unregisterVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* observer) = 0;
785
798 virtual int registerVideoFrameObserver(IVideoFrameObserver2* observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
806 virtual int unregisterVideoFrameObserver(IVideoFrameObserver2* observer) = 0;
807
808 virtual int setVideoSubscriptionOptions(user_id_t userId,
809 const VideoSubscriptionOptions& options, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
810
811 virtual int setHighPriorityUserList(uid_t* vipList, int uidNum, int option, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
812
813 virtual int getHighPriorityUserList(std::vector<uid_t>& vipList, int& option) = 0;
814
815 virtual int setRemoteSubscribeFallbackOption(int option, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
816
831 virtual int setSubscribeAudioBlocklist(user_id_t* userList, int userNumber, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
832
849 virtual int setSubscribeAudioAllowlist(user_id_t* userList, int userNumber, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
850
865 virtual int setSubscribeVideoBlocklist(user_id_t* userList, int userNumber, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
866
883 virtual int setSubscribeVideoAllowlist(user_id_t* userList, int userNumber, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
884
897 virtual int subscribeVideo(user_id_t userId,
898 const VideoSubscriptionOptions &subscriptionOptions, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
899
910 virtual int subscribeAllVideo(const VideoSubscriptionOptions &subscriptionOptions, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
911
921 virtual int unsubscribeVideo(user_id_t userId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
922
933 virtual int unsubscribeAllVideo(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
934
954 virtual int setAudioVolumeIndicationParameters(int intervalInMS, int smooth, bool reportVad, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
955
967 virtual int registerLocalUserObserver(
968 ILocalUserObserver* observer,
969 void(*safeDeleter)(ILocalUserObserver*) = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
970
979 virtual int unregisterLocalUserObserver(ILocalUserObserver* observer) = 0;
980
988 virtual IMediaControlPacketSender* getMediaControlPacketSender() = 0;
989
1002 virtual int registerMediaControlPacketReceiver(IMediaControlPacketReceiver* ctrlPacketReceiver, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1003
1011 virtual int unregisterMediaControlPacketReceiver(IMediaControlPacketReceiver* ctrlPacketReceiver) = 0;
1012
1023 virtual int sendIntraRequest(user_id_t userId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1024
1036 virtual int setAudioFilterable(bool filterable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1037
1047 virtual int enableRemoteAudioTrackFilter(user_id_t userId, const char* id, bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1048
1059 virtual int setRemoteAudioTrackFilterProperty(user_id_t userId, const char* id, const char* key, const char* jsonValue, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1060
1072 virtual int getRemoteAudioTrackFilterProperty(user_id_t userId, const char* id, const char* key, char* jsonValue, size_t bufSize) = 0;
1081 virtual int publishDataChannel(agora_refptr<ILocalDataChannel> channel, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1090 virtual int unpublishDataChannel(agora_refptr<ILocalDataChannel> channel, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1100 virtual int subscribeDataChannel(user_id_t userId, int channelId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1111 virtual int unsubscribeDataChannel(user_id_t userId, int channelId, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1122 virtual int registerDataChannelObserver(IDataChannelObserver * observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1131 virtual int unregisterDataChannelObserver(IDataChannelObserver * observer) = 0;
1143 virtual int SetAudioNsMode(bool NsEnable, NS_MODE NsMode, NS_LEVEL NsLevel, NS_DELAY NsDelay, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1153 virtual int RegisterLocalMixedAudioTrack(agora_refptr<ILocalAudioTrack>& track, bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1161 virtual int takeDataChannelSnapshot(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1172 virtual int sendAudioMetadata(const char* metadata, size_t length, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1182 virtual int setRemoteRenderTargetFps(int targetFps) = 0;
1183 };
1184
1188 struct AudioVolumeInformation {
1192 user_id_t userId;
1193
1197 unsigned int volume;
1198
1199 /*
1200 * The activity status of remote users
1201 */
1202 unsigned int vad;
1203
1207 double voicePitch;
1208
1209 AudioVolumeInformation() : userId(NULL), volume(0), vad(0), voicePitch(0.0) {}
1210 };
1211
1215 struct RemoteAudioContextInfo {
1219 agora::Optional<int> os_type;
1220
1224 agora::Optional<int> router_type;
1225
1229 agora::Optional<int> scenario;
1230
1234 agora::Optional<bool> hardware_3a_enabled;
1235
1239 agora::Optional<bool> aec_enabled;
1240
1244 agora::Optional<bool> ai_aec_enabled;
1245
1249 agora::Optional<bool> ans_enabled;
1250
1254 agora::Optional<bool> ai_ans_enabled;
1255
1259 agora::Optional<bool> agc_enabled;
1260 };
1261
1265 class ILocalUserObserver {
1266 public:
1267 virtual ~ILocalUserObserver() {}
1268
1269 virtual void onAudioTrackPublishStart(agora_refptr<ILocalAudioTrack> audioTrack) = 0;
1276 virtual void onAudioTrackPublishSuccess(agora_refptr<ILocalAudioTrack> audioTrack) = 0;
1277
1278 virtual void onAudioTrackUnpublished(agora_refptr<ILocalAudioTrack> audioTrack) = 0;
1279
1286 virtual void onAudioTrackPublicationFailure(agora_refptr<ILocalAudioTrack> audioTrack,
1287 ERROR_CODE_TYPE error) = 0;
1288
1294 virtual void onLocalAudioTrackStatistics(const LocalAudioStats& stats) = 0;
1301 virtual void onRemoteAudioTrackStatistics(agora_refptr<rtc::IRemoteAudioTrack> audioTrack, const RemoteAudioTrackStats& stats) = 0;
1302
1309 virtual void onRemoteAudioContextInfoChanged(agora_refptr<rtc::IRemoteAudioTrack> audioTrack, const RemoteAudioContextInfo& contextInfo) = 0;
1319 virtual void onUserAudioTrackSubscribed(user_id_t userId,
1320 agora_refptr<rtc::IRemoteAudioTrack> audioTrack) = 0;
1321
1331 virtual void onUserAudioTrackStateChanged(user_id_t userId,
1332 agora_refptr<rtc::IRemoteAudioTrack> audioTrack,
1333 REMOTE_AUDIO_STATE state,
1334 REMOTE_AUDIO_STATE_REASON reason,
1335 int elapsed) = 0;
1336
1337 virtual void onVideoTrackPublishStart(agora_refptr<ILocalVideoTrack> videoTrack) = 0;
1343 virtual void onVideoTrackPublishSuccess(agora_refptr<ILocalVideoTrack> videoTrack) = 0;
1344
1351 virtual void onVideoTrackPublicationFailure(agora_refptr<ILocalVideoTrack> videoTrack,
1352 ERROR_CODE_TYPE error) = 0;
1353
1354 virtual void onVideoTrackUnpublished(agora_refptr<ILocalVideoTrack> videoTrack) = 0;
1366 virtual void onLocalVideoTrackStateChanged(agora_refptr<rtc::ILocalVideoTrack> videoTrack,
1367 LOCAL_VIDEO_STREAM_STATE state,
1368 LOCAL_VIDEO_STREAM_REASON reason) = 0;
1369
1376 virtual void onLocalVideoTrackStatistics(agora_refptr<rtc::ILocalVideoTrack> videoTrack,
1377 const LocalVideoTrackStats& stats) = 0;
1378
1389 virtual void onUserVideoTrackSubscribed(user_id_t userId, const VideoTrackInfo& trackInfo,
1390 agora_refptr<rtc::IRemoteVideoTrack> videoTrack) = 0;
1391
1401 virtual void onUserVideoTrackStateChanged(user_id_t userId,
1402 agora_refptr<rtc::IRemoteVideoTrack> videoTrack,
1403 REMOTE_VIDEO_STATE state,
1404 REMOTE_VIDEO_STATE_REASON reason,
1405 int elapsed) = 0;
1406
1415 virtual void onFirstRemoteVideoFrameRendered(user_id_t userId, int width,
1416 int height, int elapsed) = 0;
1417
1418
1425 virtual void onRemoteVideoTrackStatistics(agora_refptr<rtc::IRemoteVideoTrack> videoTrack,
1426 const RemoteVideoTrackStats& stats) = 0;
1427
1457 virtual void onAudioVolumeIndication(const AudioVolumeInformation* speakers, unsigned int speakerNumber,
1458 int totalVolume) = 0;
1459
1472 virtual void onActiveSpeaker(user_id_t userId) = 0;
1473
1483 virtual void onAudioSubscribeStateChanged(const char* channel, user_id_t userId, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) = 0;
1484
1494 virtual void onVideoSubscribeStateChanged(const char* channel, user_id_t userId, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) = 0;
1495
1504 virtual void onAudioPublishStateChanged(const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) = 0;
1505
1514 virtual void onVideoPublishStateChanged(const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) = 0;
1515
1526 virtual void onRemoteSubscribeFallbackToAudioOnly(user_id_t userId, bool isFallbackOrRecover) {
1527 (void)userId;
1528 (void)isFallbackOrRecover;
1529 }
1530
1536 virtual void onFirstRemoteAudioFrame(user_id_t userId, int elapsed) = 0;
1537
1544 virtual void onFirstRemoteAudioDecoded(user_id_t userId, int elapsed) = 0;
1545
1555 virtual void onFirstRemoteVideoFrame(user_id_t userId, int width, int height, int elapsed) = 0;
1556
1565 virtual void onFirstRemoteVideoDecoded(user_id_t userId, int width, int height, int elapsed) = 0;
1566
1575 virtual void onVideoSizeChanged(user_id_t userId, int width, int height, int rotation) = 0;
1576
1585 virtual void onAudioMetadataReceived(user_id_t userId, const char* metadata, size_t length) {
1586 (void)userId;
1587 (void)metadata;
1588 (void)length;
1589 }
1590
1594 enum USER_MEDIA_INFO {
1598 USER_MEDIA_INFO_MUTE_AUDIO = 0,
1602 USER_MEDIA_INFO_MUTE_VIDEO = 1,
1606 USER_MEDIA_INFO_ENABLE_VIDEO = 4,
1610 USER_MEDIA_INFO_ENABLE_LOCAL_VIDEO = 8,
1611 };
1612
1621 virtual void onUserInfoUpdated(user_id_t userId, USER_MEDIA_INFO msg, bool val) {
1622 (void)userId;
1623 (void)msg;
1624 (void)val;
1625 }
1626
1633 virtual void onIntraRequestReceived() {}
1634
1638 virtual void onStreamMessage(user_id_t userId, int streamId, const char* data, size_t length, uint64_t sendTs = 0) {}
1639
1645 virtual void onUserStateChanged(user_id_t userId, uint32_t state){}
1646
1647 virtual void onVideoRenderingTracingResult(user_id_t user_id, MEDIA_TRACE_EVENT currentState, VideoRenderingTracingInfo tracingInfo) {}
1648 };
1649
1650 class IVideoFrameObserver2 {
1651 public:
1661 virtual void onFrame(const char* channelId, user_id_t remoteUid, const media::base::VideoFrame* frame) = 0;
1662
1663 virtual ~IVideoFrameObserver2() {}
1664 };
1665
1666 } // namespace rtc
1667 } // namespace agora
agora::rtc::ILocalUserObserver::onRemoteSubscribeFallbackToAudioOnly
virtual void onRemoteSubscribeFallbackToAudioOnly(user_id_t userId, bool isFallbackOrRecover)
Definition: NGIAgoraLocalUser.h:1526
agora::rtc::ILocalUser::unpublishVideo
virtual int unpublishVideo(agora_refptr< ILocalVideoTrack > videoTrack, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::RegisterLocalMixedAudioTrack
virtual int RegisterLocalMixedAudioTrack(agora_refptr< ILocalAudioTrack > &track, bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::media::base::VideoFrame
Definition: AgoraMediaBase.h:963
agora::rtc::ILocalUser::setAudioVolumeIndicationParameters
virtual int setAudioVolumeIndicationParameters(int intervalInMS, int smooth, bool reportVad, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IMediaControlPacketReceiver
Definition: NGIAgoraMediaNode.h:628
agora::rtc::ILocalUser::setAudioFilterable
virtual int setAudioFilterable(bool filterable, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::NS_DELAY
NS_DELAY
Definition: NGIAgoraLocalUser.h:259
agora::rtc::ILocalUser::LocalAudioDetailedStats
Definition: NGIAgoraLocalUser.h:176
agora::rtc::ILocalUserObserver::onUserAudioTrackStateChanged
virtual void onUserAudioTrackStateChanged(user_id_t userId, agora_refptr< rtc::IRemoteAudioTrack > audioTrack, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)=0
agora::rtc::ILocalUser::unpublishDataChannel
virtual int unpublishDataChannel(agora_refptr< ILocalDataChannel > channel, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::ERROR_CODE_TYPE
ERROR_CODE_TYPE
Definition: AgoraBase.h:460
agora::rtc::REMOTE_AUDIO_STATE
REMOTE_AUDIO_STATE
Definition: AgoraBase.h:3262
agora::rtc::ILocalUser::AudioProcessingStats::delay_standard_deviation_ms
agora::Optional< int32_t > delay_standard_deviation_ms
Definition: NGIAgoraLocalUser.h:155
agora::media::IAudioFrameObserverBase
Definition: AgoraMediaBase.h:1267
agora::rtc::ILocalUser::setAudienceLatencyLevel
virtual int setAudienceLatencyLevel(AUDIENCE_LATENCY_LEVEL_TYPE level, int role, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onRemoteAudioTrackStatistics
virtual void onRemoteAudioTrackStatistics(agora_refptr< rtc::IRemoteAudioTrack > audioTrack, const RemoteAudioTrackStats &stats)=0
agora::rtc::ILocalUser::ANAStats::frame_length_decrease_counter
agora::Optional< uint32_t > frame_length_decrease_counter
Definition: NGIAgoraLocalUser.h:99
agora::rtc::ILocalUser::ANAStats::fec_action_counter
agora::Optional< uint32_t > fec_action_counter
Definition: NGIAgoraLocalUser.h:85
AgoraBase.h
agora::rtc::ILocalUser::setVideoSubscriptionOptions
virtual int setVideoSubscriptionOptions(user_id_t userId, const VideoSubscriptionOptions &options, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:28
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::ILocalUserObserver::onVideoRenderingTracingResult
virtual void onVideoRenderingTracingResult(user_id_t user_id, MEDIA_TRACE_EVENT currentState, VideoRenderingTracingInfo tracingInfo)
Definition: NGIAgoraLocalUser.h:1647
agora::rtc::ILocalUserObserver::USER_MEDIA_INFO_ENABLE_LOCAL_VIDEO
@ USER_MEDIA_INFO_ENABLE_LOCAL_VIDEO
Definition: NGIAgoraLocalUser.h:1610
agora::rtc::ILocalUser::registerMediaControlPacketReceiver
virtual int registerMediaControlPacketReceiver(IMediaControlPacketReceiver *ctrlPacketReceiver, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:1598
agora::rtc::ILocalUser::setVideoScenario
virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::VIDEO_APPLICATION_SCENARIO_TYPE
VIDEO_APPLICATION_SCENARIO_TYPE
Definition: AgoraBase.h:2928
agora::rtc::ILocalUser::unpublishAudio
virtual int unpublishAudio(agora_refptr< ILocalAudioTrack > audioTrack, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::registerVideoFrameObserver
virtual int registerVideoFrameObserver(IVideoFrameObserver2 *observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onVideoSubscribeStateChanged
virtual void onVideoSubscribeStateChanged(const char *channel, user_id_t userId, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)=0
agora::rtc::ILocalUserObserver::onAudioTrackPublicationFailure
virtual void onAudioTrackPublicationFailure(agora_refptr< ILocalAudioTrack > audioTrack, ERROR_CODE_TYPE error)=0
agora::rtc::ILocalUserObserver::USER_MEDIA_INFO
USER_MEDIA_INFO
Definition: NGIAgoraLocalUser.h:1594
agora::rtc::ILocalUser::AudioProcessingStats::echo_return_loss
agora::Optional< double > echo_return_loss
Definition: NGIAgoraLocalUser.h:120
agora::rtc::ILocalUser::LocalAudioDetailedStats::local_ssrc
uint32_t local_ssrc
Definition: NGIAgoraLocalUser.h:180
agora::rtc::ILocalUser::LocalAudioDetailedStats::fraction_lost
float fraction_lost
Definition: NGIAgoraLocalUser.h:196
agora::rtc::ILocalUserObserver::onUserAudioTrackSubscribed
virtual void onUserAudioTrackSubscribed(user_id_t userId, agora_refptr< rtc::IRemoteAudioTrack > audioTrack)=0
agora::rtc::ILocalUserObserver::onRemoteVideoTrackStatistics
virtual void onRemoteVideoTrackStatistics(agora_refptr< rtc::IRemoteVideoTrack > videoTrack, const RemoteVideoTrackStats &stats)=0
agora::rtc::ILocalUser::AudioProcessingStats::residual_echo_likelihood
agora::Optional< double > residual_echo_likelihood
Definition: NGIAgoraLocalUser.h:160
agora::rtc::ILocalUser::setPlaybackAudioFrameBeforeMixingParameters
virtual int setPlaybackAudioFrameBeforeMixingParameters(size_t numberOfChannels, uint32_t sampleRateHz, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onStreamMessage
virtual void onStreamMessage(user_id_t userId, int streamId, const char *data, size_t length, uint64_t sendTs=0)
Definition: NGIAgoraLocalUser.h:1638
agora::rtc::ILocalUser::LocalAudioDetailedStats::bytes_sent
int64_t bytes_sent
Definition: NGIAgoraLocalUser.h:184
agora::rtc::ILocalUser::adjustPlaybackSignalVolume
virtual int adjustPlaybackSignalVolume(int volume, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onRemoteAudioContextInfoChanged
virtual void onRemoteAudioContextInfoChanged(agora_refptr< rtc::IRemoteAudioTrack > audioTrack, const RemoteAudioContextInfo &contextInfo)=0
agora::rtc::ILocalUser::registerAudioSpectrumObserver
virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver *observer, void(*safeDeleter)(agora::media::IAudioSpectrumObserver *), aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::LOCAL_VIDEO_STREAM_REASON
LOCAL_VIDEO_STREAM_REASON
Definition: AgoraBase.h:3131
agora::rtc::ILocalUser::unsubscribeAllVideo
virtual int unsubscribeAllVideo(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onVideoSizeChanged
virtual void onVideoSizeChanged(user_id_t userId, int width, int height, int rotation)=0
agora::rtc::ILocalUserObserver
Definition: NGIAgoraLocalUser.h:1265
agora::rtc::ILocalUser::unregisterAudioSpectrumObserver
virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver *observer)=0
agora::rtc::ILocalUserObserver::onUserVideoTrackSubscribed
virtual void onUserVideoTrackSubscribed(user_id_t userId, const VideoTrackInfo &trackInfo, agora_refptr< rtc::IRemoteVideoTrack > videoTrack)=0
agora::rtc::ILocalUser::ANAStats::uplink_packet_loss_fraction
agora::Optional< float > uplink_packet_loss_fraction
Definition: NGIAgoraLocalUser.h:105
agora::rtc::ILocalUser::setMixedAudioFrameParameters
virtual int setMixedAudioFrameParameters(size_t numberOfChannels, uint32_t sampleRateHz, int samplesPerCall=0, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::USER_MEDIA_INFO_ENABLE_VIDEO
@ USER_MEDIA_INFO_ENABLE_VIDEO
Definition: NGIAgoraLocalUser.h:1606
agora::rtc::ILocalUser::unregisterAudioFrameObserver
virtual int unregisterAudioFrameObserver(agora::media::IAudioFrameObserverBase *observer)=0
agora::rtc::ILocalUser::ANAStats::channel_action_counter
agora::Optional< uint32_t > channel_action_counter
Definition: NGIAgoraLocalUser.h:73
agora::rtc::VideoSubscriptionOptions
Definition: AgoraBase.h:1614
agora::rtc::ILocalUser::NsNG
@ NsNG
Definition: NGIAgoraLocalUser.h:253
agora::rtc::RemoteAudioTrackStats
Definition: NGIAgoraAudioTrack.h:427
agora::rtc::AudioVolumeInformation
Definition: NGIAgoraLocalUser.h:1188
agora::rtc::ILocalUser::ANAStats
Definition: NGIAgoraLocalUser.h:61
agora::rtc::IVideoFrameObserver2
Definition: NGIAgoraLocalUser.h:1650
agora::rtc::ILocalUser::AudioProcessingStats::residual_echo_likelihood_recent_max
agora::Optional< double > residual_echo_likelihood_recent_max
Definition: NGIAgoraLocalUser.h:164
agora::rtc::ILocalUser::enableSpatialAudio
virtual int enableSpatialAudio(bool enabled, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::ElderNsStatistical
@ ElderNsStatistical
Definition: NGIAgoraLocalUser.h:251
agora::rtc::ILocalUser::enableSoundPositionIndication
virtual int enableSoundPositionIndication(bool enabled, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::CLIENT_ROLE_TYPE
CLIENT_ROLE_TYPE
Definition: AgoraBase.h:2627
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::RemoteAudioContextInfo::ans_enabled
agora::Optional< bool > ans_enabled
Definition: NGIAgoraLocalUser.h:1249
agora::rtc::ILocalUser::ANAStats::dtx_action_counter
agora::Optional< uint32_t > dtx_action_counter
Definition: NGIAgoraLocalUser.h:79
agora::rtc::ILocalUserObserver::onAudioVolumeIndication
virtual void onAudioVolumeIndication(const AudioVolumeInformation *speakers, unsigned int speakerNumber, int totalVolume)=0
agora::rtc::ILocalUser::forceNextIntraFrame
virtual int forceNextIntraFrame(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LowDelay
@ LowDelay
Definition: NGIAgoraLocalUser.h:262
agora::rtc::ILocalUser::getRemoteAudioTrackFilterProperty
virtual int getRemoteAudioTrackFilterProperty(user_id_t userId, const char *id, const char *key, char *jsonValue, size_t bufSize)=0
agora::rtc::ILocalUser::subscribeAllVideo
virtual int subscribeAllVideo(const VideoSubscriptionOptions &subscriptionOptions, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::setRemoteVoicePosition
virtual int setRemoteVoicePosition(user_id_t userId, double pan, double gain, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::total_input_duration
double total_input_duration
Definition: NGIAgoraLocalUser.h:228
agora::rtc::ILocalUser::setRemoteAudioTrackFilterProperty
virtual int setRemoteAudioTrackFilterProperty(user_id_t userId, const char *id, const char *key, const char *jsonValue, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::codec_payload_type
agora::Optional< int > codec_payload_type
Definition: NGIAgoraLocalUser.h:204
agora::rtc::REMOTE_VIDEO_STATE
REMOTE_VIDEO_STATE
Definition: AgoraBase.h:3346
agora::rtc::AudioVolumeInformation::AudioVolumeInformation
AudioVolumeInformation()
Definition: NGIAgoraLocalUser.h:1209
agora::rtc::RemoteAudioContextInfo::ai_aec_enabled
agora::Optional< bool > ai_aec_enabled
Definition: NGIAgoraLocalUser.h:1244
agora::rtc::LOCAL_VIDEO_STREAM_STATE
LOCAL_VIDEO_STREAM_STATE
Definition: AgoraBase.h:3085
agora::rtc::ILocalUserObserver::onUserStateChanged
virtual void onUserStateChanged(user_id_t userId, uint32_t state)
Definition: NGIAgoraLocalUser.h:1645
agora::rtc::ILocalUser::getAudienceLatencyLevel
virtual AUDIENCE_LATENCY_LEVEL_TYPE getAudienceLatencyLevel()=0
agora::rtc::ILocalUser::registerLocalVideoEncodedFrameObserver
virtual int registerLocalVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::typing_noise_detected
bool typing_noise_detected
Definition: NGIAgoraLocalUser.h:234
agora::rtc::ILocalUser::publishAudio
virtual int publishAudio(agora_refptr< ILocalAudioTrack > audioTrack, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::~ILocalUserObserver
virtual ~ILocalUserObserver()
Definition: NGIAgoraLocalUser.h:1267
agora::rtc::ILocalUser::NS_MODE
NS_MODE
Definition: NGIAgoraLocalUser.h:250
agora::rtc::ILocalUser::setEarMonitoringAudioFrameParameters
virtual int setEarMonitoringAudioFrameParameters(bool enabled, size_t numberOfChannels, uint32_t sampleRateHz, RAW_AUDIO_FRAME_OP_MODE_TYPE mode=RAW_AUDIO_FRAME_OP_MODE_READ_ONLY, int samplesPerCall=0, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onVideoTrackPublishStart
virtual void onVideoTrackPublishStart(agora_refptr< ILocalVideoTrack > videoTrack)=0
agora::rtc::ILocalUser::SetAudioNsMode
virtual int SetAudioNsMode(bool NsEnable, NS_MODE NsMode, NS_LEVEL NsLevel, NS_DELAY NsDelay, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::subscribeVideo
virtual int subscribeVideo(user_id_t userId, const VideoSubscriptionOptions &subscriptionOptions, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::getUserPlaybackSignalVolume
virtual int getUserPlaybackSignalVolume(user_id_t userId, int *volume)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::codec_name
char codec_name[media::base::kMaxCodecNameLength]
Definition: NGIAgoraLocalUser.h:200
agora::rtc::ILocalUser::AudioProcessingStats::delay_ms
agora::Optional< int32_t > delay_ms
Definition: NGIAgoraLocalUser.h:170
agora::rtc::AudioVolumeInformation::vad
unsigned int vad
Definition: NGIAgoraLocalUser.h:1202
agora::rtc::ILocalUser::AudioProcessingStats::echo_return_loss_enhancement
agora::Optional< double > echo_return_loss_enhancement
Definition: NGIAgoraLocalUser.h:132
agora::rtc::STREAM_SUBSCRIBE_STATE
STREAM_SUBSCRIBE_STATE
Definition: AgoraBase.h:6751
agora::rtc::ILocalUser::setRemoteRenderTargetFps
virtual int setRemoteRenderTargetFps(int targetFps)=0
agora::rtc::ILocalUser::unregisterMediaControlPacketReceiver
virtual int unregisterMediaControlPacketReceiver(IMediaControlPacketReceiver *ctrlPacketReceiver)=0
agora::rtc::ILocalUserObserver::USER_MEDIA_INFO_MUTE_AUDIO
@ USER_MEDIA_INFO_MUTE_AUDIO
Definition: NGIAgoraLocalUser.h:1598
agora::rtc::ILocalUser::Balance
@ Balance
Definition: NGIAgoraLocalUser.h:261
agora::rtc::RemoteAudioContextInfo::scenario
agora::Optional< int > scenario
Definition: NGIAgoraLocalUser.h:1229
agora::rtc::ILocalUser::disableAudioSpectrumMonitor
virtual int disableAudioSpectrumMonitor(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::getPlaybackSignalVolume
virtual int getPlaybackSignalVolume(int *volume)=0
agora::rtc::ILocalUserObserver::onVideoTrackPublicationFailure
virtual void onVideoTrackPublicationFailure(agora_refptr< ILocalVideoTrack > videoTrack, ERROR_CODE_TYPE error)=0
agora::rtc::ILocalUserObserver::onAudioTrackPublishStart
virtual void onAudioTrackPublishStart(agora_refptr< ILocalAudioTrack > audioTrack)=0
agora::rtc::AudioVolumeInformation::voicePitch
double voicePitch
Definition: NGIAgoraLocalUser.h:1207
agora::rtc::ILocalUser::takeDataChannelSnapshot
virtual int takeDataChannelSnapshot(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::AudioProcessingStats
Definition: NGIAgoraLocalUser.h:111
agora::rtc::ILocalUser::subscribeDataChannel
virtual int subscribeDataChannel(user_id_t userId, int channelId, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::getHighPriorityUserList
virtual int getHighPriorityUserList(std::vector< uid_t > &vipList, int &option)=0
agora::rtc::ILocalUser::unregisterLocalVideoEncodedFrameObserver
virtual int unregisterLocalVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *observer)=0
agora::rtc::ILocalUser
Definition: NGIAgoraLocalUser.h:56
agora::rtc::ILocalUser::subscribeAllAudio
virtual int subscribeAllAudio(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::ext_seqnum
int32_t ext_seqnum
Definition: NGIAgoraLocalUser.h:208
agora::rtc::ILocalUser::setPlaybackAudioFrameParameters
virtual int setPlaybackAudioFrameParameters(size_t numberOfChannels, uint32_t sampleRateHz, RAW_AUDIO_FRAME_OP_MODE_TYPE mode=RAW_AUDIO_FRAME_OP_MODE_READ_ONLY, int samplesPerCall=0, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::RemoteAudioContextInfo::aec_enabled
agora::Optional< bool > aec_enabled
Definition: NGIAgoraLocalUser.h:1239
agora::rtc::VIDEO_QOE_PREFERENCE_TYPE
VIDEO_QOE_PREFERENCE_TYPE
Definition: AgoraBase.h:2950
agora::rtc::MEDIA_TRACE_EVENT
MEDIA_TRACE_EVENT
Definition: AgoraBase.h:6993
agora::rtc::ILocalUserObserver::onVideoTrackPublishSuccess
virtual void onVideoTrackPublishSuccess(agora_refptr< ILocalVideoTrack > videoTrack)=0
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
@ RAW_AUDIO_FRAME_OP_MODE_READ_ONLY
Definition: AgoraMediaBase.h:232
agora::rtc::ILocalUser::setVideoQoEPreference
virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::enableAudioSpectrumMonitor
virtual int enableAudioSpectrumMonitor(int intervalInMS=100, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onIntraRequestReceived
virtual void onIntraRequestReceived()
Definition: NGIAgoraLocalUser.h:1633
agora::rtc::ILocalUser::setAudioEncoderConfiguration
virtual int setAudioEncoderConfiguration(const rtc::AudioEncoderConfiguration &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onAudioMetadataReceived
virtual void onAudioMetadataReceived(user_id_t userId, const char *metadata, size_t length)
Definition: NGIAgoraLocalUser.h:1585
agora::rtc::ILocalUserObserver::onAudioSubscribeStateChanged
virtual void onAudioSubscribeStateChanged(const char *channel, user_id_t userId, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)=0
agora::rtc::ILocalUser::NsNGStatistical
@ NsNGStatistical
Definition: NGIAgoraLocalUser.h:252
agora::rtc::ILocalUser::registerVideoEncodedFrameObserver
virtual int registerVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::RemoteAudioContextInfo::hardware_3a_enabled
agora::Optional< bool > hardware_3a_enabled
Definition: NGIAgoraLocalUser.h:1234
agora::rtc::ILocalUser::LocalAudioDetailedStats::packets_sent
int32_t packets_sent
Definition: NGIAgoraLocalUser.h:188
agora::rtc::ILocalUser::subscribeAudio
virtual int subscribeAudio(user_id_t userId, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::setAudioScenario
virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::ANAStats::bitrate_action_counter
agora::Optional< uint32_t > bitrate_action_counter
Definition: NGIAgoraLocalUser.h:67
agora::rtc::AUDIO_SCENARIO_TYPE
AUDIO_SCENARIO_TYPE
Definition: AgoraBase.h:2790
agora::rtc::ILocalUserObserver::onAudioTrackPublishSuccess
virtual void onAudioTrackPublishSuccess(agora_refptr< ILocalAudioTrack > audioTrack)=0
agora::rtc::REMOTE_AUDIO_STATE_REASON
REMOTE_AUDIO_STATE_REASON
Definition: AgoraBase.h:3296
agora::rtc::RAW_AUDIO_FRAME_OP_MODE_TYPE
RAW_AUDIO_FRAME_OP_MODE_TYPE
Definition: AgoraMediaBase.h:228
agora::rtc::ILocalUser::Soft
@ Soft
Definition: NGIAgoraLocalUser.h:256
AgoraOptional.h
agora::rtc::ILocalUserObserver::onVideoTrackUnpublished
virtual void onVideoTrackUnpublished(agora_refptr< ILocalVideoTrack > videoTrack)=0
agora::rtc::ILocalUser::enableRemoteAudioTrackFilter
virtual int enableRemoteAudioTrackFilter(user_id_t userId, const char *id, bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::rtt_ms
int64_t rtt_ms
Definition: NGIAgoraLocalUser.h:216
agora::rtc::ILocalUserObserver::onLocalVideoTrackStatistics
virtual void onLocalVideoTrackStatistics(agora_refptr< rtc::ILocalVideoTrack > videoTrack, const LocalVideoTrackStats &stats)=0
agora::rtc::ILocalUser::registerLocalUserObserver
virtual int registerLocalUserObserver(ILocalUserObserver *observer, void(*safeDeleter)(ILocalUserObserver *)=NULL, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onAudioPublishStateChanged
virtual void onAudioPublishStateChanged(const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)=0
agora::rtc::ILocalUserObserver::onFirstRemoteVideoFrameRendered
virtual void onFirstRemoteVideoFrameRendered(user_id_t userId, int width, int height, int elapsed)=0
agora::rtc::ILocalUser::setRecordingAudioFrameParameters
virtual int setRecordingAudioFrameParameters(size_t numberOfChannels, uint32_t sampleRateHz, RAW_AUDIO_FRAME_OP_MODE_TYPE mode=RAW_AUDIO_FRAME_OP_MODE_READ_ONLY, int samplesPerCall=0, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::total_input_energy
double total_input_energy
Definition: NGIAgoraLocalUser.h:224
agora::rtc::ILocalUserObserver::onUserVideoTrackStateChanged
virtual void onUserVideoTrackStateChanged(user_id_t userId, agora_refptr< rtc::IRemoteVideoTrack > videoTrack, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)=0
agora::rtc::ILocalUser::AudioProcessingStats::delay_median_ms
agora::Optional< int32_t > delay_median_ms
Definition: NGIAgoraLocalUser.h:151
agora::rtc::ILocalUser::registerDataChannelObserver
virtual int registerDataChannelObserver(IDataChannelObserver *observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onFirstRemoteVideoFrame
virtual void onFirstRemoteVideoFrame(user_id_t userId, int width, int height, int elapsed)=0
agora::rtc::ILocalUser::registerAudioFrameObserver
virtual int registerAudioFrameObserver(agora::media::IAudioFrameObserverBase *observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::NS_LEVEL
NS_LEVEL
Definition: NGIAgoraLocalUser.h:255
agora::rtc::STREAM_PUBLISH_STATE
STREAM_PUBLISH_STATE
Definition: AgoraBase.h:6783
agora::rtc::LocalAudioStats
Definition: AgoraBase.h:3715
agora::media::base::kMaxCodecNameLength
static const uint8_t kMaxCodecNameLength
Definition: AgoraMediaBase.h:316
agora::rtc::RemoteVideoTrackStats
Definition: NGIAgoraVideoTrack.h:433
agora::rtc::RemoteAudioContextInfo
Definition: NGIAgoraLocalUser.h:1215
agora::rtc::ILocalUserObserver::onFirstRemoteAudioFrame
virtual void onFirstRemoteAudioFrame(user_id_t userId, int elapsed)=0
agora::rtc::ILocalUserObserver::onFirstRemoteAudioDecoded
virtual void onFirstRemoteAudioDecoded(user_id_t userId, int elapsed)=0
agora::rtc::IVideoFrameObserver2::onFrame
virtual void onFrame(const char *channelId, user_id_t remoteUid, const media::base::VideoFrame *frame)=0
agora::rtc::ILocalUser::publishVideo
virtual int publishVideo(agora_refptr< ILocalVideoTrack > videoTrack, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::ANAStats::frame_length_increase_counter
agora::Optional< uint32_t > frame_length_increase_counter
Definition: NGIAgoraLocalUser.h:92
agora::rtc::ILocalUser::Aggressive
@ Aggressive
Definition: NGIAgoraLocalUser.h:257
agora::rtc::IVideoFrameObserver2::~IVideoFrameObserver2
virtual ~IVideoFrameObserver2()
Definition: NGIAgoraLocalUser.h:1663
agora::rtc::ILocalUser::unsubscribeAllAudio
virtual int unsubscribeAllAudio(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::setUserRole
virtual int setUserRole(rtc::CLIENT_ROLE_TYPE role, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::AudioProcessingStats::divergent_filter_fraction
agora::Optional< double > divergent_filter_fraction
Definition: NGIAgoraLocalUser.h:137
agora::rtc::REMOTE_VIDEO_STATE_REASON
REMOTE_VIDEO_STATE_REASON
Definition: AgoraBase.h:3377
agora::rtc::ILocalUser::unregisterDataChannelObserver
virtual int unregisterDataChannelObserver(IDataChannelObserver *observer)=0
agora::rtc::ILocalUser::setHighPriorityUserList
virtual int setHighPriorityUserList(uid_t *vipList, int uidNum, int option, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::setSubscribeVideoAllowlist
virtual int setSubscribeVideoAllowlist(user_id_t *userList, int userNumber, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUserObserver::onUserInfoUpdated
virtual void onUserInfoUpdated(user_id_t userId, USER_MEDIA_INFO msg, bool val)
Definition: NGIAgoraLocalUser.h:1621
agora::rtc::AUDIENCE_LATENCY_LEVEL_TYPE
AUDIENCE_LATENCY_LEVEL_TYPE
Definition: AgoraBase.h:2661
agora::rtc::ILocalUserObserver::onLocalAudioTrackStatistics
virtual void onLocalAudioTrackStatistics(const LocalAudioStats &stats)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::apm_statistics
AudioProcessingStats apm_statistics
Definition: NGIAgoraLocalUser.h:241
agora::rtc::ILocalUser::unregisterVideoFrameObserver
virtual int unregisterVideoFrameObserver(IVideoFrameObserver2 *observer)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::ana_statistics
ANAStats ana_statistics
Definition: NGIAgoraLocalUser.h:240
agora::media::IVideoEncodedFrameObserver
Definition: AgoraMediaBase.h:1642
agora::rtc::AudioEncoderConfiguration
Definition: IAgoraService.h:58
agora::rtc::ILocalUser::sendIntraRequest
virtual int sendIntraRequest(user_id_t userId, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::sendAudioMetadata
virtual int sendAudioMetadata(const char *metadata, size_t length, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::AudioVolumeInformation::userId
user_id_t userId
Definition: NGIAgoraLocalUser.h:1192
agora::rtc::ILocalUser::LocalAudioDetailedStats::packets_lost
int32_t packets_lost
Definition: NGIAgoraLocalUser.h:192
agora::rtc::ILocalUserObserver::onFirstRemoteVideoDecoded
virtual void onFirstRemoteVideoDecoded(user_id_t userId, int width, int height, int elapsed)=0
agora::rtc::ILocalUserObserver::onAudioTrackUnpublished
virtual void onAudioTrackUnpublished(agora_refptr< ILocalAudioTrack > audioTrack)=0
agora::rtc::ILocalUserObserver::onActiveSpeaker
virtual void onActiveSpeaker(user_id_t userId)=0
agora::rtc::RemoteAudioContextInfo::agc_enabled
agora::Optional< bool > agc_enabled
Definition: NGIAgoraLocalUser.h:1259
agora::rtc::AudioVolumeInformation::volume
unsigned int volume
Definition: NGIAgoraLocalUser.h:1197
agora::rtc::RemoteAudioContextInfo::os_type
agora::Optional< int > os_type
Definition: NGIAgoraLocalUser.h:1219
agora::rtc::ILocalUserObserver::onVideoPublishStateChanged
virtual void onVideoPublishStateChanged(const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)=0
agora::rtc::IMediaControlPacketSender
Definition: NGIAgoraMediaNode.h:675
agora::rtc::ILocalUser::getLocalAudioStatistics
virtual bool getLocalAudioStatistics(LocalAudioDetailedStats &stats)=0
agora::rtc::VideoTrackInfo
Definition: AgoraBase.h:3460
agora::rtc::ILocalUser::setRemoteSubscribeFallbackOption
virtual int setRemoteSubscribeFallbackOption(int option, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::LocalAudioDetailedStats
LocalAudioDetailedStats()
Definition: NGIAgoraLocalUser.h:243
agora::rtc::ILocalUser::~ILocalUser
virtual ~ILocalUser()
Definition: NGIAgoraLocalUser.h:266
agora::rtc::ILocalUserObserver::USER_MEDIA_INFO_MUTE_VIDEO
@ USER_MEDIA_INFO_MUTE_VIDEO
Definition: NGIAgoraLocalUser.h:1602
agora::rtc::ILocalUser::getUserRole
virtual CLIENT_ROLE_TYPE getUserRole()=0
agora::rtc::ILocalUser::HighQuality
@ HighQuality
Definition: NGIAgoraLocalUser.h:260
agora::rtc::ILocalUser::getMediaControlPacketSender
virtual IMediaControlPacketSender * getMediaControlPacketSender()=0
agora::rtc::ILocalUser::unregisterLocalUserObserver
virtual int unregisterLocalUserObserver(ILocalUserObserver *observer)=0
agora::rtc::ILocalUser::setSubscribeAudioAllowlist
virtual int setSubscribeAudioAllowlist(user_id_t *userList, int userNumber, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::publishDataChannel
virtual int publishDataChannel(agora_refptr< ILocalDataChannel > channel, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::jitter_ms
int32_t jitter_ms
Definition: NGIAgoraLocalUser.h:212
agora::rtc::RemoteAudioContextInfo::ai_ans_enabled
agora::Optional< bool > ai_ans_enabled
Definition: NGIAgoraLocalUser.h:1254
agora::rtc::RemoteAudioContextInfo::router_type
agora::Optional< int > router_type
Definition: NGIAgoraLocalUser.h:1224
agora::rtc::ILocalUserObserver::onLocalVideoTrackStateChanged
virtual void onLocalVideoTrackStateChanged(agora_refptr< rtc::ILocalVideoTrack > videoTrack, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason)=0
agora::rtc::ILocalUser::adjustUserPlaybackSignalVolume
virtual int adjustUserPlaybackSignalVolume(user_id_t userId, int volume, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::unsubscribeAudio
virtual int unsubscribeAudio(user_id_t userId, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalUser::unsubscribeVideo
virtual int unsubscribeVideo(user_id_t userId, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::user_id_t
const char * user_id_t
Definition: AgoraBase.h:818
agora::rtc::VideoRenderingTracingInfo
Definition: AgoraBase.h:7007
agora::IDataChannelObserver
Definition: NGIAgoraDataChannel.h:128
agora::rtc::ILocalUser::unregisterVideoEncodedFrameObserver
virtual int unregisterVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *observer)=0
agora::rtc::ILocalUser::LocalAudioDetailedStats::audio_level
int32_t audio_level
Definition: NGIAgoraLocalUser.h:220
agora::Optional< uint32_t >
agora::rtc::LocalVideoTrackStats
Definition: NGIAgoraVideoTrack.h:220
agora::rtc::ILocalUser::unsubscribeDataChannel
virtual int unsubscribeDataChannel(user_id_t userId, int channelId, aosl_ref_t ares=AOSL_REF_INVALID)=0