Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
agora_service_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
12#include "AgoraRefPtr.h"
13
14#include "IAgoraService.h"
15#include "IAgoraLog.h"
16
17#include "audio_options_i.h"
18#include "content_inspect_i.h"
19#include "sync_client_i.h"
20#include "audio_track_i.h"
21#include "video_track_i.h"
22#include "media_node_factory_i.h"
23#include "bitrate_constraints.h"
24#include "media_component/IAudioDeviceManager.h"
25#include "api2/NGIAgoraAudioDeviceManager.h"
26#include "api2/NGIAgoraMediaNode.h"
27
28#include <functional>
29#include <string>
30#include <api/aosl_ref.h>
31
32namespace agora {
33namespace commons{
34 class io_engine_base;
35}
36namespace rtm {
37struct RtmConfig;
38}
39namespace rtc {
40class AgoraGenericBridge;
41class ConfigSourceAP;
43class ILocalUserEx;
44class IRtcConnection;
47class XdumpHandler;
48} // namespace rtc
49
50namespace base {
52
67
70 const char* deviceId = nullptr;
71 const char* deviceInfo = nullptr;
72 const char* systemInfo = nullptr;
73 const char* configDir = nullptr;
74 const char* dataDir = nullptr;
75 const char* pluginDir = nullptr;
76 const char* shortCountryCode = nullptr;
78 bool apSendRequest = true;
79
81 bitrateConstraints.start_bitrate_bps = kDefaultStartBitrateBps;
82 bitrateConstraints.max_bitrate_bps = kDefaultMaxBitrateBps;
83 }
84
87 bitrateConstraints.max_bitrate_bps = kDefaultMaxBitrateBps;
88 bitrateConstraints.start_bitrate_bps = kDefaultStartBitrateBps;
89 }
90
91 private:
92 static constexpr int kDefaultMaxBitrateBps = (24 * 10 * 1000 * 95);
93 static constexpr int kDefaultStartBitrateBps = 300000;
94};
95
96
97// full feature definition of rtc engine interface
99 public:
101 virtual int initialize(const rtm::RtmConfig& rtmCfg) { return 0; }
102 virtual void set_lite_initialized(bool initialized) {}
104 virtual int initializeEx(const AgoraServiceConfigEx& context) = 0;
106 const rtc::RtcConnectionConfigurationEx& cfg) = 0;
107
108 virtual int32_t setAudioDumpPath(const char* filePath) = 0;
109
110 virtual rtc::IRtcConnection* getOneRtcConnection(bool admBinded) const = 0;
111
112 virtual void enableStringUid(bool enabled) = 0;
113 virtual bool useStringUid() const = 0;
114 virtual bool externalAudioSinkEnabled() const = 0;
115 virtual rtc::uid_t getUidByUserAccount(const std::string& app_id, const std::string& user_account) const = 0;
116
117 // Register string user account before join channel, this would speed up join channel time.
118 virtual int registerLocalUserAccount(const char* appId, const char* userAccount) = 0;
119
121
124
126 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId, media::CONTENT_INSPECT_CLOUD_TYPE cloudType) = 0;
127
129 virtual int atExitLLApiInternal() = 0;
130 virtual int releaseLLApiInternal() = 0;
131 virtual int setLogFileLLApiInternal(const char* filePath, unsigned int fileSize) = 0;
132 virtual int setLogFilterLLApiInternal(unsigned int filters) = 0;
134 const user_id_t usrId) = 0;
135 virtual int getConnectionCountsWithChannelId(const char* channelId) = 0;
136#if defined(FEATURE_RTM_SERVICE)
138#endif
158
164#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
167#else
169#endif
181 virtual const char* getExtensionIdLLApiInternal(const char* provider_name, const char* extension_name) = 0;
182 virtual int enableExtensionLLApiInternal(const char* provider_name, const char* extension_name, const char* track_id, bool auto_enable_on_track) = 0;
183 virtual int disableExtensionLLApiInternal(const char* provider_name, const char* extension_name, const char* track_id) = 0;
192 virtual int startTrace(uint32_t count, uint64_t mask) = 0;
201 virtual int stopTrace(const char* file_path) = 0;
202
222 virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels) = 0;
223
233 virtual int pullPlaybackAudioPcmData(void* payloadData, const rtc::AudioPcmDataInfo& audioFrameInfo) = 0;
234#if defined(ENABLE_MEDIA_PLAYER)
235 virtual aosl_ref_t createRhythmPlayer() = 0;
236
237 virtual int destroyRhythmPlayer(aosl_ref_t ref_id) = 0;
238
240
241 virtual int destroyMediaPlayer(aosl_ref_t ref_id) = 0;
242#endif
243
245
246 virtual commons::io_engine_base* getIoEngine() = 0;
247#if defined(__ANDROID__)
262 virtual int setExternalRemoteEglContext(void* eglContext) = 0;
263#endif
264 protected:
265 virtual ~IAgoraServiceEx() {}
266};
267
269 public:
270 virtual ~IAgoraServiceObserver() = default;
271
272 virtual void onLocalUserRegistered(rtc::uid_t uid, const char* userAccount) = 0;
273};
274
276
277} // namespace base
278} // namespace agora
Definition AgoraRefPtr.h:44
Definition agora_service_i.h:98
virtual agora_refptr< rtc::ILocalAudioTrackEx > createScreenCaptureAudioTrackLLApiInternal(agora_refptr< rtc::IScreenCapturer2 > screen)=0
virtual agora_refptr< rtc::IFileUploaderService > createFileUploadServiceEx(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId, media::CONTENT_INSPECT_CLOUD_TYPE cloudType)=0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createMediaStreamingVideoTrackLLApiInternal(agora_refptr< rtc::IMediaStreamingSource > streamingSource, const char *id=nullptr)=0
virtual agora_refptr< rtc::IAudioDeviceManager > createAudioDeviceManagerComponentLLApiInternal(rtc::IAudioDeviceManagerObserver *observer)=0
virtual void set_lite_initialized(bool initialized)
Definition agora_service_i.h:102
virtual agora_refptr< rtc::IConfigCenter > getConfigCenterLLApiInternal()=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createCustomAudioTrackLLApiInternal(agora_refptr< rtc::IRemoteAudioMixerSource > audioSource)=0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createScreenCaptureVideoTrackLLApiInternal(agora_refptr< rtc::IScreenCapturer > screen, const char *id)=0
virtual int releaseLLApiInternal()=0
virtual int pullPlaybackAudioPcmData(void *payloadData, const rtc::AudioPcmDataInfo &audioFrameInfo)=0
virtual agora_refptr< base::ISyncClientEx > createSyncClientLLApiInternal(const SyncConfig &config)=0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createTranscodedVideoTrackLLApiInternal(agora_refptr< rtc::IVideoFrameTransceiver > transceiver, const char *id)=0
virtual aosl_ref_t createMediaPlayer(media::base::MEDIA_PLAYER_SOURCE_TYPE type)=0
virtual agora_refptr< rtc::IRtcConnectionEx > createRtcConnectionEx(const rtc::RtcConnectionConfigurationEx &cfg)=0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createCustomVideoTrackLLApiInternal(agora_refptr< rtc::IVideoFrameSender > videoSource, const char *id)=0
virtual bool externalAudioSinkEnabled() const =0
virtual int setExternalRemoteEglContext(void *eglContext)=0
virtual agora_refptr< rtc::IMediaRelayService > createMediaRelayServiceLLApiInternal(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
virtual int setLogFileLLApiInternal(const char *filePath, unsigned int fileSize)=0
virtual int unregisterAgoraServiceObserver(IAgoraServiceObserver *observer)=0
virtual int addExtensionObserverLLApiInternal(agora::agora_refptr< agora::rtc::IMediaExtensionObserver > observer)=0
virtual rtc::uid_t getUidByUserAccount(const std::string &app_id, const std::string &user_account) const =0
virtual agora_refptr< rtc::IRtcConnectionEx > getRtcConnectionInChannel(const char *name, const user_id_t usrId)=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createLocalAudioTrackLLApiInternal()=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createMediaStreamingAudioTrackLLApiInternal(agora_refptr< rtc::IMediaStreamingSource > streamingSource)=0
virtual int destroyRhythmPlayer(aosl_ref_t ref_id)=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createDirectCustomAudioTrackLLApiInternal(agora_refptr< rtc::IAudioPcmDataSender > audioSource, bool enableAudioProcessing)=0
virtual int registerAgoraServiceObserver(IAgoraServiceObserver *observer)=0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createScreenCaptureVideoTrackLLApiInternal(agora_refptr< rtc::IScreenCapturer2 > screen)=0
virtual int getAudioSessionConfigurationLLApiInternal(AudioSessionConfiguration *config)=0
virtual int disableExtensionLLApiInternal(const char *provider_name, const char *extension_name, const char *track_id)=0
virtual int setAudioSessionConfigurationLLApiInternal(const AudioSessionConfiguration &config)=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createCustomAudioTrackLLApiInternal(agora_refptr< rtc::IMediaPacketSender > source)=0
virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels)=0
virtual agora_refptr< rtc::IRtcConnection > createRtcConnectionLLApiInternal(const rtc::RtcConnectionConfiguration &cfg)=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createCustomAudioTrackLLApiInternal(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
virtual bool useStringUid() const =0
virtual int setAudioSessionPresetLLApiInternal(rtc::AUDIO_SCENARIO_TYPE scenario)=0
virtual int setLogFilterLLApiInternal(unsigned int filters)=0
virtual agora_refptr< rtc::INGAudioDeviceManager > createAudioDeviceManagerLLApiInternal()=0
virtual int removeExtensionObserverLLApiInternal(agora::agora_refptr< agora::rtc::IMediaExtensionObserver > observer)=0
virtual rtc::IDiagnosticService * getDiagnosticService() const =0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createCustomVideoTrackLLApiInternal(agora_refptr< rtc::IVideoEncodedImageSender > videoSource, const rtc::SenderOptions &options, const char *id=nullptr)=0
virtual const char * getExtensionIdLLApiInternal(const char *provider_name, const char *extension_name)=0
virtual ~IAgoraServiceEx()
Definition agora_service_i.h:265
virtual agora_refptr< rtc::ILocalAudioTrackEx > createLocalMixedAudioTrackLLApiInternal()=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createCustomAudioTrackLLApiInternal(agora_refptr< rtc::IAudioPcmDataSender > audioSource, bool enableAec)=0
virtual int releaseEngineResourceLLApiInternal()=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createMediaPlayerAudioTrackLLApiInternal(agora_refptr< rtc::IMediaPlayerSource > playerSource)=0
virtual agora_refptr< rtc::IMediaNodeFactoryEx > createMediaNodeFactoryLLApiInternal()=0
virtual agora_refptr< rtc::IRtmpConnection > createRtmpConnectionLLApiInternal(const rtc::RtmpConnectionConfiguration &cfg)=0
virtual int destroyMediaPlayer(aosl_ref_t ref_id)=0
virtual int unregisterServiceEventObserver(IServiceObserver *observer)=0
virtual int startTrace(uint32_t count, uint64_t mask)=0
virtual int registerLocalUserAccount(const char *appId, const char *userAccount)=0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createCustomVideoTrackLLApiInternal(agora_refptr< rtc::IMediaPacketSender > source, const char *id=nullptr)=0
virtual int stopTrace(const char *file_path)=0
virtual int initializeEx(const AgoraServiceConfigEx &context)=0
virtual agora_refptr< rtc::IRtmpStreamingService > createRtmpStreamingServiceLLApiInternal(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createCameraVideoTrackLLApiInternal(agora_refptr< rtc::ICameraCapturer > videoSource, const char *track_id)=0
virtual agora_refptr< ILocalDataChannel > createLocalDataChannelLLApiInternal(const DataChannelConfig &config)=0
virtual int atExitLLApiInternal()=0
virtual void enableStringUid(bool enabled)=0
virtual rtc::IRtcConnection * getOneRtcConnection(bool admBinded) const =0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createMediaPlayerVideoTrackLLApiInternal(agora_refptr< rtc::IMediaPlayerSource > playerVideoSource, const char *id=nullptr)=0
virtual agora_refptr< rtc::IFileUploaderService > createFileUploadServiceLLApiInternal(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
virtual rtm::IRtmService * createRtmServiceLLApiInternal()=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createCustomAudioTrackLLApiInternal(agora_refptr< rtc::IAudioEncodedFrameSender > audioSource, TMixMode mixMode)=0
virtual agora_refptr< rtc::ILocalVideoTrackEx > createMixedVideoTrackLLApiInternal(agora_refptr< rtc::IVideoMixerSource > videoSource, const char *id)=0
virtual int32_t setAudioDumpPath(const char *filePath)=0
virtual int getConnectionCountsWithChannelId(const char *channelId)=0
virtual aosl_ref_t createRhythmPlayer()=0
virtual int initializeLLApiInternal(const AgoraServiceConfiguration &config)=0
virtual int initialize(const rtm::RtmConfig &rtmCfg)
Definition agora_service_i.h:101
virtual int enableExtensionLLApiInternal(const char *provider_name, const char *extension_name, const char *track_id, bool auto_enable_on_track)=0
virtual agora_refptr< rtc::ILocalAudioTrackEx > createRecordingDeviceAudioTrackLLApiInternal(agora_refptr< rtc::IRecordingDeviceSource > audioSource, bool enableAec, bool overlap)=0
virtual commons::io_engine_base * getIoEngine()=0
Definition IAgoraService.h:395
virtual int initialize(const AgoraServiceConfiguration &config)=0
Definition agora_service_i.h:268
virtual void onLocalUserRegistered(rtc::uid_t uid, const char *userAccount)=0
virtual ~IAgoraServiceObserver()=default
Definition IAgoraService.h:357
Definition NGIAgoraAudioDeviceManager.h:91
Definition diagnostic_service_i.h:35
Definition local_user_i.h:129
Definition NGIAgoraMediaNode.h:230
Definition NGIAgoraRtcConnection.h:184
Definition IAgoraRtmService.h:637
Definition IAgoraService.h:72
TMixMode
Definition IAgoraService.h:343
MediaEngineType
Definition agora_service_i.h:53
@ MEDIA_ENGINE_WEBRTC
Definition agora_service_i.h:57
@ MEDIA_ENGINE_UNKNOWN
Definition agora_service_i.h:65
@ MEDIA_ENGINE_EMPTY
Definition agora_service_i.h:61
IAgoraServiceEx * GetService()
Definition agora_log_i.h:14
MEDIA_PLAYER_SOURCE_TYPE
Definition AgoraMediaBase.h:1122
CONTENT_INSPECT_CLOUD_TYPE
Definition content_inspect_i.h:35
Definition AgoraExtensions.h:5
AUDIO_SCENARIO_TYPE
Definition AgoraBase.h:3042
unsigned int uid_t
Definition AgoraMediaBase.h:28
Definition IAgoraRtmService.h:14
Definition AgoraAtomicOps.h:21
const char * user_id_t
Definition AgoraBase.h:853
Definition NGIAgoraDataChannel.h:18
Definition agora_service_i.h:68
const char * shortCountryCode
Definition agora_service_i.h:76
rtc::BitrateConstraints bitrateConstraints
Definition agora_service_i.h:77
AgoraServiceConfigEx()
Definition agora_service_i.h:80
const char * configDir
Definition agora_service_i.h:73
MediaEngineType engineType
Definition agora_service_i.h:69
AgoraServiceConfigEx(const AgoraServiceConfiguration &rhs)
Definition agora_service_i.h:85
const char * deviceInfo
Definition agora_service_i.h:71
const char * dataDir
Definition agora_service_i.h:74
bool apSendRequest
Definition agora_service_i.h:78
const char * pluginDir
Definition agora_service_i.h:75
const char * deviceId
Definition agora_service_i.h:70
const char * systemInfo
Definition agora_service_i.h:72
Definition IAgoraService.h:82
AgoraServiceConfiguration()
Definition IAgoraService.h:167
Definition IAgoraService.h:186
Definition NGIAgoraSyncClient.h:78
Definition AgoraBase.h:1564
Definition bitrate_constraints.h:20
Definition rtc_connection_i.h:105
Definition NGIAgoraRtcConnection.h:90
Definition NGIAgoraRtmpConnection.h:231
Definition AgoraBase.h:1293