Agora C++ API Reference for All Platforms
rtc_connection_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 <functional>
10 #include <list>
11 #include <memory>
12 #include <string>
13 #include <utility>
14 #include <vector>
15 
16 #include "IAgoraService.h"
17 #include "NGIAgoraRtcConnection.h"
18 
19 namespace agora {
20 namespace base {
21 class BaseWorker;
22 struct ExtraReportData;
23 } // namespace base
24 
25 namespace commons {
26 namespace network {
27 struct network_info_t;
28 } // namespace network
29 } // namespace commons
30 
31 namespace config {
32 class IConfigEngineListener;
33 } // namespace config
34 
35 namespace rtc {
36 
37 namespace protocol {
38 struct CmdRecordingEventReportArgus;
39 } // namespace protocol
40 
41 class CallContext;
43 class InternalConnectionEventHandler;
44 class IAudioEngineWrapper;
45 class IVideoEngine;
46 class AudioPacketFilter;
47 class VideoPacketFilter;
48 struct audio_packet_t;
49 struct SAudioFrame;
50 struct video_packet_t;
51 struct video_rtcp_packet_t;
54 struct WebAgentVideoStats;
55 
56 static const uint8_t AUDIO_MEDIA_PACKET_PAYLOAD_TYPE = 127;
57 
59  // Agora will ignore unknown payload type
60  uint8_t payload_type;
61  // if enabled audio rs-fec
62  bool rsfec;
63  // RTP ssrc
64  uint32_t ssrc;
65  // bool is_key_frame;
66  // uint8_t frame_packet_count;
67  // uint8_t frame_packet_sequence;
69  : media::base::PacketOptions(),
70  payload_type(0),
71  rsfec(false),
72  ssrc(0) {}
73 };
74 
77 
79 
81 
83 };
84 
86  // In active mode, broadcast messages will be sent through the connection.
87  // This is used as a publisher is bound with the connection.
89  // In passive mode, broadcast messages will not be sent through the
90  // connection.
91  // This is used as default mode and no publisher is bound with the connection,
93 };
94 
98  clientType(0),
99 #ifdef P2P_SWITCH_DEFAULT_VALUE
100  is_p2p_switch_enabled(P2P_SWITCH_DEFAULT_VALUE)
101 #else
102  is_p2p_switch_enabled(false)
103 #endif
104  {}
105 
112  minPort = rhs.minPort;
113  maxPort = rhs.maxPort;
117  clientType = 0;
118 #ifdef P2P_SWITCH_DEFAULT_VALUE
119  is_p2p_switch_enabled = P2P_SWITCH_DEFAULT_VALUE;
120 #else
121  is_p2p_switch_enabled = false;
122 #endif
123  }
126  std::list<std::string> vosList;
127 };
128 
130  using onAudioPacketType = std::function<int(audio_packet_t&)>;
131  using onVideoPacketType = std::function<int(video_packet_t&)>;
132  using onVideoRtcpPacketType = std::function<int(video_rtcp_packet_t&)>;
133  using onVideoReportPacketType = std::function<int(video_report_packet_t&)>;
135  using onAudioFrameType = std::function<int(SAudioFrame&)>;
136 
143  ReceivePacketHandler(onAudioPacketType&& onAudioPacket = nullptr,
144  onVideoPacketType&& onVideoPacket = nullptr,
145  onVideoRtcpPacketType&& onVideoRtcpPacket = nullptr,
146  onVideoReportPacketType&& onVideoReportPacket = nullptr,
147  onVideoCustomCtrlPacketType&& onVideoCustomCtrlPacket = nullptr,
148  onAudioFrameType&& onAudioFrame = nullptr)
149  : onAudioPacket_(std::move(onAudioPacket)),
150  onVideoPacket_(std::move(onVideoPacket)),
151  onVideoRtcpPacket_(std::move(onVideoRtcpPacket)),
152  onVideoReportPacket_(std::move(onVideoReportPacket)),
153  onVideoCustomCtrlPacket_(std::move(onVideoCustomCtrlPacket)),
154  onAudioFrame_(std::move(onAudioFrame)) {}
156  : onAudioPacket_(std::move(rhs.onAudioPacket_)),
157  onVideoPacket_(std::move(rhs.onVideoPacket_)),
161  onAudioFrame_(std::move(rhs.onAudioFrame_)) {}
162 };
163 
164 struct RtcConnStats {
166  uint64_t banned_elapse = 0;
167  uint64_t space_id = UINT64_MAX;
168 };
169 
171  public:
172  virtual int initialize(const base::AgoraServiceConfiguration& serviceCfg,
173  const RtcConnectionConfiguration& cfg) = 0;
174  virtual int initializeEx(const base::AgoraServiceConfiguration& serviceCfg,
175  const RtcConnectionConfigurationEx& cfg) = 0;
176  virtual int deinitialize() = 0;
177  virtual void setUserRole(CLIENT_ROLE_TYPE role) = 0;
179  virtual bool isEncryptionEnabled() const = 0;
180  virtual int sendAudioPacket(audio_packet_t& packet, int delay_ms = 0) = 0;
181  virtual int sendAudioFrame(SAudioFrame& frame) = 0;
182  virtual int sendVideoPacket(video_packet_t& packet) = 0;
183  virtual int batchSendVideoPacket(std::vector<video_packet_t>& packets) = 0;
184  virtual int sendBroadcastPacket(std::string&& data) = 0;
185  virtual int sendVideoRtcpPacket(video_rtcp_packet_t& rtcp) = 0;
190  virtual void setChannelId(const char* channel) = 0;
191  virtual void setConnectionState(CONNECTION_STATE_TYPE state) = 0;
192  virtual void setLocalUserId(user_id_t userId) = 0;
193  // FIXME: remove this after we rework internal logic. Only modules of the call
194  // engine relies on CallContext
195  virtual CallContext* getCallContext() = 0;
196  virtual std::shared_ptr<base::BaseWorker> getIOWorker() = 0;
197  virtual bool getUid(user_id_t userId, rtc::uid_t* uid) = 0;
198  virtual bool getUserId(rtc::uid_t uid, std::string& userId) = 0;
199  virtual rtc::uid_t getLocalUid() = 0;
200  virtual void muteLocalAudio(bool mute) = 0;
201  virtual void muteRemoteAudio(user_id_t userId, bool mute) = 0;
202  virtual void muteAllRemoteAudio(bool mute) = 0;
203  virtual void setDefaultMuteAllRemoteAudioStreams(bool mute) = 0;
204  virtual void muteLocalVideo(bool mute) = 0;
205  virtual void muteRemoteVideo(user_id_t userId, bool mute) = 0;
206  virtual void muteAllRemoteVideo(bool mute) = 0;
207  virtual void setDefaultMuteAllRemoteVideoStreams(bool mute) = 0;
208  virtual void setRemoteVideoStreamType(user_id_t userId, VIDEO_STREAM_TYPE type) = 0;
210 
211  virtual void setRtcStats(const RtcStats& stats) = 0;
212  virtual void setBannedTime(const uint64_t banned_time) = 0;
213  virtual RtcConnStats GetStats() = 0;
214  virtual bool isConnected() = 0;
215  virtual uint32_t getCid() = 0;
216  virtual void setVos(const char* name, int port) = 0;
217  virtual int reportArgusCounters(int* counterId, int* value, int count, user_id_t userId) = 0;
218  virtual void setChannelProfile(CHANNEL_PROFILE_TYPE channel_profile) = 0;
219 
220  // The following functions should only be used in UT.
221  virtual AudioPacketFilter* getAudioPacketFilter() = 0;
222  virtual VideoPacketFilter* getVideoPacketFilter() = 0;
223  virtual bool hasAudioRemoteTrack(user_id_t id) = 0;
224  virtual bool hasVideoRemoteTrack(user_id_t id, uint32_t ssrc) = 0;
225  // The upper functions should only be used by UT.
226 
228 
229  // TODO(hanpengfei): maybe need to implement at other place.
230  virtual bool isRtcContextValid() = 0;
231  virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole) = 0;
232  virtual void onApiCallExecuted(int err, const char* api, const char* result) = 0;
233  virtual void networkChanged(commons::network::network_info_t&& networkInfo) = 0;
234  virtual int sendReport(const void* data, size_t length, int level, int type, int retry,
235  const base::ExtraReportData* extra) = 0;
236  virtual int setParameters(const std::string& parameters, bool cache,
237  bool suppressNotification) = 0;
238  virtual int getParameters(const std::string& parameters, any_document_t& results) = 0;
239  virtual void stopAsyncHandler(bool waitForExit) = 0;
240  virtual bool registerEventHandler(IRtcEngineEventHandler* eventHandler,
241  bool isExHandler) = 0;
242  virtual bool unregisterEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
243  virtual void setPacketObserver(IPacketObserver* observer) = 0;
244  virtual int sendWebAgentVideoStats(const std::string& uidstr,
245  const WebAgentVideoStats& stats) = 0;
246  virtual void sendRecordingArgusEvents(const protocol::CmdRecordingEventReportArgus& events) = 0;
247 
248  virtual int sendCallRating(const std::string& callId, int rating,
249  const std::string& description) = 0;
250  virtual bool isCommunicationMode() = 0;
251  virtual bool isWebrtcPacerEnabled() = 0;
252  virtual void didStreamMessageSync(uid_t userId, int streamId, const char* data, size_t length,
253  uint64_t sentTs) = 0;
254 };
255 
256 } // namespace rtc
257 } // namespace agora
agora::rtc::IRtcConnectionEx::setChannelId
virtual void setChannelId(const char *channel)=0
agora::rtc::IRtcConnectionEx::hasVideoRemoteTrack
virtual bool hasVideoRemoteTrack(user_id_t id, uint32_t ssrc)=0
agora::any_document_t
agora::commons::cjson::JsonWrapper any_document_t
Definition: agora_service_i.h:52
agora::rtc::IRtcConnectionEx::subscribeReceivePacketHandler
virtual void subscribeReceivePacketHandler(ReceivePacketHandler &&handler)=0
agora::rtc::IRtcConnectionEx::getLocalUid
virtual rtc::uid_t getLocalUid()=0
agora::rtc::PacketOptions::rsfec
bool rsfec
Definition: rtc_connection_i.h:62
agora::rtc::RtcConnectionConfiguration::channelProfile
CHANNEL_PROFILE_TYPE channelProfile
Definition: NGIAgoraRtcConnection.h:134
agora::rtc::RtcConnectionConfiguration::audioSubscriptionOptions
AudioSubscriptionOptions audioSubscriptionOptions
Definition: NGIAgoraRtcConnection.h:127
agora::rtc::IRtcConnectionEx::isRtcContextValid
virtual bool isRtcContextValid()=0
agora::rtc::IRtcConnectionEx::setDefaultMuteAllRemoteAudioStreams
virtual void setDefaultMuteAllRemoteAudioStreams(bool mute)=0
agora::rtc::IRtcConnectionEx::networkChanged
virtual void networkChanged(commons::network::network_info_t &&networkInfo)=0
agora::rtc::RtcConnectionConfiguration::minPort
int minPort
Definition: NGIAgoraRtcConnection.h:119
agora::rtc::WebAgentVideoStats
Definition: rtc_engine_i.h:170
agora::rtc::INetworkObserver
Definition: NGIAgoraRtcConnection.h:747
agora::rtc::CONGESTION_CONTROLLER_TYPE_TRANSPORT_CC
@ CONGESTION_CONTROLLER_TYPE_TRANSPORT_CC
Definition: rtc_connection_i.h:80
agora::rtc::PacketOptions
Definition: rtc_connection_i.h:58
agora::rtc::IRtcConnectionEx::registerEventHandler
virtual bool registerEventHandler(IRtcEngineEventHandler *eventHandler, bool isExHandler)=0
agora::rtc::CONGESTION_CONTROLLER_TYPE_AGORA_CC
@ CONGESTION_CONTROLLER_TYPE_AGORA_CC
Definition: rtc_connection_i.h:76
agora::base::AgoraServiceConfiguration
Definition: IAgoraService.h:82
agora::rtc::IRtcConnectionEx::setConnectionState
virtual void setConnectionState(CONNECTION_STATE_TYPE state)=0
agora::rtc::PacketOptions::payload_type
uint8_t payload_type
Definition: rtc_connection_i.h:60
agora::rtc::IRtcConnectionEx::reportArgusCounters
virtual int reportArgusCounters(int *counterId, int *value, int count, user_id_t userId)=0
agora::rtc::IRtcConnectionEx::muteLocalVideo
virtual void muteLocalVideo(bool mute)=0
agora::rtc::ReceivePacketHandler::onVideoCustomCtrlPacket_
onVideoCustomCtrlPacketType onVideoCustomCtrlPacket_
Definition: rtc_connection_i.h:141
agora::rtc::ConnectionMode
ConnectionMode
Definition: rtc_connection_i.h:85
agora::rtc::IRtcConnectionEx::sendAudioPacket
virtual int sendAudioPacket(audio_packet_t &packet, int delay_ms=0)=0
agora::rtc::IRtcConnectionEx::onApiCallExecuted
virtual void onApiCallExecuted(int err, const char *api, const char *result)=0
agora::user_id_t
const char * user_id_t
Definition: AgoraBase.h:1122
agora::rtc::IRtcEngineEventHandler
Definition: IAgoraRtcEngine.h:839
agora::rtc::IRtcConnectionEx::setBannedTime
virtual void setBannedTime(const uint64_t banned_time)=0
agora::rtc::ReceivePacketHandler::onAudioFrame_
onAudioFrameType onAudioFrame_
Definition: rtc_connection_i.h:142
agora::rtc::ReceivePacketHandler::onAudioFrameType
std::function< int(SAudioFrame &)> onAudioFrameType
Definition: rtc_connection_i.h:135
agora::rtc::IRtcConnectionEx::setDefaultMuteAllRemoteVideoStreams
virtual void setDefaultMuteAllRemoteVideoStreams(bool mute)=0
agora::rtc::ReceivePacketHandler::onVideoPacket_
onVideoPacketType onVideoPacket_
Definition: rtc_connection_i.h:138
agora::rtc::ReceivePacketHandler::onAudioPacketType
std::function< int(audio_packet_t &)> onAudioPacketType
Definition: rtc_connection_i.h:130
agora::rtc::IRtcConnectionEx::getAudioPacketFilter
virtual AudioPacketFilter * getAudioPacketFilter()=0
agora::rtc::IRtcConnectionEx::didStreamMessageSync
virtual void didStreamMessageSync(uid_t userId, int streamId, const char *data, size_t length, uint64_t sentTs)=0
agora::rtc::IRtcConnectionEx::sendBroadcastPacket
virtual int sendBroadcastPacket(std::string &&data)=0
agora::rtc::ReceivePacketHandler::onVideoRtcpPacketType
std::function< int(video_rtcp_packet_t &)> onVideoRtcpPacketType
Definition: rtc_connection_i.h:132
agora::rtc::IRtcConnectionEx::setRemoteVideoStreamType
virtual void setRemoteVideoStreamType(user_id_t userId, VIDEO_STREAM_TYPE type)=0
agora::rtc::ReceivePacketHandler::ReceivePacketHandler
ReceivePacketHandler(ReceivePacketHandler &&rhs)
Definition: rtc_connection_i.h:155
agora::rtc::IRtcConnectionEx::GetStats
virtual RtcConnStats GetStats()=0
agora::rtc::IRtcConnectionEx::getUid
virtual bool getUid(user_id_t userId, rtc::uid_t *uid)=0
agora::rtc::RtcConnectionConfiguration::autoSubscribeAudio
bool autoSubscribeAudio
Definition: NGIAgoraRtcConnection.h:99
agora::rtc::ReceivePacketHandler::onVideoReportPacket_
onVideoReportPacketType onVideoReportPacket_
Definition: rtc_connection_i.h:140
agora::rtc::RtcConnectionConfiguration::audioRecvMediaPacket
bool audioRecvMediaPacket
Definition: NGIAgoraRtcConnection.h:139
agora::rtc::RtcConnectionConfigurationEx::clientType
int clientType
Definition: rtc_connection_i.h:124
agora::rtc::IRtcConnectionEx::setChannelProfile
virtual void setChannelProfile(CHANNEL_PROFILE_TYPE channel_profile)=0
agora::rtc::RtcConnectionConfigurationEx::vosList
std::list< std::string > vosList
Definition: rtc_connection_i.h:126
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::IRtcConnectionEx::initializeEx
virtual int initializeEx(const base::AgoraServiceConfiguration &serviceCfg, const RtcConnectionConfigurationEx &cfg)=0
agora::rtc::IRtcConnectionEx::sendReport
virtual int sendReport(const void *data, size_t length, int level, int type, int retry, const base::ExtraReportData *extra)=0
agora::rtc::RtcConnStats
Definition: rtc_connection_i.h:164
agora::rtc::CONGESTION_CONTROLLER_TYPE_AUT_CC
@ CONGESTION_CONTROLLER_TYPE_AUT_CC
Definition: rtc_connection_i.h:82
agora::rtc::IRtcConnectionEx::getParameters
virtual int getParameters(const std::string &parameters, any_document_t &results)=0
agora::rtc::RtcConnectionConfigurationEx::RtcConnectionConfigurationEx
RtcConnectionConfigurationEx()
Definition: rtc_connection_i.h:96
agora::rtc::IPacketObserver
Definition: AgoraBase.h:2849
agora::rtc::RtcConnectionConfigurationEx
Definition: rtc_connection_i.h:95
agora::CHANNEL_PROFILE_TYPE
CHANNEL_PROFILE_TYPE
Definition: AgoraBase.h:266
agora::rtc::ReceivePacketHandler
Definition: rtc_connection_i.h:129
agora::rtc::IRtcConnectionEx::deinitialize
virtual int deinitialize()=0
agora::rtc::IRtcConnectionEx::muteRemoteAudio
virtual void muteRemoteAudio(user_id_t userId, bool mute)=0
agora::rtc::CONNECTION_MODE_ACTIVE
@ CONNECTION_MODE_ACTIVE
Definition: rtc_connection_i.h:88
agora::rtc::ReceivePacketHandler::onVideoRtcpPacket_
onVideoRtcpPacketType onVideoRtcpPacket_
Definition: rtc_connection_i.h:139
agora::rtc::IRtcConnectionEx::unregisterEventHandler
virtual bool unregisterEventHandler(IRtcEngineEventHandler *eventHandler)=0
agora::rtc::IRtcConnectionEx::muteRemoteVideo
virtual void muteRemoteVideo(user_id_t userId, bool mute)=0
agora::rtc::IRtcConnectionEx::ccType
virtual CongestionControlType ccType()=0
agora::rtc::ReceivePacketHandler::onAudioPacket_
onAudioPacketType onAudioPacket_
Definition: rtc_connection_i.h:137
agora::rtc::IRtcConnectionEx::sendVideoRtcpFeedbackPacket
virtual int sendVideoRtcpFeedbackPacket(video_report_packet_t &report)=0
agora::media::base::PacketOptions
Definition: AgoraMediaBase.h:135
agora::rtc::video_packet_t
Definition: packet_i.h:125
agora::rtc::video_rtcp_packet_t
Definition: packet_i.h:233
agora::rtc::IRtcConnectionEx::setParameters
virtual int setParameters(const std::string &parameters, bool cache, bool suppressNotification)=0
agora::rtc::IRtcConnectionEx::getCid
virtual uint32_t getCid()=0
agora::rtc::IRtcConnectionEx::onClientRoleChanged
virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole)=0
agora::rtc::CONGESTION_CONTROLLER_TYPE_REMB
@ CONGESTION_CONTROLLER_TYPE_REMB
Definition: rtc_connection_i.h:78
agora::rtc::SAudioFrame
Definition: packet_i.h:48
agora::rtc::ReceivePacketHandler::onVideoCustomCtrlPacketType
std::function< int(video_custom_ctrl_broadcast_packet_t &)> onVideoCustomCtrlPacketType
Definition: rtc_connection_i.h:134
agora::rtc::IRtcConnectionEx::muteLocalAudio
virtual void muteLocalAudio(bool mute)=0
agora::rtc::IRtcConnectionEx::isEncryptionEnabled
virtual bool isEncryptionEnabled() const =0
agora::rtc::RtcConnectionConfiguration::enableAudioRecordingOrPlayout
bool enableAudioRecordingOrPlayout
Definition: NGIAgoraRtcConnection.h:111
agora::rtc::IRtcConnectionEx::sendVideoPacket
virtual int sendVideoPacket(video_packet_t &packet)=0
agora::rtc::IRtcConnectionEx::sendWebAgentVideoStats
virtual int sendWebAgentVideoStats(const std::string &uidstr, const WebAgentVideoStats &stats)=0
agora::rtc::IRtcConnectionEx::sendVideoCustomCtrlBroadcastPacket
virtual int sendVideoCustomCtrlBroadcastPacket(video_custom_ctrl_broadcast_packet_t &packet)=0
agora::rtc::audio_packet_t
Definition: packet_i.h:115
agora::rtc::RtcConnectionConfiguration::videoRecvMediaPacket
bool videoRecvMediaPacket
Definition: NGIAgoraRtcConnection.h:144
agora::rtc::RtcConnectionConfiguration::autoSubscribeVideo
bool autoSubscribeVideo
Definition: NGIAgoraRtcConnection.h:105
agora::rtc::AUDIO_MEDIA_PACKET_PAYLOAD_TYPE
static const uint8_t AUDIO_MEDIA_PACKET_PAYLOAD_TYPE
Definition: rtc_connection_i.h:56
agora::rtc::IRtcConnectionEx::sendVideoRtcpPacket
virtual int sendVideoRtcpPacket(video_rtcp_packet_t &rtcp)=0
agora::rtc::IRtcConnectionEx::sendCallRating
virtual int sendCallRating(const std::string &callId, int rating, const std::string &description)=0
agora::rtc::IRtcConnectionEx::setRtcStats
virtual void setRtcStats(const RtcStats &stats)=0
agora::rtc::PacketOptions::ssrc
uint32_t ssrc
Definition: rtc_connection_i.h:64
agora::rtc::RtcConnectionConfigurationEx::is_p2p_switch_enabled
bool is_p2p_switch_enabled
Definition: rtc_connection_i.h:125
agora::rtc::IRtcConnectionEx::muteAllRemoteAudio
virtual void muteAllRemoteAudio(bool mute)=0
agora::rtc::IRtcConnectionEx::setPacketObserver
virtual void setPacketObserver(IPacketObserver *observer)=0
agora::rtc::IRtcConnectionEx::hasAudioRemoteTrack
virtual bool hasAudioRemoteTrack(user_id_t id)=0
agora::rtc::IRtcConnectionEx::setRemoteDefaultVideoStreamType
virtual void setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE type)=0
agora::rtc::IRtcConnectionEx::getUserRole
virtual CLIENT_ROLE_TYPE getUserRole()=0
agora::rtc::IRtcConnectionEx::stopAsyncHandler
virtual void stopAsyncHandler(bool waitForExit)=0
agora::rtc::RtcConnStats::space_id
uint64_t space_id
Definition: rtc_connection_i.h:167
agora::rtc::RtcStats
Definition: AgoraBase.h:2049
agora::rtc::IRtcConnectionEx::getIOWorker
virtual std::shared_ptr< base::BaseWorker > getIOWorker()=0
agora::rtc::RtcConnectionConfiguration
Definition: NGIAgoraRtcConnection.h:93
agora::rtc::CongestionControlType
CongestionControlType
Definition: rtc_connection_i.h:75
std
Definition: AgoraOptional.h:881
agora::rtc::IRtcConnectionEx::sendAudioFrame
virtual int sendAudioFrame(SAudioFrame &frame)=0
agora::rtc::RtcConnStats::banned_elapse
uint64_t banned_elapse
Definition: rtc_connection_i.h:166
agora::rtc::RtcConnStats::stats
RtcStats stats
Definition: rtc_connection_i.h:165
agora::rtc::IRtcConnectionEx::sendRecordingArgusEvents
virtual void sendRecordingArgusEvents(const protocol::CmdRecordingEventReportArgus &events)=0
agora::rtc::VIDEO_STREAM_TYPE
VIDEO_STREAM_TYPE
Definition: AgoraBase.h:1686
agora::rtc::RtcConnectionConfiguration::maxPort
int maxPort
Definition: NGIAgoraRtcConnection.h:123
agora::rtc::video_report_packet_t
Definition: packet_i.h:244
agora::rtc::video_custom_ctrl_broadcast_packet_t
Definition: packet_i.h:239
agora::rtc::IRtcConnectionEx::isCommunicationMode
virtual bool isCommunicationMode()=0
agora::rtc::IRtcConnection
Definition: NGIAgoraRtcConnection.h:169
agora::rtc::IRtcConnectionEx::initialize
virtual int initialize(const base::AgoraServiceConfiguration &serviceCfg, const RtcConnectionConfiguration &cfg)=0
agora::rtc::IRtcConnectionEx::getVideoPacketFilter
virtual VideoPacketFilter * getVideoPacketFilter()=0
agora::rtc::IRtcConnectionEx::muteAllRemoteVideo
virtual void muteAllRemoteVideo(bool mute)=0
agora::rtc::IRtcConnectionEx::setUserRole
virtual void setUserRole(CLIENT_ROLE_TYPE role)=0
agora::rtc::CONNECTION_MODE_PASSIVE
@ CONNECTION_MODE_PASSIVE
Definition: rtc_connection_i.h:92
agora::rtc::PacketOptions::PacketOptions
PacketOptions()
Definition: rtc_connection_i.h:68
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:25
agora::rtc::ReceivePacketHandler::ReceivePacketHandler
ReceivePacketHandler(onAudioPacketType &&onAudioPacket=nullptr, onVideoPacketType &&onVideoPacket=nullptr, onVideoRtcpPacketType &&onVideoRtcpPacket=nullptr, onVideoReportPacketType &&onVideoReportPacket=nullptr, onVideoCustomCtrlPacketType &&onVideoCustomCtrlPacket=nullptr, onAudioFrameType &&onAudioFrame=nullptr)
Definition: rtc_connection_i.h:143
agora::rtc::CLIENT_ROLE_TYPE
CLIENT_ROLE_TYPE
Definition: AgoraBase.h:2269
agora::rtc::IRtcConnectionEx::unsubscribeReceivePacketHandler
virtual void unsubscribeReceivePacketHandler()=0
agora::rtc::IRtcConnectionEx::batchSendVideoPacket
virtual int batchSendVideoPacket(std::vector< video_packet_t > &packets)=0
agora::rtc::CONNECTION_STATE_TYPE
CONNECTION_STATE_TYPE
Definition: AgoraBase.h:3137
agora::rtc::ReceivePacketHandler::onVideoReportPacketType
std::function< int(video_report_packet_t &)> onVideoReportPacketType
Definition: rtc_connection_i.h:133
agora::rtc::IRtcConnectionEx::getCallContext
virtual CallContext * getCallContext()=0
agora::rtc::IRtcConnectionEx::setLocalUserId
virtual void setLocalUserId(user_id_t userId)=0
agora::rtc::RtcConnectionConfiguration::maxSendBitrate
int maxSendBitrate
Definition: NGIAgoraRtcConnection.h:115
agora::rtc::IRtcConnectionEx::setVos
virtual void setVos(const char *name, int port)=0
agora::rtc::ReceivePacketHandler::onVideoPacketType
std::function< int(video_packet_t &)> onVideoPacketType
Definition: rtc_connection_i.h:131
rtc
Definition: video_node_i.h:27
agora::rtc::IRtcConnectionEx::isWebrtcPacerEnabled
virtual bool isWebrtcPacerEnabled()=0
agora::rtc::IRtcConnectionEx::isConnected
virtual bool isConnected()=0
agora::rtc::IRtcConnectionEx
Definition: rtc_connection_i.h:170
agora::rtc::IRtcConnectionEx::getUserId
virtual bool getUserId(rtc::uid_t uid, std::string &userId)=0