Note: Please update this file for every Agora API change you do. Simply fill in your updates in the Working section below.
Agora Low Level APIs (Working)
API (yyyy-mm-dd)
Purpose of this change
API file name #1
Add: Short description
Modified: Short description
- Changes Foo() to Foo1()
- Changes Bar() to Bar1()
API (2024-07-08)
config_engine_i.h
Add:
- Add CONFIGURABLE_KEY_VIDEO_FALBACK_TO_GDI_WITH_WGC_BORDER_ISSUE
API (2024-07-05)
NGIAgoraExtensionScreenSource.h Add add a member(bool disable_avf) for struct VideoCaptureConfig
API (2024-07-02)
LocalAudioTrack add setMaxBufferedAudioFrameNumber and ClearSenderBuffer
Add:
- setMaxBufferedAudioFrameNumber
- ClearSenderBuffer
API (2024-07-01)
NGIAgoraVideoTrack.h Add: add a member(decoder_type) for struct RemoteVideoTrackStats
API (2024-06-05)
NGIAgoraAudioTrack.h Add:
- RemoteAudioTrackStats::full_frozen_time_80_ms
- RemoteAudioTrackStats::full_frozen_time_200_ms
API (2024-05-20)
Changes for AudioSessionConfiguration
Add:
- category for struct AudioSessionConfiguration
API (2024-05-08)
Modified: add ares parameter for media relay interface
API (2024-04-30)
Adaption for rtm2 in sync interface
Modified:
- Add more enum value as return value
API (2024-06-04)
modify createCollection
Modified:
- remove parameter const char** writable, int writeSize
API (2024-04-02)
Add:
- Add fence_object in TextureInfo
API (2024-04-02)
Add:
- add setLogWriter && releaseLogWriter
API (2024-04-02)
Audio metadata
Modified:
- Add "@technical preview" for audio metadata api
API (2024-4-01)
NGIAgoraAudioTrack.h
Add:
– Changes virtual bool IAudioTrack::addAudioFilter – Add IAudioFilterV2 interface – Add *WithContext interface in IMediaExtensionObserver
API (2024-03-25)
Loopback recording.
Modified:
- Add a parameter for IAgoraService::createRecordingDeviceAudioTrack()
API (2024-03-07)
Deleted:
- IExtensionProvider::EXTENSION_TYPE.LIP_SYNC_PROCESSING_FILTER
- IExtensionProvider createLipSyncFilter
API (2024-02-23)
Add:
- add struct StreamLayerIndexInternal & StreamLayerConfigInternal for simulcast
API(2023-08-24)
config_engine_i.h
Add:
- CONFIGURABLE_KEY_VIDEO_DO_NOT_SKIP_SYSTEM_WINDOW
Modified:
- Add one parameters to skip system window or not in ScreenSourceListOption
API (2024-03-08)
Deleted:
API (2024-02-22)
Add:
- virtual int sendAudioMetadata(const char* metadata, size_t length, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
- virtual void onAudioMetadataReceived(user_id_t userId, const char* metadata, size_t length)
API (2024-02-22)
Modified:
- AudioDeviceInfo struct add char deviceTypeName[MAX_DEVICE_ID_LENGTH]
API (2024-02-21)
config_engine_i.h
Add:
- Add CONFIGURABLE_KEY_DATASTREAM_ENCRYPTION_ENABLED
API (2024-02-27)
packet_i.h
Add:
- More value for enum MEDIA_STREAM_TYPE
- More value for enum video_packet_t::VIDEO_STREAM_TYPE
API (2024-02-05)
Add:
- int muteRemoteFromTimestamp(int timestamp)
- int unmuteRemoteFromTimestamp(int timestamp)
API (2024-01-24)
config_engine_i.h
Add:
- Add LOCAL_EXTENSION_LOCAL_COUNTER_LIP_SYNC_COST_TIME to the LocalExtensionCounter
Add:
- IExtensionProvider::EXTENSION_TYPE.LIP_SYNC_PROCESSING_FILTER
- IExtensionProvider createLipSyncFilter
Add:
API (2024-01-07)
Add:
– Add virtual int stopVideoCaptureAsync() = 0;
API (2024-01-05)
Modified:
- delete RtmpConnectionConfiguration::enableWriteFlvFile for it is no longer used
API (2024-01-03)
config_engine_i.h
Add:
- Add CONFIGURABLE_KEY_VIDEO_EXCLUDE_HIGHLIGHT_BORDER_FOR_MAGNIFITER
- Add CONFIGURABLE_KEY_VIDEO_FORCE_USE_BITBLT_ON_WIN7
API (2023-11-17)
Modified:
- add aosl_ref_t default paramters to IVideoTrack::getFilterProperty
API (2023-11-14)
NGIAgoraExtensionScreenSource.h Add:
- Add
virtual void printLog(commons::LOG_LEVEL level, const char* fromat, va_list) = 0;
API (2023-11-07)
Modified:
- add __deprecated tag to AgoraServiceConfiguration::threadPriority
API (2023-10-31)
NGIAgoraAudioTrack.h Modified:
- Change onLocalAudioTrackStateChanged::LOCAL_AUDIO_STREAM_ERROR errorCode to LOCAL_AUDIO_STREAM_REASON reasonCode.
API (2023-10-11)
IAgoraMediaRelayService.h internal/video_track_i.h internal/local_user_i.h internal/diagnostic_service_i.h internal/common_defines.h
internal/agora_service_i.h
Modified:
- add aosl_ref_t default paramters
API (2023-09-27)
Add: Add interface for IScreenCaptureSource (Windows)
- virtual void recycleVideoCache() = 0;
API (2023-09-25)
NGIAgoraMediaNode.h NGIAgoraVideoFrame.h
Modified:
- Remove depends on aosl_ares_class
API (2023-09-26)
Modified:
- Remove
virtual agora_refptr<rtc::ILocalVideoTrack> createScreenVideoTrack(agora_refptr<rtc::IScreenCapturer> videoSource, const char* id = OPTIONAL_NULLPTR)
API (2023-08-28)
Modified:
- Remove createScreenCapturer() on mobile platform.
API (2023-08-28)
Format NAIAgoraConfigCenter.h
NAIAgoraConfigCenter.h
Modified:
API (2023-08-15)
update config for face capture
config_engine_i.h
Add:
- CONFIGURABLE_KEY_VIDEO_FACE_CAPTURE_THRESHOLD
API(2023-08-03)
agora_service_i.h
Add:
- virtual aosl_ref_t createRhythmPlayer() = 0;
- virtual int destroyRhythmPlayer(aosl_ref_t ref_id) = 0;
- virtual aosl_ref_t createMediaPlayer(media::base::MEDIA_PLAYER_SOURCE_TYPE type) = 0;
- virtual int destroyMediaPlayer(aosl_ref_t ref_id) = 0;
API (2023-8-1)
Modified:
- remove default value for parameter |position| of function addRenderer and removeRenderer
API(2023-07-05)
Add:
- add annotations to setAudienceLatencyLevel
API (2023-07-04)
NGIAgoraAudioTrack.h Add:
- RemoteAudioTrackStats::frozen_count_10_ms
API(2023-12-20)
NGIAgoraSyncClinet.h
Add:
API(2023-12-20)
NGIAgoraSyncClinet.h
Modify:
- modify onCollectionEvent param name to curJson
IAograService.h Add
- add createSyncClient(const base::SyncConfig& config) = 0;
API (2023-08-21)
IAgoraService.h Modify:
- add comment for getAgoraParameter
API(2023-07-03)
Modified:
- Changes setAudienceLatencyLevel(AUDIENCE_LATENCY_LEVEL_TYPE level) to setAudienceLatencyLevel(AUDIENCE_LATENCY_LEVEL_TYPE level, int role)
API(2023-07-01)
Modified:
- Deprecate parameter |independent_thread| in IExtensionVideoFilter::getProcessMode(...)
API(2023-06-25)
Deleted:
- virtual agora_refptr<IRemoteAudioMixerSource> createRemoteAudioMixerSource()
API(2023-07-18)
Add:
- add api virtual agora_refptr<base::IAgoraParameter> getAgoraParameter() = 0;
API(2023-05-10)
internal/screen_capture_i.h
Add:
- Add interface SetCaptureToTexture in IScreenCapturerEx
- Add interface GetCaptureToTexture in IScreenCapturerEx
API(2023-05-16)
video_node_i.h
ADD
- Add struct
IVideoRendererEx:ViewOption
Modified:
- Change
virtual int addViewEx(uintptr_t handle, const Rectangle& cropArea, bool enableAlphaMask)
to virtual int addViewEx(uintptr_t handle, const ViewOption& option)
API (2023-11-16)
low level api include aosl using <>
nothing changed else
API (2023-5-15)
Add:
- VideoFrameMetaDataType::kFaceCaptureInfo
API(2023-05-10)
Modified:
- add two parameters to get camera device type in IDeviceInfo::GetDeviceName(...)
API (2023-04-27)
Modified:
API (2023-04-26)
move SetLocalAccessPoint interface to low level module
Add:
- Add SetLocalAccessPoint interface
API (2023-04-12)
Modified:
- IAudioPcmDataSender::sendAudioPcmData(...) add a parameter with type of "const int audio_track_number"
- modify doc of onFacePositionChanged()
API (2023-03-28)
NGIAgoraAudioTrack.h Add:
- RemoteAudioTrackStats::fec_decode_ms
API(2023-03-24)
Modified:
- IAudioPcmDataSender::sendAudioPcmData(...) add a parameter (presentation_ms) with type of int64_t
API(2023-03-18)
Modified:
- Update the comment of fillVideoFrameData
API(2023-03-16)
Add:
API (2023-03-21)
NGIAgoraRtcConnection.h
Modified:
API (2023-03-09)
Modified:
- modify doc of onFacePositionChanged()
API(2023-02-06)
[FEAT] CSD-52362: provide APIs for adjusting acceleration and deceleration speeds during poor network
Add:
- int adjustAudioAcceleration(int percentage)
- int adjustAudioDeceleration(int percentage)
API (2023-01-24)
Support set video application scenarios
Add:
- int ILocalUser::setVideoScenario(VIDEO_APPLICATION_SCENARIO scenario)
API (2023-2-6)
MODIFY:
- Modify function void* getScreenCaptureSources(const ScreenSourceListOption& option)
API (2023-02-14)
Support set video qoe preference
Add:
- int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference)
API (2022-12-30)
MODIFY:
API (2023-01-18)
Add:
- virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration& configuration) Modified:
- virtual int startChannelMediaRelay(const ChannelMediaRelayConfiguration& configuration)
- virtual int updateChannelMediaRelay(const ChannelMediaRelayConfiguration& configuration)
- Deprecated virtual void onChannelMediaRelayEvent(int code)
API (2023-05-18)
Deleted:
- Deprecated virtual void onChannelMediaRelayEvent(int code)
API (2023-02-22)
Modified:
- supplemental onChannelMediaRelayEvent comments
API(2022-11-30)
Get AI-AEC Interface for version
- virtual void Version(char ver[MAX_VERSION_LEN]) = 0;
API (2022-12-01)
Modified: modified interface for IScreenCaptureSource
- virtual int SetContentType(int type)
API (2022-11-21)
Add:
- add kI010 in RawPixelBuffer
API (2023-01-30)
Add: Add interface for IScreenCaptureSource (iOS)
- virtual int pushVideoFrame(CVPixelBufferRef pixelBuffer, int64_t timestamp_ms, uint32_t rotation)
API(2022-12-08)
[FEAT] NMS-9295: provide APIs for setting first video frame starting tick
Add:
- ILocalUserObserver::onVideoRenderingTracingResult(user_id_t user_id, MEDIA_TRACE_EVENT currentState, VideoRenderingTracingInfo tracingInfo)
API (2022-12-15)
Add:
- Add SetAudioNsMode.
API (2022-12-15)
API (2022-11-10)
Modified:
- add deviceType for onVolumeIndication in class IAudioDeviceManagerObserver
API (2022-11-09)
update config for super resolution 3.0
config_engine_i.h
Add:
- CONFIGURABLE_KEY_VIDEO_SRTYPE_BITMAP
- CONFIGURABLE_KEY_VIDEO_SRTIMES_SELECT_WEIGHT
- CONFIGURABLE_KEY_VIDEO_ENABLE_LOCAL_SR
- CONFIGURABLE_KEY_VIDEO_LOCAL_SRTYPE
- CONFIGURABLE_KEY_VIDEO_SR_PADDING Deleted:
- CONFIGURABLE_KEY_VIDEO_SHARPEN_TRACK_LIMIT
- CONFIGURABLE_KEY_VIDEO_SIMPLE_SR
- CONFIGURABLE_KEY_VIDEO_RESOURCE_MANAGER_POLICY_TYPE
API (2022-11-09)
API changes audio local playback.
Modified:
Main methods:
- void enableLocalPlayback(bool enable, bool sync = true)
API(2022-11-7)
add private parameter to support configuration from server for adm latency calcuation
config_engine_i.h
Add:
- Add CONFIGURABLE_KEY_RTC_AUDIO_EXTRA_PLAYOUT_LATENCY, CONFIGURABLE_KEY_RTC_AUDIO_EXTRA_RECORD_LATENCY to adjust adm latency calculation result.
audio_options_i.h
Add:
- Add option adm_extra_playout_latency adm_extra_record_latency to adjust adm latency calculation result.
API (2021-10-28)
NGIAgoraAudioDeviceManager.h
Modified:
API (2022-10-18)
Deleted:
- Delete superResolutionType in RemoteVideoTrackStats
API (2022-10-12)
Modified:
- update default position for addRenderer
API (2022-09-06)
Modified:
- add "kFaceInfo" in VideoFrameMetaDataType
API (2022-11-16)
NGIAgoraRtmpConnection.h
Modified: RtmpStreamingVideoConfiguration add encoderBitrateControlMode
API (2022-10-11)
Modified:
- add comments for domainLimit in AgoraServiceConfiguration
API (2022-09-28)
Add:
- add domainLimit in AgoraServiceConfiguration
API (2022-09-12)
Modified: adding memver variable
- add hw_encoder_accelerating in LocalVideoStats
API (2022-09-27)
Modified: setSubscribe(audio,video)(Black,white)list api to block,allow
API (2022-10-08)
Add:**
- Add interface for DataChannel
API (2022-09-26)
NGIAgoraLocalUser.h
Modified:
- onEncodedVideoFrameReceived
API (2022-10-20)
Modified:
- add the description of the cross channel relay return value
API (2022-09-22)
Deleted:
- Remove onApiCallExecuted from IRtcConnectionObserver
API (2022-09-22)
NGIAgoraAudioTrack.h Add:
- RemoteAudioTrackStats::frozen_rate_by_custom_plc_count
- RemoteAudioTrackStats::plc_count
API (2022-09-20)
Remove unused forward declaration
Deleted:
- Remove ISignalingEngine
- Remove IEngineBase
API(2022-9-15)
add private parameter to control builtin 3a for java adm, the default value is true
config_engine_i.h
Add:
- Add CONFIGURABLE_KEY_RTC_AUDIO_BUILTIN3A_ENABLE to control builtin 3a for java adm
audio_options_i.h
Add:
- Add option adm_enable_builtin3a to control builtin 3a for java adm
API (2023-11-01)
Add:
- virtual int setCameraStabilizationMode(CAMERA_STABILIZATION_MODE mode)
- virtual bool isSupportCenterStage()
- virtual int enableCenterStage(bool enabled)
API (2022-09-14)
Add:
- virtual int enableMultiCamera(bool enabled)
API (2022-09-08)
Modified:
- onTransferStatistics add params (video_width video_height)
API (2022-08-30)
Modified:
- Include <stdint.h> to use fixed width integer types
API (2022-08-29)
Add: Add interface for IScreenCaptureSource
- virtual int setHighLight(bool isHighLight, unsigned int color, int width)
- virtual int SetContentType(VideoContentSubType type)
API (2022-08-24)
Modified:
- add parameter 'const ClientRoleOptions& newRoleOptions' for onChangeRoleSuccess()
API(2022-08-15)
Add AI-AEC Interface
- virtual int ProcessAiNlpFrame(float* input, float* output) = 0;
- virtual int ClearHiddenState(float scale_factor = 0.0) = 0;
API (2022-08-23)
NGIAgoraExtensionVQA.h
Add:
- IAgoraVideoQualityAnalyzer
Modify:
- add mosValue in RteRemoteVideoStats
API(2022-8-10)
Modified:
- delete createCustomAudioTrack( agora_refptr<rtc::IAudioPcmDataSender> audioSource, agora_refptr<rtc::IAudioPcmDataSender> audioReverseSource, int audioSourceDelay)
API (2022-07-15)
Changes for AudioSessionConfiguration
Add:
API (2022-07-14)
NGIAgoraAudioTrack.h
Add:
- IAudioTrack::AudioFilterPosition::RemoteMixedPlayback
- IExtensionProvider::EXTENSION_TYPE.AUDIO_REMOTE_MIXED_PLAYBACK_FILTER
API (2022-07-12)
IAgoraService.h Modified: Delete some commented fields in AudioEncoderConfiguration
API (2022-07-12)
IAgoraService.h
Modified:
modify void SetAll(const AudioSessionConfiguration& change)
Modified:
- set "unload_after_use" false by default in loadExtensionProvider
API (2022-07-04)
Modified:
- add "unload_after_use" boolean flag in loadExtensionProvider
API (2022-07-08)
NGIAgoraVideoFrame.h
Deleted:
- virtual int updateSimulcastStreamConfig(const SimulcastStreamConfig& config) = 0;
- virtual int enableSimulcastStream(bool enabled, const SimulcastStreamConfig& config) = 0;
API (2022-06-29)
NGIAgoraRtmpConnection.h
Modified: RtmpStreamingVideoConfiguration add encoderHwSwMode
API (2022-06-23)
NGIAgoraVideoFrame.h
Modified: add video source type in meta info
API (2022-06-22)
NGIAgoraMixerSource.h
Add: Add interface for setting master clock of the mixer int setMasterClockSource(const char* id)
API (2022-06-10)
ADD:
- virtual int setLoopbackDevice(int index) = 0;
- virtual int followSystemLoopabckDevice(bool enable) = 0;
API (2022-06-10)
IAgoraService.h
Modified: Add loadExtensionProvider for Android
API (2022-06-06)
NGIAgoraRtcConnection.h
Modified: Add a new Connect() API. Add TConnectSettings
API (2022-06-05)
NGIAgoraRtcConnection.h
Modified:
- remove channel from onSnapshotTaken
API (2022-06-01)
Add: Add interface for IScreenCaptureSource
- IScreenCaptureSourceList* getScreenCaptureSources( int thumb_cx, int thumb_cy, int icon_cx, int icon_cy, bool include_screen)
API (2022-05-06)
Delete:
- Delete allowCaptureCurrentApp for iOS and Android
API (2022-05-23)
NGIVideoFrame.h
Delete:
- Delete Screen Capture Meta Info
API (2022-05-31)
Add:
- int setSimulcastStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& config)
API (2022-05-18)
Modify:
- Add id for all video track creator
video_track_i.h
Modify:
API (2022-05-13)
Add:
- Add setScreenCaptureDimensions for iOS and Android
API(2022-05-13)
Modified:
- del a parameter with type of "const AudioFrameHandleInfo*" in IAudioPcmDataSender::sendAudioPcmData(...)
API (2023-02-15)
Add:
- RemoteVideoTrackStats.received_bytes
API (2022-05-09)
ADD: Add comments for isCameraTorchSupported setCameraTorchOn
API (2022-05-08)
internal/config_engine_i.h
ADD: Add parameter INTERNAL_KEY_RTC_VIDEO_WIFI_ACC_ENABLE.
- void onWlAccMessage(WLACC_MESSAGE_REASON reason, WLACC_SUGGEST_ACTION action, const char* wlAccMsg)
- void onWlAccStats(WlAccStats currentStats, WlAccStats averageStats)
API (2022-05-08)
internal/config_engine_i.h
ADD: Add parameter INTERNAL_KEY_RTC_AUTO_LOG_UPLOAD_SERVER_PATH and INTERNAL_KEY_RTC_AUTO_LOG_UPLOAD_SERVER_CONFIG.
API (2022-05-08)
API changes for Screen Capture
- enable initWithDisplayId for Windows.
API (2022-06-07)
config_engine_i.h
Add:
- INTERNAL_KEY_RTC_AUDIO_RECORD
- INTERNAL_KEY_RTC_SDK_IN_BACKGROUND
- CONFIGURABLE_KEY_JUDGE_SDK_BROADCAST_VERSION
API(2022-5-7)
add private parameter to control adm fallback
config_engine_i.h
Add:
- Add CONFIGURABLE_KEY_RTC_ADM_FALLBACK_ENABLE to control adm fallback
audio_options_i.h
Add:
- Add option adm_enable_fallback to control adm fallback
API (2022-05-26)
Add:
- Add allowCaptureCurrentApp for iOS and Android
API (2022-07-25)
Delete:
- IRtmpLocalUser::setAudioEnabled()
- IRtmpLocalUser::publishMediaPlayerAudio()
- IRtmpLocalUser::unpublishMediaPlayerAudio()
Modified:
- Rename unregisteRtmpUserObserver() to unregisterRtmpUserObserver()
API (2022-05-02)
Modified:
- Rename createCustomExtensionVideoTrack() to createScreenCaptureVideoTrack()
Add:
- createScreenCaptureAudioTrack for iOS and Android
Add: Add setAudioRecordConfig for iOS and Android
API(2022-04-30)
Add Noise Suppresor Interface
- virtual int ProcessDenoiseFrame(float* input, float* output) = 0;
- virtual int ClearHiddenState() = 0;
API(2022-04-28)
Delete:
- IRtcConnectionObserver::onWarning(WARN_CODE_TYPE warning, const char* msg)
API (2022-4-27)
Add:
- CAPTURE_BRIGHTNESS_LEVEL_TYPE captureBrightnessLevel in LocalVideoTrackStats
API(2022-04-24)
Add:
- bool isInteractiveAudience in Struct RtcConnectionConfiguration
API (2022-4-18)
Add methods for control to follow default audio device
Add:
- int followSystemPlaybackDevice(bool enable) = 0;
- int followSystemRecordingDevice(bool enable) = 0;
API (2022-04-21)
Modify:
- change registerVideoEncodedImageReceiver(IVideoEncodedImageReceiver* videoReceiver) to registerVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* encodedObserver)
- change unregisterVideoEncodedImageReceiver(IVideoEncodedImageReceiver* videoReceiver) to unregisterVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* encodedObserver)
API(2022-04-22)
Add:
- void onAudioTrackPublishStart(agora_refptr<ILocalAudioTrack> audioTrack)
- void onAudioTrackUnpublished(agora_refptr<ILocalAudioTrack> audioTrack)
- void onVideoTrackPublishStart(agora_refptr<ILocalVideoTrack> videoTrack)
- void onVideoTrackUnpublished(agora_refptr<ILocalVideoTrack> videoTrack)
Add:
- void onAudioTrackPublishStart(agora_refptr<ILocalAudioTrack> audioTrack)
- void onAudioTrackUnpublished(agora_refptr<ILocalAudioTrack> audioTrack)
- void onVideoTrackPublishStart(agora_refptr<ILocalVideoTrack> videoTrack)
- void onVideoTrackUnpublished(agora_refptr<ILocalVideoTrack> videoTrack)
API (2022-04-20)
Add:
- RemoteAudioTrackStats::downlink_effect_type
API (2022-04-24)
Add:
- setCustomContext
- getCustomContext
API (2022-04-17)
Add:
- add interface setAudioFilterabl
API (2022-08-15)
IAgoraService.h Modified: Add license field in AgoraServiceConfiguration
NGIAgoraAudioTrack.h Add: void onLicenseValidationFailure(LICENSE_ERROR_TYPE error)
API (2021-04-09)
NGIAgoraAudioTrack.h Add:
- RemoteAudioTrackStats.quality_changed_reason
API (2022-05-10)
NGIAgoraExtensionProvider.h Add:
- IExtensionProvider::EXTENSION_TYPE.AUDIO_RECORDING_LOCAL_PLAYBACK_FILTER
- IExtensionProvider::EXTENSION_TYPE.AUDIO_POST_PROCESSING_FILTER
- IExtensionProvider::EXTENSION_TYPE.AUDIO_REMOTE_USER_PLAYBACK_FILTER
- IExtensionProvider::EXTENSION_TYPE.AUDIO_PCM_SOURCE_FILTER
- IExtensionProvider::EXTENSION_TYPE.AUDIO_PCM_SOURCE_SENDING_FILTER
- IExtensionProvider::EXTENSION_TYPE.AUDIO_PCM_SOURCE_LOCAL_PLAYBACK_FILTER
NGIAgoraAudioTrack.h Add:
- int getFilterProperty(const char* id, const char* key, char* jsonValue, size_t bufSize, AudioFilterPosition position);
Modified:
- setFilterProperty(const char* id, const char* key, const char* jsonValue) to setFilterProperty(const char* id, const char* key, const char* jsonValue, AudioFilterPosition position)
- enableAudioFilter(const char* id, bool enable) to enableAudioFilter(const char* id, bool enable, AudioFilterPosition position)
NGIAgoraLocalUser.h Add:
- int enableRemoteAudioTrackFilter(user_id_t userId, const char* id, bool enable)
- int setRemoteAudioTrackFilterProperty(user_id_t userId, const char* id, const char* key, const char* jsonValue)
- int getRemoteAudioTrackFilterProperty(user_id_t userId, const char* id, const char* key, char* jsonValue, size_t bufSize)
API (2021-04-15)
Modified:
API (2022-09-6)
add counter of neteq burst jitter and burst peak num
Modified:
Modified:
API (2022-06-15)
add counter of neteq packet_expired_loss adn packet_max_expired_ms because of expired packet
Modified:
- set RtcConnectionConfiguration.channelProfile default to CHANNEL_PROFILE_LIVE_BROADCASTING_2.
API (2022-04-01)
add counter of neteq accelerate ratio and preemptive expand ratio
API(2022-03-28)
Delete:
- ILocalUsr::LocalAudioDetailedStats::uplink_process_time_ms
Modified:
- IAudioPcmDataSender::sendAudioPcmData(...) add a parameter with type of "const AudioFrameHandleInfo*"
internal/packet_i.h
Add:
- SAudioFrame::handle_info_;
- SAudioPacket::handle_timing_
- PacketOptions::handle_info
API (2022-04-08)
Add: Add loopback recording parameters
- int setLoopbackDeviceParameter(const LoopbackRecordingOption &option)
API (2022-03-24)
Modify: add deviceName param for class IRecordingDeviceSource
- int initRecording(const char* deviceName = NULL)
- int startRecording()
API (2022-04-08)
Modified:
- enum TCcMode
- struct SenderOptions
API (2022-03-27)
Add:
- int setVideoSubscriptionOptions(user_id_t userId, const VideoSubscriptionOptions& options)
API (2022-03-24)
Update ScreenCaptureProfilingStatistics
Add:
bool capture_mouse_cursor
uint64_t per_capture_cpu_cycles
API (2022-03-11)
Modified:
- Modify TConnectionInfo to include int proxyType, and connectionIp
API (2022-03-08)
Add: Add interfaces for audio capturing
Add: Add IScreenCapturer2 for iOS and Android
API (2022-03-04)
Modify: add deviceName param for class IRecordingDeviceSource
- int startRecording(const char* deviceName = NULL)
API (2022-03-03)
Modify:
- virtual void onEvent(const char* provider, const char* extension, const char* key, const char* json_value) {}
- virtual void onExtensionStopped(const char* provider, const char* extension) {}
- virtual void onExtensionStarted(const char* provider, const char* extension) {}
- virtual void onExtensionError(const char* provider, const char* extension, int error, const char* message) {}
API (2022-03-03)
Modify: use registerProviderEntry on Windows
API (2022-03-26)
**Add:
- onVideoSizeChanged for ILocalUserObserver
API (2022-03-27)
Add:
- int setVideoSubscriptionOptions(user_id_t userId, const VideoSubscriptionOptions& options)
API (2022-03-05)
Add:
- QUALITY_ADAPT_INDICATION quality_adapt_indication
API (2022-03-04)
Add:
- Add superResolutionType in RemoteVideoTrackStats
API (2022-02-11)
Deleted:
- remove VideoSubscriptionOptions from ILocalUser
Add:
- add REMOTE_VIDEO_IMAGE_TRACK to VideoTrackType
API (2022-02-10)
agora_service_i.h
Modified:
- agora::rtc::uid_t getUidByUserAccount(const std::string& app_id, const std::string& user_account) const
API (2022-02-15)
Deprecate kTexture in VideoFrameData::Type Add:
- Add kTextureOES and kTexture2D in VideoFrameData::Type.
API (2021-11-07)
Add:
- QUALITY_ADAPT_INDICATION quality_adapt_indication
API (2021-09-23)
add HKMC and US Area Code
config_engine_i.h
Add: add HKMC and US Area Code
API (2022-02-08)
Add new interfaces for screen capture extension source
API (2022-01-29)
Add support for encoded frame receiver
Add: Add two functions to register and unregister encoded frame receiver.
- int registerAudioEncodedFrameReceiver(IAudioEncodedFrameReceiver* packetReceiver)
- int unregisterAudioEncodedFrameReceiver(IAudioEncodedFrameReceiver* packetReceiver)
Add:
- class IAudioEncodedFrameReceiver
Add:
- bool audioRecvEncodedFrame in Struct RtcConnectionConfiguration
API (2022-01-24)
Add: Extension video filter support rotation apply
bool getRotationApplied()
API (2022-01-17)
Add:
- IAudioTrack::AudioFilterPosition::PcmSource
API (2022-01-17)
Add:
- int int enableSpatialAudio(bool enabled)
- int setRemoteUserSpatialAudioParams(user_id_t uid, const agora::SpatialAudioParams& params)
API (2022-04-01)
Deleted:
- ILocalUser.pullMixedAudioPcmData()
Deleted:
- AudioSubscriptionOptions
- RtcConnectionConfiguration.audioSubscriptionOptions
Modify:
- remove
PostAudioRecordingDevice
API (2021-01-14)
Add:
- RemoteAudioTrackStats::target_level
API (2021-12-16)
add counter and config for super resolution
config_engine_i.h
Add:
- CONFIGURABLE_KEY_VIDEO_ENABLE_SUPER_RESOLUTION
- CONFIGURABLE_KEY_VIDEO_SUPER_RESOLUTION_SRTYPE
video_config_i.h
Add:
- add variable enable_sr
- add variable sr_type
extension_counter_event_def.h
Add:
- Add enum LOCAL_EXTENSION_REMOTE_COUNTER_SUPER_RESOLUTION_TYPE LOCAL_EXTENSION_REMOTE_COUNTER_SUPER_RESOLUTION_COST_TIME
API (2021-12-10)
Modify:
- virtual void onChangeRoleFailure(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole)
API (2021-12-11)
Add:
- int startRtmpStreamWithoutTranscoding(const char* url)
- int startRtmpStreamWithTranscoding(const char* url, const LiveTranscoding& transcoding)
- int updateRtmpTranscoding(const LiveTranscoding& transcoding)
- int stopRtmpStream(const char* url)
- void onRtmpStreamingEvent(const char* url, RTMP_STREAMING_EVENT eventCode)
API (2021-12-07)
Modify:
- initialize
int regulated_frame_rate
- initialize
int regulated_width
- initialize
int regulated_height
API (2021-11-30)
Modify:
- Use dummy global var instead of dllmain on windows
API (2021-11-30)
Modified:
API (2021-11-24)
Modify:
- Replace tab with spaces. Add:
- int int enableSpatialAudio(bool enabled)
- int setRemoteUserSpatialAudioParams(const agora::SpatialAudioParams& params)
API (2022-01-10)
Add: Add uint32_t audio_volume for LocalAudioTrackStats struct
**Modify: volume range **
- virtual int adjustUserPlaybackSignalVolume(unsigned int uid, int volume) = 0;
API (2022-01-08)
Modify: -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)
API (2021-12-28)
Add:
- IAudioTrack::AudioFilterPosition::RemoteUserPlayback
API (2021-12-20)
IAgoraService.h Add: Modify AgoraServiceConfiguration for external egl context
- bool useExternalEglContext
API (2022-01-19)
Add:
- IAudioTrack::AudioFilterPosition::PcmSource
- IAudioTrack::AudioFilterPosition::PcmSourceSending
- IAudioTrack::AudioFilterPosition::PcmSourcePlayback
API (2021-12-20)
Add parameter key for trace
config_engine_i.h
Add: Add parameter key
- INTERNAL_KEY_RTC_START_TRACE
- INTERNAL_KEY_RTC_STOP_TRACE
API (2021-12-17)
Modify:
- remove
PostAudioRecordingDevice
API (2021-12-10)
Modify:
- virtual void onChangeRoleFailure(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole)
API (2021-12-07)
Add method in IRtmpLocalUser class.
Modify:
- initialize
int regulated_frame_rate
- initialize
int regulated_width
- initialize
int regulated_height
API (2021-12-01)
Add support for encoded frame receiver
Add: Add two functions to register and unregister encoded frame receiver.
- int registerAudioEncodedFrameReceiver(IAudioEncodedFrameReceiver* packetReceiver)
- int unregisterAudioEncodedFrameReceiver(IAudioEncodedFrameReceiver* packetReceiver)
Add:
- class IAudioEncodedFrameReceiver
Add:
- bool audioRecvEncodedFrame in Struct RtcConnectionConfiguration
API (2021-11-07)
Add:
- QUALITY_ADAPT_INDICATION quality_adapt_indication
API (2021-11-30)
Modify:
- Use dummy global var instead of dllmain on windows
API (2021-11-30)
Modified:
API (2021-11-24)
Modify:
API (2021-11-23)
Add:
- createDirectCustomAudioTrack(audioSource)
API (2021-11-23)
Add: Add filed in LocalVideoTrackStats
int capture_frame_rate
int regulated_capture_frame_rate
int capture_width
int capture_height
int regulated_capture_width
int regulated_capture_height
API (2021-11-6)
Add: Add fields in LocalAudioTrackStats
uint64_t total_active_time
- ‘uint64_t publish_duration’
Add: Add fields in ILocalUserObserver
onFirstRemoteAudioFrame
- ‘onFirstRemoteAudioDecoded’
onFirstRemoteVideoFrame
- ‘onFirstRemoteVideoDecoded’
Add: Add fields in LocalVideoTrackStats
uint64_t totalActiveTime
- ‘uint64_t publishDuration’
API (2021-11-2)
Modify:
- Enable screen capture in Linux
API (2021-11-03)
agora_service_i.h
Deleted:
- static const char* getSourceVersion();
- virtual int panic(void* exception) = 0;
- virtual agora::rtc::AgoraGenericBridge* getBridge() = 0;
- virtual BaseContext& getBaseContext() = 0;
- virtual void setBaseContext(BaseContext* context) = 0;
- virtual rtc::ConfigService* getConfigService() = 0;
- virtual rtc::ConfigSourceAP* getConfigSourceAP() = 0;
- virtual const std::string& getAppId() const = 0;
- virtual agora_refptr<rtc::PredefineIpList> getPredefineIpList() const = 0;
- virtual rtc::XdumpHandler* getXdumpHandler() const = 0;
- virtual const std::string& getServiceId() const = 0;
Add:
- IAgoraServiceEx* GetService()
API (2021-10-18)
Add:
- enum RTMP_CONNECTION_ERROR::STATE_RECONNECTED
- class IRtmpConnectionObserver:virtual void onReconnected(const RtmpConnectionInfo& connectionInfo) = 0;
API(2021-12-09)
Modify:
- provider_name -> provider
- ext_name -> extension
- event_key -> key
- event_json_str -> value
API (2021-12-01)
Add method in IRtmpLocalUser class.
Add:
- int publishMediaPlayerAudio(agora_refptr<rtc::ILocalAudioTrack> audioTrack, int32_t playerId).
- int unpublishMediaPlayerAudio(agora_refptr<rtc::ILocalAudioTrack> audioTrack, int32_t playerId).
API (2021-11-07)
Add:
- QUALITY_ADAPT_INDICATION quality_adapt_indication
API (2022-03-08)
Add:
- RemoteAudioTrackStats.qoe_quality
Add:
- LocalVideoTrackStats.txPacketLossRate
API (2021-09-30)
Add:
API (2022-03-09)
Add:
- class ILocalAudioTrackObserver
- ILocalAudioTrack::registerTrackObserver
- ILocalAudioTrack::unregisterTrackObserver
Deleted:
- ILocalUserObserver::onLocalAudioTrackStateChanged
API (2021-12-12)
Modify:
API (2022-04-20)
Add:
- ILocalUser::setEarMonitoringAudioFrameParameters
API (2021-11-27)
remove enum TCcMode
Deleted:
API (2021-10-18)
Add:
- enum RTMP_CONNECTION_ERROR::STATE_RECONNECTED
- class IRtmpConnectionObserver:virtual void onReconnected(const RtmpConnectionInfo& connectionInfo) = 0;
API (2021-10-12)
config_engine_i.h
Add:
- CONFIGURABLE_KEY_RTC_ENABLE_SYNC_RENDER_NTP
API (2021-09-24)
add Korea Area Code
config_engine_i.h
Add: add Korea Area Code
API (2021-10-14)
- add definition CONFIGURABLE_KEY_VIDEO_VP8_ENC_SWITCH
- add definition CONFIGURABLE_KEY_VIDEO_SVC_TEMPORAL_LAYERS
- add definition CONFIGURABLE_KEY_VIDEO_VP8_ENC_SWITCH
- add definition CONFIGURABLE_KEY_VIDEO_SVC_TEMPORAL_LAYERS
channel_capability_i.h
Add:
- add enum Vp8Feature
- add enum Svc
- add enum CapabilityType:kVp8Feature
video_track_i.h
Add:
- add variable video_codec_capbits
- add variable curr_temporal_layer
packet_i.h
Add:
- add variable max_temporal_layers
- add variable codec_type
video_config_i.h
Add:
- add variable svc_num_temporal_layers
- add variable vp8_enc_switch
API (2021-10-09)
Modify param for RtmpStreamingVideoConfiguration
Modify:
- modify gop_ms to gopInMs in RtmpStreamingVideoConfiguration
API (2021-10-09)
Add param for RtmpStreamingVideoConfiguration
Add:
- add push_video_frame_cnt、pop_video_frame_cnt in onTransferStatistics
Add:
- add gop_ms in RtmpStreamingVideoConfiguration
API (2021-09-23)
Add:
- AudioSubscriptionOptions& operator=(const AudioSubscriptionOptions& rhs)
API (2021-09-22)
Modified:
API (2021-09-17)
Modified:
- Update interface for C++98 standard
API (2021-09-08)
Add:
- add ProviderInterfaceUsed argument for providers to declare provider version.
Add:
- Define extension version and concrete interface versions.
Add:
- add PaddedRawPixelBuffer data structure for padded memory buffer.
API (2021-09-08)
Add:
- add a createCustomAudioTrack() for IAgoraService.
API (2021-09-07)
Add:
- Add thread priority option
API (2021-09-03)
Add:
- Add pauseAllChannelMediaRelay
- Add resumeAllChannelMediaRelay
API (2021-08-30)
Modified:
- Use extension provider entry for android extensions too.
extension_counter_event_def.h
Add:
- Add enum LocalExtensionCounter and struct VideoBeautyParam.
API (2021-08-12)
Gets the NTP time.
Add:
API (2021-09-02)
Add:
- void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
API (2021-09-15)
Add:
- int setRenderMode(void* view, media::base::RENDER_MODE_TYPE renderMode)
- int setMirror(void* view, bool mirror)
- int addView(void* view, const Rectangle& cropArea)
- int removeView(void* view)
API (2021-08-30)
agora_service_i.h
Add:
- int AgoraService::startTrace(uint32_t count, uint64_t mask)
- int AgoraService::stopTrace(const char* file_path)
API (2021-08-25)
Add:
- onAudioDeviceVolumeChanged(int deviceType, int volume, bool muted)
API (2021-08-27)
Update class IVideoSinkBase
Add:
- bool applyMirror()
- bool applyRotation()
API (2021-08-16)
Modified:
- Add callback function onUserStateChanged() and enum REMOTE_USER_STATE.
API (2021-08-12)
Add:
- onActiveSpeaker(user_id_t userId).
API (2021-09-11)
audio_track_i.h
Add:
- Add IRemoteAudioTrackEx GetAudioLevel
API (2021-08-13)
Add:
- void setScreenOrientation(VIDEO_ORIENTATION orientation)
API (2021-08-11)
Modified: Deprecate setEncryptionMode and setEncryptionSecret, correct description of enableEncryption
- setEncryptionMode
- setEncryptionSecret
- enableEncryption
Add:
- void onContentInspectResult(media::CONTENT_INSPECT_RESULT result) Add:
- void onSnapshotTaken(const char* channel, uid_t uid, const char* filePath, int width, int height, int errCode)
API (2021-08-06)
NGIVideoFrame.h
Add:
- MatrixID and TransferID in agora::rtc::ColorSpace
Modified:
- EnableExtension: fix comment and use track_id instead of id
Add:
- setProperty: set provider-wide (key, value) property
API (2021-07-29)
Add:
- DisableExtension Modified:
- EnableExtension: use id to identify track and mark if the extension is open automatically on track
API (2021-08-16)
Modified:
- onFrame(user_id_t uid, rtc::conn_id_t connectionId, const media::base::VideoFrame* frame) to onFrame(const char* channelId, user_id_t remoteUid, const media::base::VideoFrame* frame)
API (2021-08-05)
Add:
- onFirstRemoteVideoFrameRendered()
API (2021-09-10)
Add:
- IAudioFilterBase::getPreferredChannelNumbers()
- IAudioFilter::getPreferredChannelNumbers()
API (2021-07-29)
Modified:
- Register entry function while loading windows extension
API (2021-10-19)
Add:
- struct AudioVolumeInformation
Modified:
- onAudioVolumeIndication(const AudioVolumeInfo* , ...) to onAudioVolumeIndication(const AudioVolumeInformation* , ...)
API (2021-07-29)
Add:
- const char* getExtensionId(const char* provider_name, const char* extension_name)
- int loadExtensionProvider(const char* extension_lib_path)
API (2021-07-27)
Add:
- enableExtension(const char* provider_name, const char* extension_name, bool enable)
API (2021-07-22)
Add:
- void setAudienceLatencyLevel(AUDIENCE_LATENCY_LEVEL_TYPE level)
- AUDIENCE_LATENCY_LEVEL_TYPE getAudienceLatencyLevel()
API (2021-07-15)
Add:
- createCustomAudioTrack(agora_refptr<rtc::IAudioPcmDataSender> audioSource, bool enableAec)
Modified:
API (2021-07-22)
Add: hasVideoFilter(const char* id, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER) = 0;
API (2021-06-23)
Add:
API (2021-06-21)
Add:
- ColorSpace in VideoFrameInfo
API (2021-06-25)
Add:
- enableAudioFilter(const char* id, bool enable)
- setFilterProperty(const char* id, const char* key, const char* jsonValue)
API (2021-06-09)
Delete:
- VIDEO_ORIENTATION getDeviceOrientation() = 0
API (2021-07-19)
use string uid in ILocalUserObserver callback
Modified:
- Change onAudioSubscribeStateChanged(const char* channel, uid_t uid , ...) to onAudioSubscribeStateChanged(const char* channel, user_id_t userId , ...)
- Change onVideoSubscribeStateChanged(const char* channel, uid_t uid , ...) to onVideoSubscribeStateChanged(const char* channel, user_id_t userId , ...)
API (2021-06-08)
Add:
- Add playout_audio_frames field for ILocalAudioTrack::LocalAudioTrackStats
API (2021-06-10)
Add:
- Add LocalAudioTrackStats.hw_ear_monitor
API (2021-06-06)
Modified:
- Exchange kGlTextureOes & kGlTexture2D in TextureType
API (2021-05-25)
- add function to update minor stream config
Add:
- virtual int updateSimulcastStreamConfig(const SimulcastStreamConfig& config) = 0;
API (2020-05-24)
Support set audio scenario dynamically.
Add:
- int ILocalUser::setAudioScenario(AUDIO_SCENARIO_TYPE scenario)
API (2021-06-02)
config_engine_i.h
Delete:
- INTERNAL_KEY_RTC_ENABLE_CRYPTO_ACCESS
API (2020-05-10)
Default value change for RtmpStreamingVideoConfiguration
Add:
- IRtmpConnectionObserver::onTransferStatistics
Modified:
- RtmpStreamingVideoConfiguration
API (2021-05-06)
- Add switches for c++11 features.
- Change displayId type from view_t to uint32_t.
NGIAgoraScreenCapture.h
Modified:
- int initWithDisplayId(uint32_t displayId, const Rectangle& regionRect)
API (2020-05-05)
Support R/W recording audio frame observer.
Modified:
- setPlaybackAudioFrameParameters()
- setRecordingAudioFrameParameters()
- setMixedAudioFrameParameters()
API (2021-05-06)
delete onRemoteVideoStreamInfoUpdated.
Modified:
- delete onRemoteVideoStreamInfoUpdated
API (2020-05-31)
Add:
- bool isCameraFaceDetectSupported()
- int enableFaceDetection(bool enabled)
API (2020-04-30)
Add:
- bool isCameraAutoExposureFaceModeSupported()
- int setCameraAutoExposureFaceModeEnabled(bool enabled)
API (2020-05-20)
Add:
- int getPreferredSampleRate()
API (2021-04-28)
Add:
- RemoteAudioTrackStats::mos_value
API (2021-04-28)
video_track_i.h
Add:
- enum class InternalVideoSourceType
- IVideoTrackObserver::onEncoderConfigurationChanged()
- ILocalVideoTrackEx::getInternalVideoSourceType()
- RemoteVideoTrackStatsEx::isHardwareCodec
vide_node_i.h
Add:
- enum InternalRendererType
API (2021-08-10)
Modified:
- registerAudioFrameObserver(agora::media::IAudioFrameObserver *) to registerAudioFrameObserver(agora::media::IAudioFrameObserverBase *)
- unregisterAudioFrameObserver(agora::media::IAudioFrameObserver *) to registerAudioFrameObserver(agora::media::IAudioFrameObserverBase *)
API (2021-04-27)
Ensure get correct filter composite from specified position.
Modified: add position parameter
- Changes getAudioFilter(const char *name) to getAudioFilter(const char *name, AudioFilterPosition position)
API (2020-04-22)
delete some includeing of unnecessary header files,modify it to forward declaration
Delete:
- #include "AgoraRefPtr.h"
- #include "NGIAgoraMediaNodeFactory.h"
- #include "IAgoraService.h"
Add:
- class IVideoEncodedImageReceiver;
- class IMediaPacketReceiver;
- class IVideoSinkBase;
Delete:
Delete:
- #include "AgoraRefPtr.h"
- #include "NGIAgoraLocalUser.h"
Add:
Delete:
- #include "AgoraRefPtr.h"
- #include "IAgoraService.h"
- #include "NGIAgoraMediaNode.h"
- #include "IAgoraMediaPlayerSource.h"
- #include "NGIAgoraCameraCapturer.h"
- #include "NGIAgoraRemoteAudioMixerSource.h"
- #include "NGIAgoraScreenCapturer.h"
- #include "NGIAgoraVideoMixerSource.h"
Add:
- class IAudioPcmDataSender;
- class IAudioEncodedFrameSender;
- class IRemoteAudioMixerSource;
- class ICameraCapturer;
- class IScreenCapturer;
- class IVideoMixerSource;
- class IVideoFrameTransceiver;
- class IVideoFrameSender;
- class IVideoRenderer;
- class IVideoFilter;
- class IAudioFilter;
- class IVideoSinkBase;
- class IVideoEncodedImageSender;
- class IMediaPlayerSource;
- class IMediaPacketSender;
- class IMediaStreamingSource;
Delete:
- #include "IAgoraService.h"
- #include "NGIAgoraAudioTrack.h"
- #include "NGIAgoraVideoTrack.h"
Add:
- class IMediaControlPacketSender;
- class IMediaControlPacketReceiver;
- struct AudioEncoderConfiguration;
- struct VideoEncoderConfiguration;
- class ILocalAudioTrack;
- struct RemoteAudioTrackStats;
- class IRemoteAudioTrack;
- struct LocalVideoTrackStats;
- struct RemoteVideoTrackStats;
- class IMediaPacketReceiver;
- class IVideoSinkBase;
Delete:
- #include "AgoraRefPtr.h"
- #include "IAgoraService.h"
- #include "NGIAgoraMediaNodeFactory.h"
Add:
- class IAudioFilter;
- class IAudioSinkBase;
- class IMediaPacketReceiver;
Delete:
- #include "NGIAgoraExtensionProvider.h"
- #include "NGIAgoraExtensionProvider.h"
Add:
- class IMediaExtensionObserver;
- class IExtensionProvider;
Delete: #include "AgoraRefPtr.h" #include "NGIAgoraMediaNodeFactory.h" #include "IAgoraService.h" Add: class IVideoEncodedImageReceiver; class IMediaPacketReceiver; class IVideoSinkBase;
Delete:
Delete:
- #include "AgoraRefPtr.h"
- #include "NGIAgoraLocalUser.h"
Add:
Delete:
- #include "AgoraRefPtr.h"
- #include "IAgoraService.h"
- #include "NGIAgoraMediaNode.h"
- #include "IAgoraMediaPlayerSource.h"
- #include "NGIAgoraCameraCapturer.h"
- #include "NGIAgoraRemoteAudioMixerSource.h"
- #include "NGIAgoraScreenCapturer.h"
- #include "NGIAgoraVideoMixerSource.h"
Add:
- class IAudioPcmDataSender;
- class IAudioEncodedFrameSender;
- class IRemoteAudioMixerSource;
- class ICameraCapturer;
- class IScreenCapturer;
- class IVideoMixerSource;
- class IVideoFrameTransceiver;
- class IVideoFrameSender;
- class IVideoRenderer;
- class IVideoFilter;
- class IAudioFilter;
- class IVideoSinkBase;
- class IVideoEncodedImageSender;
- class IMediaPlayerSource;
- class IMediaPacketSender;
- class IMediaStreamingSource;
Delete:
- #include "IAgoraService.h"
- #include "NGIAgoraAudioTrack.h"
- #include "NGIAgoraVideoTrack.h"
Add:
- class IMediaControlPacketSender;
- class IMediaControlPacketReceiver;
- struct AudioEncoderConfiguration;
- struct VideoEncoderConfiguration;
- class ILocalAudioTrack;
- struct RemoteAudioTrackStats;
- class IRemoteAudioTrack;
- struct LocalVideoTrackStats;
- struct RemoteVideoTrackStats;
- class IMediaPacketReceiver;
- class IVideoSinkBase;
Delete:
- #include "AgoraRefPtr.h"
- #include "IAgoraService.h"
- #include "NGIAgoraMediaNodeFactory.h"
Add:
- class IAudioFilter;
- class IAudioSinkBase;
- class IMediaPacketReceiver;
Delete:
- #include "NGIAgoraExtensionProvider.h"
- #include "NGIAgoraExtensionProvider.h"
Add:
- class IMediaExtensionObserver;
- class IExtensionProvider;
API (2020-07-13)
Modified:
- adjustUserPlaybackSignalVolume(uid_t uid, int volume) to adjustUserPlaybackSignalVolume(user_id_t userId, int volume)
- getUserPlaybackSignalVolume(uid_t uid, int* volume) to getUserPlaybackSignalVolume(user_id_t userId, int* volume)
API (2020-04-25)
Add:
- int enableSoundPositionIndication(bool enabled)
- int setRemoteVoicePosition(uid_t uid, double pan, double gain)
Add:
- int setRemoteVoicePosition(float pan, float gain)
API (2020-04-06)
Add:
- Add new interface IVideoFrameObserver2
- registerVideoEncodedFrameObserver()
- unregisterVideoEncodedFrameObserver()
- registerVideoFrameObserver()
- unregisterVideoFrameObserver()
Add:
- Add new interface IVideoFrameObserver2
- registerVideoEncodedFrameObserver()
- unregisterVideoEncodedFrameObserver()
- registerVideoFrameObserver()
- unregisterVideoFrameObserver()
API (2021-03-31)
Add media streaming source module
Add:
- IAgoraService::createMediaStreamingVideoTrack
- IAgoraService::createMediaStreamingAudioTrack
Add:
- IMediaNodeFactory::createMediaStreamingSource
API (2020-04-06)
Add:
- ICameraCapturer::isCameraTorchSupported()
- ICameraCapturer::setCameraTorchOn(bool isOn)
- ICameraCapturer::isCameraExposurePositionSupported()
- ICameraCapturer::setCameraExposurePosition(float positionXinView, float positionYinView)
- ICameraCaptureObserver::onCameraExposureAreaChanged(int x, int y, int width, int height)
API (2020-03-26)
Refine IVideoFrame interfaces
NGIVideoFrame.h
Modified:
- Refine interfaces to support mempixelbuffer, texture and cvpixelbuffer
API (2020-03-26)
Move 'areaCode' field from 'AgoraServiceConfigurationEx' to 'AgoraServiceConfiguration'
Modified:
- IAgoraService::AgoraServiceConfiguration
API (2021-04-12)
Add parameter key and modify broadcast_packet_t.
config_engine_i.h
Add: Add parameter key
- INTERNAL_KEY_RTC_JOIN_VOS_TIMEOUT
config_engine_i.h
Modified: Modify broadcast_packet_t.
- add [bool need_reliable; / bool real_quit;] to broadcast_packet_t.
API (2021-03-23)
IAgoraService.h rtc_engine_i.h IAgoraRtcEngine.h
API (2021-02-23)
AgoraServiceConfiguration
Add: channelProfile
API (2021-01-18)
IAgoraService.h NGIAgoraExtensionProvider.h NGIAgoraMediaNode.h NGIAgoraRtcConnection.h
API (2021-02-05)
Modify: Modify Struct RemoteAudioTrackStats:
- Initial audio_level in constructor
API (2021-03-25)
Modified:
- enableEarMonitor(bool enable, bool includeAudioFilter) to enableEarMonitor(bool enable, int includeAudioFilters)
Add:
- add AudioFilterPosition.RecordingLocalPlayback
- add AudioFilterPosition.PostAudioRecordingDevice
- add AudioFilterPosition.PostAudioProcessing
API (2020-03-25)
Add "Safe Deleter" in Register*Observer function argument list
Modified: IAgoraMediaRelayService.h NGIAgoraAudioDeviceManager.h NGIAgoraLocalUser.h NGIAgoraRtcConnection.h NGIAgoraRtmpConnection.h NGIAgoraRtmpLocalUser.h
API (2021-03-25)
Add:
- RemoteAudioTrackStats::delay_estimate_ms
Add:
- ILocalUserObserver::onStreamMessage()
Modified:
- IRtcConnection::createDataStream()
- IRtcConnectionObserver::onStreamMessage()
API (2020-03-23)
Loopback recording.
Modified:
- Add a parameter for IAgoraService::createRecordingDeviceAudioTrack()
API (2020-03-19)
modify to adapt c++ 11
API (2020-03-17)
Add audio and video downlink and uplink process time stats field
Add:
- LocalAudioDetailedStats::uplink_process_time_ms
Add:
- RemoteAudioTrackStats::downlink_process_time_ms
Add:
- LocalVideoTrackStats::uplink_cost_time_ms
- RemoteVideoTrackStats::downlink_process_time_ms
- RemoteVideoTrackStats::frame_render_delay_ms;
API (2021-03-16)
Modified:
API (2020-03-10)
Add remote video A/V sync offset
Modified: Add avSyncTimeMs
field for struct RemoteVideoStats
API (2021-03-18)
Modify RtcConnectionConfigurationEx.
rtc_connection_i.h
Modified:
- Changes RtcConnectionConfigurationEx::RtcConnectionConfigurationEx implement
video_track_i.h
Modified:
- Changes AttachInfo::recv_type to AttachInfo::recv_media_packet
Modified:
- Changes RtcConnectionConfiguration::recvType to RtcConnectionConfiguration::audio/videoRecvMediaPacket
Deleted:
API (2021-02-22)
Support for mixed remote audio track
Add:
- class IRemoteAudioMixerSource
API (2021-01-12)
Change definition of bytes_per_sample without channel
Modified:
- change param type of sendAudioPcmData::bytes_per_sample from size_t to enum BYTES_PER_SAMPLE
Modified:
- change param type of AudioSubscriptionOptions::bytes_per_sample from size_t to enum BYTES_PER_SAMPLE
API (2020-10-23)
Add/Remove/Modify methods to support extension management, which includes adding/removing extension, enabling/disabling extension, setting extension property.
rtc_engine_i.h
Add:
- struct Extension
- RtcEngineContextEx::extensions
- RtcEngineContextEx::numExtension
Add:
- IRtcEngine::enableExtension
- IRtcEngine::setExtensionProperty
Remove:
- IRtcEngine::enableLocalVideoFilter
- IRtcEngine::setLocalVideoFilterProperty
- IRtcEngine::getLocalVideoFilterProperty
- IRtcEngine::enableRemoteVideoFilter
- IRtcEngine::setRemoteVideoFilterProperty
- IRtcEngine::getRemoteVideoFilterProperty
Add:
- IAgoraService::createCustomAudioTrack
Add:
- IMediaNodeFactory::createRemoteAudioMixerSource
API (2021-03-24)
Add:
- RemoteAudioTrackStats::frozen_count_80_ms
- RemoteAudioTrackStats::frozen_time_80_ms
- RemoteAudioTrackStats::frozen_count_200_ms
- RemoteAudioTrackStats::frozen_time_200_ms
API (2021-02-08)
NGIAgoraMediaNodeFactory.h
Fix "warning: unused parameter"
API (2021-02-05)
Add two interface file NGIAgoraRtmpConnection.h and NGIAgoraRtmpLocalUser.h.
Add:
API (2021-02-18)
Add key INTERNAL_KEY_RTC_DESENSITISE_IP.
config_engine_i.h
Add:
- INTERNAL_KEY_RTC_DESENSITISE_IP
API (2021-02-05)
Modify: Modify Struct RemoteAudioTrackStats:
API (2020-11-27)
Modified:
API (2020-12-2)
Deleted:
- Deleted IRemoteAudioMixerSource::startMixing()
- Deleted IRemoteAudioMixerSource::stopMixing()
API (2021-02-02)
Modify INetworkObserver.
Modified: Add more callback to INetworkObserver
- Changes add onDownlinkNetworkInfoUpdated
API (2021-01-03)
Modify: Modify Struct AgoraServiceConfiguration:
- Remove const char* logDir;
- Add commons::LogConfig logConfig;
Deleted: Short description
API (2021-02-05)
Add:
- getRawMessageData()
- getRawMessageLength()
- setMessageType()
- setRawMessage()
API (2021-01-05)
Add:
- onAudioSubscribeStateChanged()
- onVideoSubscribeStateChanged()
- onAudioPublishStateChanged()
- onVideoPublishStateChanged()
API (2021-01-19)
Remove KEY_RTC_CONNECTION_LOST_PERIOD
config_engine_i.h
Deleted:
- Deleted macro KEY_RTC_CONNECTION_LOST_PERIOD
Modified:
- Changes IMediaControlPacketReceiver::onMediaControlPacketReceived(const uint8_t *packet, size_t length) to IMediaControlPacketReceiver::onMediaControlPacketReceived(uid_t uid, const uint8_t *packet, size_t length)
API (2021-01-04)
NGIAgoraCameraCampturer.h
Added:
- ICameraCaptureObserver::onCameraStateChanged
- ICameraCapturer::switchCamera
API (2020-12-24)
adjustUserPlaybackSignalVolume
Add:
- adjustUserPlaybackSignalVolume(uid_t uid, int volume)
- getUserPlaybackSignalVolume(uid_t uid, int* volume)
API (2020-12-17)
video_node_i.h
Modified:
- Modify TConnectionInfo to include int uid
API (2020-12-09)
Rename REMOTE_VIDEO_STREAM_TYPE.
rtc_connection_i.h/NGIAgoraLocalUser.h/NGIAgoraVideoTrack.h
Modified:
- Changes Rename all REMOTE_VIDEO_STREAM_TYPE/REMOTE_VIDEO_STREAM_HIGH to VIDEO_STREAM_TYPE/VIDEO_STREAM_HIGH.
video_node_i.h
Modified: Modify VideoEncodedImageData.
- Changes Add VIDEO_STREAM_TYPE streamType to VideoEncodedImageData
API (2020-11-30)
Refine comments.
- IMediaRelayService::unregisterEventHandler
video_node_i.h
Add:
- IVideoFilterEx::attachStatsSpace
API (2020-11-11)
Add:
- MAINTAIN_RESOLUTION into DEGRADATION_PREFERENCE
API (2020-11-11)
Add:
- MAINTAIN_RESOLUTION into DEGRADATION_PREFERENCE
API (2020-11-09)
Update API parameter
Modified: Remove elapsed
- Changes
void onVideoTrackPublishSuccess(agora_refptr<ILocalVideoTrack> videoTrack, int elapsed)
to void onVideoTrackPublishSuccess(agora_refptr<ILocalVideoTrack> videoTrack)
API (2020-11-6)
Refine a inclusion usage of TARGET_OS_IPHONE
API (2023-06-21)
Modified:
- fix iOS platform macro definition
API (2020-10-27)
Add callback for encryption error
Add:
- IRtcConnectionObserver::onEncryptionError
API (2020-09-16)
fix ios and mac marco
API (2020-10-12)
API (2020-09-16)
Support SM4 Encryption.
Add:
- IRtcConnection::enableEncryption
API (2020-09-17)
Add member fields to RemoteAudioTrackStats
Add:
- RemoteAudioTrackStats::expanded_speech_samples
- RemoteAudioTrackStats::expanded_noise_samples
- RemoteAudioTrackStats::timestamps_since_last_report
- RemoteAudioTrackStats::min_sequence_number
- RemoteAudioTrackStats::max_sequence_number
API (2020-08-28)
Modify VideoEncodedImageData.
video_node_i.h
Modify: Modify VideoEncodedImageData.
- Remove packetizationMode.
API (2020-09-11)
Add v2.7.1 docs for high-level apis. For details, see jira MS-17241.
Merge docs for low-level apis from v2.7.0.2 to v2.7.1.
Modified:
API (2020-09-24)
Modified:
- Changes ILocalUser::sendIntraRequest(uid_t uid) to ILocalUser::sendIntraRequest(user_id_t userId)
API (2020-09-07)
API (2020-09-15) Add video engine flags and video track method.
packet_i.h
Add:
- kVideoEngineFlagScalableDelta
- kVideoEngineFlagMajorStreamOnly
video_track_i.h
Add: Add method to ILocalVideoTrackEx
API (2020-09-09)
Modify enum VIDEO_FRAME_TYPE
packet_i.h
Modified:
- Changes remove DROPPABLE_FRAME from VIDEO_FRAME_TYPE
API (2020-08-30)
Modified: Add frameLossRate
field for struct RemoteVideoTrackStats
API (2020-08-21)
Deleted:
- Delete INGAudioDeviceManager::startMicrophoneTest and INGAudioDeviceManager::stopMicrophoneTest
- Delete IAudioDeviceManagerObserver::onVolumeIndication
API (2020-09-02)
Modify enum VIDEO_FRAME_TYPE
packet_i.h
Modified:
- Changes remove DROPPABLE_FRAME from VIDEO_FRAME_TYPE
API (2020-08-21)
agora_service_i.h
Modified: Remove dup 'appId'.
Modified: Merge changes from arsenal.
Modified: Modify macro definition
NGIAgoraAudioDeviceManager.h NGIAgoraCameraCapturer.h
Modified: Refine macro defition and add comments for #endif.
Modified: Fix typo.
Modified: Fix return value of setProperty() and getProperty().
API (2020-09-04)
Add new callback to IRtcConnectionObserver.
Modified:
- Changes add onNetworkTypeChanged to IRtcConnectionObserver
API (2020-08-13)
Modified:
- Changes onSendMessageState(int64_t messageId, CHANNEL_MESSAGE_STATE state) to onSendMessageState(int64_t messageId, CHANNEL_MESSAGE_STATE state)
API (2020-08-21)
Modified:
- Change addVideoFilter(filter) to addVideoFilter(filter, position)
API (2022-12-09)
Modified:
- Fix return value of startRtmpStreamWithTranscoding/startRtmpStreamWithoutTranscoding
API (2020-08-07)
Add:
IVideoFrameTransceiver
class
- createVideoFrameTransceiver function for IMediaNodeFactory
Add:
- createTranscodedVideoTrack function for IAgoraService
API (2020-08-04)
API change to support string UID.
Modified: Modify AgoraServiceConfiguration to include string uid switch
- bool useStringUid Add: Add Low level api to IAgoraService to support register user account
- IAgoraService::registerLocalUserAccount
API (2020-08-11)
Fix return error
NGIAgoraMediaNodeFactory.h
Modified:
- Modify setProperty and getProperty return type
- Fix spell error
API (2020-07-31)
Add mean_waiting_time
field for RemoteAudioTrackStats
API (2020-07-29)
Add getPlayoutAudioParameters(AudioParameters* params) const
function for INGAudioDeviceManager Add getRecordAudioParameters(AudioParameters* params) const
function for INGAudioDeviceManager
API (2020-08-03)
IAgoraService.h Add:
- AgoraServiceConfiguration add logDir
API (2020-07-27)
Remove free_pcm_data_list_size from ILocalAudioTrack::LocalAudioTrackStats
API (2020-07-17)
Modify comment.
AgoraRefCountedObject.h IAgoraRtmpStreamingService.h IAgoraService.h NGIAgoraAudioDeviceManager.h NGIAgoraAudioTrack.h NGIAgoraCameraCapturer.h NGIAgoraExtensionControl.h NGIAgoraLocalUser.h NGIAgoraMediaNodeFactory.h NGIAgoraRtcConnection.h NGIAgoraScreenCapturer.h NGIAgoraVideoFrame.h NGIAgoraVideoMixerSource.h
Modify:
API (2020-07-16)
add onConnecting
Modified: add onConnecting to IRtcConnectionObserver
API (2020-07-13)
Add:
- add "uint32_t effect_type" member to ILocalAudioTrack::LocalAudioTrackStats
API (2020-07-03)
Modify comment.
Modify: Modify comment.
- Changes changes comment about pcmDataOnly.
Modify: Modify AudioSubscriptionOptions and RtcConnectionConfiguration.
- Changes remove pcmDataOnly from AudioSubscriptionOptions.
- Changes add enableAudioRecordingOrPlayout into RtcConnectionConfiguration.
API (2020-07-01)
Modify: Remove media engine type.
API (2020-06-27)
Make include path correct
API (2020-06-18)
Modify VideoEncodedImageData.
video_node_i.h
Modify: Modify VideoEncodedImageData.
- Remove packetizationMode.
API (2020-06-18)
Move Move IRecordingDeviceSource from NGIAgoraMediaNodeFactory.h to NGIAgoraAudioDeviceManager.h
API (2020-06-17)
agora_service_i.h
Deleted: Delete unused api
- Deleted createLocalAudioTrack(const rtc::AudioOptions& audioOptions)
API (2020-06-16)
Modify: Fix compile error
- Remove the incorrect type conversion code in class IChannelEventHandler
API (2020-06-15)
Add:
- Add createRecordingDeviceAudioTrack() for IAgoraService.
Add:
- Add createRecordingDeviceSource() for IMediaNodeFactory.
- Add interface IRecordingDeviceSource
API (2020-06-10)
Modify: Fix compile error
- unnamed class used in typedef name won't compile in C++20
API (2020-06-09)
Modify onMediaPacketReceived.
Modified: Modify the declaration of onMediaPacketReceived.
- Changes onMediaPacketReceived(const uint8_t *packet, size_t length) to onMediaPacketReceived(const uint8_t *packet, size_t length, const agora::media::base::PacketOptions& options)
API (2020-06-04)
Modify the callback onBandwidthEstimationUpdated
Modified: Modify the declaration of onBandwidthEstimationUpdated
- Changes "virtual void onBandwidthEstimationUpdated(int target_bitrate_bps)" to "virtual void onBandwidthEstimationUpdated(const NetworkInfo& info)"
API (2020-06-04)
Add SenderOptions and modify createCustomVideoTrack
Add: Add SenderOptions
Modified: Change the declaration of createCustomVideoTrack
- Changes "virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
agora_refptr<rtc::IVideoEncodedImageSender> videoSource, bool syncWithAudioTrack = false, TCcMode ccMode = CC_ENABLED)" To "virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
agora_refptr<rtc::IVideoEncodedImageSender> videoSource, SenderOptions& options)"
- Remove option syncWithAudioTrack from all related apis
API (2020-05-29)
Updated docs for the following header files:
API (2020-05-27)
Modify:
- Add a parameter for createMediaPlayerSource()
API (2020-05-26)
Modified:
- Init RemoteAudioTrackStats
API (2020-05-26)
Move createObservableVideoSink() from IMediaNodeFactory to IMediaNodeFactoryEx
Deleted:
- Delete createObservableVideoSink()
API (2020-05-20)
NGIAgoraMediaPlayerSource.h
Modified:
- Rename registerPlayerObserver()/unregisterPlayerObserver() to registerPlayerSourceObserver()/unregisterPlayerSourceObserver() in IMediaPlayerSource.
- Remove 'const' from the parameter of onPlayerSourceStateChanged(), onPositionChanged() and onPlayerEvent() in IMediaPlayerSourceObserver since unnecessary.
API (2020-05-20)
Modified:
- Change addRenderer(renderer) to addRenderer(renderer, position)
API (2020-05-19)
Add:
Modified:
- remove "bool internal" parameter form funciton addVideoFilter
API (2020-05-19)
Deleted:
- Delete ICameraCaptureObserver interface
- Delete ICameraCaptureObserver::registerCameraCaptureObserver
- Delete ICameraCaptureObserver::unregisterCameraCaptureObserver
- Delete ICameraCaptureObserver::getCaptureState
Modified:
- Annotation of ILocalUserObserver::onLocalVideoTrackStateChanged
API (2020-05-12)
Remove illegal header files included and add including header files.
Deleted: Delete the IAgoraRtcEngine.h included
- Deleted #include "IAgoraRtcEngine.h"
Deleted: Delete the IAgoraRtcEngine.h included
- Deleted #include "IAgoraRtcEngine.h"
internal/agora_service_i.h
Add: Add the IAgoraLog.h including
- #include "base/IAgoraLog.h"
API (2020-05-09)
Add:
Add AUDIO_SCENARIO_TYPE audioScenario for AgoraServiceConfiguration
API (2020-05-08)
NGIAgoraLocalUser.h NGIAgoraMediaNodeFactory.h NGIAgoraMediaPlayerSource.h internal/media_node_factory_i.h
internal/rtc_connection_i.h
Modified:
API (2020-05-08)
Modified:
Modify:
- Remove parameter |view| in createVideoRenderer
- Change namespace
API (2020-05-07)
Modified:
API (2020-04-29)
Refine RemoteVideoTrackStats
Modified: Rename fields
- streamType to rxStreamType
Add: Add fields
- decoderOutputFrameRate
- rendererOutputFrameRate
- packetLossRate
- totalFrozenTime
- frozenRate
API (2020-04-26)
Deleted:
- ICameraCapturer::CAPTURE_STATE::CAPTURE_STATE_STOPPING
- ICameraCapturer::CAPTURE_STATE::CAPTURE_STATE_STARTING
- switchCamera()
API (2020-04-20)
Add:
- IVideoSinkBase::onDataStreamWillStart()
- IVideoSinkBase::onDataStreamWillStop()
- IVideoFilter::onDataStreamWillStart()
- IVideoFilter::onDataStreamWillStop()
API (2020-04-17)
Add: Add IExtensionControl interfaces for agora extensions
- getCapabilities
- registerExtensionProvider
- unregisterExtensionProvider
- createVideoFrame
- copyVideoFrame
- recycleVideoCache
- dumpVideoFrame
- log
NGIAgoraExtension.h
Deleted: file deleted
NGIAgoraMediaNodeProvider.h
Deleted: file deleted
NGIAgoraMediaNodeFactory
Deleted:
- registerMediaNodeProvider
- unregisterMediaNodeProvider
API (2020-04-16)
NGIAgoraVideoFrame.h Add: Add IVideoFrame interfaces for external video frames
- type
- format
- width
- height
- size
- rotation
- setRotation
- timestampUs
- setTimestampUs
- data
- mutableData
- resize
- textureId
- fill
API (2020-04-13)
NGIAgoraMediaPlayerSource.h
Modified:
- Refine the API order of IMediaPlayerSource().
API (2020-04-12)
Add send intra request api.
Add: Add send intra request api.
API (2020-04-11)
Modified:
- IVideoTrack::addVideoFilter()
API (2020-04-10)
Added: Support sending custom event to argus
- IRtcConnection::sendCustomReportMessage().
Added: Add parameter 'eventSpace', used during report RTM events
- IAgoraRtmService::initialize(const char *appId, IRtmServiceEventHandler *eventHandler, uint64_t eventSpace).
API (2020-04-10)
Add field in struct LocalAudioTrackStats
*Deleted:** delete struct LocalAudioTrackStats, use LocalAudioStats instead
- struct LocalAudioTrackStats
API (2020-04-10)
NGIAgoraMediaPlayerSource.h
Modified:
- Change one parameter's type of getStreamCount() and getStreamInfo() from int to int64_t to get aligned with the other APIs.
API (2020-04-09)
Add:
- Video Mixer related data structures and interfaces (POC)
Add:
- createMixedVideoTrack (POC)
Add:
API (2020-04-03)
Modified: Add APPLE macro judge.
API (2020-04-03)
Add intra request callback and network observer.
Add: Add intra request callback.
- ILocalUserObserver::onIntraRequestReceived()
Add: Add network observer and its register/unregister methods.
- class INetworkObserver
- IRtcConnection::registerNetworkObserver()
- IRtcConnection::unregisterNetworkObserver()
Add: Add destructor of ICameraCaptureObserver
- ICameraCaptureObserver::~ICameraCaptureObserver()
Modified: Modify the implement of BeautyOptions constructor
- BeautyOptions::BeautyOptions()
API (2020-04-2)
*Add:** elapsed in onUserVideoTrackStateChanged onVideoTrackPublishSuccess
API (2020-03-31)
Move appId from AgoraServiceConfigurationEx to AgoraServiceConfiguration
Add:** struct AgoraServiceConfiguration { const char appId = nullptr; }
API (2020-03-30)
Modified: Refine the API order of IDeviceInfo.
API (2020-03-30)
Modified: Remove enabled parameter from IAgoraService::createLocalAudioTrack()
API (2020-03-27)
Modified:
- Modified the comment of onLastmileQuality
- Modified the comment of startLastmileProbeTest
Deleted:
- Deleted enableLastmileTest()
- Deleted disableLastmileTest()
API (2020-03-16)
Add: Add isEnabled to ILocalAudioTrack to get the local audio track enabled status
- ILocalAudioTrack::isEnabled()
API (2020-03-16)
Add:
API (2020-03-12)
Add 'received_bytes' for 'RemoteAudioTrackStats'
Add:
- RemoteAudioTrackStats::received_bytes
API (2020-03-06)
Add 'virtual' for ~IAgoraService() and ~IAgoraServiceEx()
Modified:
- Add 'virtual' for ~IAgoraService()
agora_service_i.h
Modified:
- Add 'virtual' for ~IAgoraServiceEx()
API (2020-02-27)
new cc type
Modified:
- Add new cc type CONGESTION_CONTROLLER_TYPE_AUT_CC;
API (2020-02-25)
Changes for AudioSessionConfiguration
Modified:
API (2020-02-23)
API changes for supporting data channel
Add: Add data channel api to IRtcConnection
- createDataStream()
- sendStreamMessage()
Add data channel callback api to IRtcConnectionObserver
- onStreamMessage()
- onStreamMessageError()
API (2020-02-21)
Changes for audio video stats and state
Add: Add two structs of audio track stats.
- add struct RemoteAudioTrackStats
- add struct LocalAudioTrackStats
Modified:
- Changes getStatistics(RemoteAudioStats& stats) to getStatistics(RemoteAudioTrackStats& stats)
- Changes REMOTE_AUDIO_STATE getState() to REMOTE_AUDIO_STATE getState()
Add: Add callback functions of audio track statistics.
- onLocalAudioTrackStatistics()
- onRemoteAudioTrackStatistics()
Modified: Modify the type of field codec_name
- Changes std::string codec_name to char codec_name[media::kMaxCodecNameLength]
- Changes onUserAudioTrackStateChanged(user_id_t, agora_refptr<rtc::IRemoteAudioTrack>, REMOTE_AUDIO_STREAM_STATE, REMOTE_AUDIO_STREAM_REASON) to onUserAudioTrackStateChanged(user_id_t, REMOTE_AUDIO_STATE, REMOTE_AUDIO_STATE_REASON, int) = 0;
Deleted:
- Deleted onMicrophoneEnabled()
API (2020-02-20)
Support lastmile probe test
Add: Add callback for getting lastmile probe test results and two functions to control lastmile probe test
- void onLastmileProbeResult(const LastmileProbeResult& result)
- int startLastmileProbeTest(const LastmileProbeConfig& config)
- int stopLastmileProbeTest()
API (2020-02-10)
API changes for create video track parameter
Modified:
- createCameraVideoTrack(), createScreenVideoTrack(), createCustomVideoTrack() remove
bool enable
API (2020-02-15)
API changes for unifying the definition of connection state in AgoraBase.h
Deleted: Delete the definition of TConnectionState.
- Deleted enum TConnectionState
API (2020-02-06)
API changes for media packet and media control packet sender and receiver
Add:
Add two functions to create media tracks with IMediaPacketSender, which is created from media node factory.
- agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(agora_refptr<rtc::IMediaPacketSender> source)
- agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(agora_refptr<rtc::IMediaPacketSender> source)
Add: Add two functions to register and unregister media packet receiver.
- int registerMediaPacketReceiver(IMediaPacketReceiver* packetReceiver)
- int unregisterMediaPacketReceiver(IMediaPacketReceiver* packetReceiver)
Add: Add function to get IMediaControlPacketSender. Add two functions to register and unregister media control packet receiver.
- IMediaControlPacketSender* getMediaControlPacketSender()
- int registerMediaControlPacketReceiver(IMediaControlPacketReceiver* ctrlPacketReceiver)
- int unregisterMediaControlPacketReceiver(IMediaControlPacketReceiver* ctrlPacketReceiver)
Add: Add two functions to register and unregister media packet receiver.
- int registerMediaPacketReceiver(IMediaPacketReceiver* packetReceiver)
- int unregisterMediaPacketReceiver(IMediaPacketReceiver* packetReceiver)
Add: Add function to create media packet sender as well as related definitions
- agora_refptr<IMediaPacketSender> createMediaPacketSender()
- IMediaPacketSender
- IMediaControlPacketSender
- IMediaPacketReceiver
- IMediaControlPacketReceiver
API (2020-01-21)
API changes for getting audio filter.
Add:
Main methods:
- const char * getName() const
Add:
Main methods:
- agora_refptr<IAudioFilter> getAudioFilter(const char *name) const
API (2020-02-10)
Deleted:
API (2020-01-20)
Add:
- NGIAgoraLocalUser.h
- class ILocalUser
- API adjustPlaybackSignalVolume()
- API getPlaybackSignalVolume()
API (2020-01-19)
Modified:
API (2020-01-17)
Modified:
- IAgoraService.h
- createCameraVideoTrack(), createScreenVideoTrack(), createCustomVideoTrack() and createCustomVideoTrack() change argument to
bool enable = false
API (2020-01-15)
Add:
API (2020-01-13)
Modified:
- NGIAgoraMediaPlayerSource.h
- Rename onPlayerStateChanged() of IMediaPlayerSourceObserver to onPlayerSourceStateChanged
API (2020-01-09)
Deleted:
- NGIAgoraMediaPlayerSource.h
- class IMediaPlayerSource
- API registerVideoFrameObserver()
- API unregisterVideoFrameObserver()
API (2020-01-08)
Add:
- NGIAgoraMediaPlayerSource.h
- Add the following class
- class IMediaPlayerSource
- class IMediaPlayerSourceObserver
- NGIAgoraMediaNodeFactory.h
- class IMediaNodeFactory
- Add API createMediaPlayerSource()
- IAgoraService.h
- class IAgoraService
- Add API createMediaPlayerVideoTrack()
- Add API createMediaPlayerAudioTrack()
Deleted:
- NGIAgoraMediaPlayer.h
- Delete class IMediaPlayer
- Delete class IMediaPlayerObserver
- IAgoraService.h
- class IAgoraService
- Delete API createMediaPlayer()
API (2019-12-24)
Macro cleanup
IAgoraService (api2/IAgoraService.h)
- remove FEATURE_RTMP_STREAMING_SERVICE and FEATURE_RTM_SERVICE
API (2019-12-22)
API changes
Add:
Modified:
API (2019-12-03)
API changes for graceful exiting
IAgoraService (api2/IAgoraService.h)
API (2019-12-10)
Add:
Main methods:
- int enableEarMonitor(bool enable, bool includeAudioFilter)
API (2019-12-04)
API changes for supporting create RTMP streaming serivce.
Add:
Modified:
- IAgoraService.h
- Add method
agora_refptr<rtc::IRtmpStreamingService> createRtmpStreamingService
- Add method
rtm::IRtmService* createRtmService()
API (2019-11-29)
API changes for supporting audio filter.
Base class of custom audio filter, application can implement its own filter and add it to audio track.
New interface and enum definition:
class IAudioFilterBase : public RefCountInterface {
public:
// Return false if filter decide to drop the frame.
virtual bool adaptAudioFrame(const AudioPcmFrame& inAudioFrame,
AudioPcmFrame& adaptedFrame) = 0;
};
class IAudioFilter : public IAudioFilterBase {
public:
virtual void setEnabled(bool enable) = 0;
virtual bool isEnabled() = 0;
};
enum AUDIO_FILTER_TYPE {
AUDIO_FILTER_EFFECT,
AUDIO_FILTER_ANS,
AUDIO_FILTER_VOICE_CHANGE
};
Add:
Main methods:
- agora_refptr<IAudioFilter> createAudioFilter(AUDIO_FILTER_TYPE type)
Add:
Internal enum:
enum AudioFilterPosition {
Default
};
Main methods:
- bool addAudioFilter(agora_refptr<IAudioFilter> filter, AudioFilterPosition position)
- bool removeAudioFilter(agora_refptr<IAudioFilter> filter, AudioFilterPosition position)
API (2019-11-28)
API cleanup
Modified:
- NGIAgoraMediaNodeFactory
- modify class IVideoFrameSender, use agora ExternalVideoFrame instead of webrtc VideoFrame
- modify class IVideoFilterBase
- use agora VideoFrame instead of webrtc VideoFrame
- remove onSinkWantsChanged
- modify class IVideoSinkBase
- Add a interface to distinguish external or internal video sink
- move class IVideoFrameAdapter to internal interface
- move createVideoFrameAdapter() to internal interface
- NGIAgoraAudioTrack.h
- IAudioTrack
- virtual int adjustPlayoutVolume(int volume) = 0;
- virtual int getPlayoutVolume(int* volume) = 0;
- ILocalAudioTrack
- virtual int adjustPublishVolume(int volume) = 0;
- virtual int getPublishVolume(int* volume) = 0;
API (2019-11-14)
Refine Media Statistics and event report
Add:
Modified:
Deleted:
API (2019-11-25)
API changes for extension
- move
interface/cpp/api2/IAgoraParameter.h
to interface/cpp/IAgoraParameter.h
API (2019-11-21)
API changes for extension
- move
interface/cpp/AgoraParameter.h
to interface/cpp/api2/IAgoraParameter.h
API (2019-11-19)
API changes.
Modified:
Main field(s)
Old | New |
IAudioFrameObserver::AudioFrame::samples | IAudioFrameObserver::AudioFrame::samplesPerChannel |
API (2019-11-12)
API changes for extension
Agora Extension (interface/cpp/api2/NGIAgoraExtension.h)
- struct
agora_extension
- struct
agora_core
API (2021-06-03)
Add:
- void onVolumeIndication(int volume)
API (2019-11-11)
API changes for supporting audio local playback.
Add:
Main methods:
- void enableLocalPlayback(bool enable)
- int adjustPlayoutVolume(int volume)
- int adjustPublishVolume(int volume)
API (2019-11-08)
API changes for default client role is audience.
Rtc Engine (interface/cpp/IAgoraRtcEngine.h)
- struct
ChannelMediaOptions
add field clientRoleType
.
- struct
RtcConnectionConfiguration
add field clientRoleType
.
Add:
Main methods:
- CLIENT_ROLE_TYPE getUserRole();
API (2019-11-05)
API changes for supporting register/unregister encoded image receiver.
Deleted:
move IVideoEncodedImageReceiver to AgoraBase.h
API (2019-11-04)
Media Player (api2/NGIAgoraMediaPlayer.h)
Add:
Main methods:
- int setLooping(bool looping)
Deleted:
Main methods:
API (2019-10-30)
API changes for supporting audio simple audio player.
Media Player (api2/NGIAgoraMediaPlayer.h)
This interface provide access to a media player.
Main methods are:
- int open(const char* url)
- int play()
- int playFromPosition(int position)
- int stop()
- int pause()
- int resume()
- int getDuration(int& duration)
- int getCurrentPosition(int& currentPosition)
- int setCurrentPosition(int newPos)
- int close()
- int registerPlayerObserver(IMediaPlayerObserver* observer)
- int unregisterPlayerObserver(IMediaPlayerObserver* observer)
- agora_refptr<rtc::ILocalAudioTrack> getPlayerAudioTrack()
- agora_refptr<rtc::ILocalVideoTrack> getPlayerVideoTrack()
The denifinion of IMediaPlayerObserver:
class IMediaPlayerObserver {
public:
virtual ~IMediaPlayerObserver() = default;
virtual void onPlayerStateChanged(const IMediaPlayer::PlayerState& state) = 0;
virtual void onPositionChanged(const int position_ms) = 0;
};
API (2019-10-17)
API changes for supporting audio tx mixer.
Add:
Internal struct
- struct ANAStats;
- struct AudioProcessingStats;
- struct LocalAudioStats;
Main methods:
- int setAudioEncoderConfiguration(const rtc::AudioEncoderConfiguration& config)
- bool getLocalAudioStatistics(LocalAudioStats& stats)
Modified:
Main methods
Old | New |
int setPlaybackAudioFrameParameters(size_t bytesPerSample, size_t numberOfChannels, uint32_t sampleRateHz) | int setPlaybackAudioFrameParameters(size_t numberOfChannels, uint32_t sampleRateHz) |
int setRecordingAudioFrameParameters(size_t bytesPerSample, size_t numberOfChannels, uint32_t sampleRateHz) | int setPlaybackAudioFrameParameters(size_t numberOfChannels, uint32_t sampleRateHz) |
int setMixedAudioFrameParameters(size_t bytesPerSample, size_t numberOfChannels, uint32_t sampleRateHz) | int setPlaybackAudioFrameParameters(size_t numberOfChannels, uint32_t sampleRateHz) |
int setPlaybackAudioFrameBeforeMixingParameters(size_t bytesPerSample, size_t numberOfChannels, uint32_t sampleRateHz) | int setPlaybackAudioFrameParameters(size_t numberOfChannels, uint32_t sampleRateHz) |
Add:
Main methods
- bool operator==(const agora_refptr<T>& r)
- bool operator<(const agora_refptr<T>& r) const
Audio PCM Data (api2/internal/audio_node_i.h)
Modified:
Main field(s)
Old | New |
number_of_samples | samples_per_channel |
Deleted:
Internal struct
- struct ANAStats;
- struct AudioProcessingStats;
- struct LocalAudioStats;
Main methods:
- int setAudioEncoderConfiguration(const rtc::AudioEncoderConfiguration& config)
- bool getStatistics(LocalAudioStats& stats)
API (2019-10-13 recorded frome release/2.6.0)
The full details of API descritpion can be seen in https://confluence.agoralab.co/display/MS/API+Introduction
Agora Low Level APIs
Modify: moidfy enableAudioVolumeIndication support vad
API (2021-09-01)
Agora Service
Agora Communications as a Service (CaaS) provides ensured quality of experience (QoE) for worldwide Internet-based voice and video communications through a virtual global network that is especially optimized for real-time web and mobile-to-mobile applications.
The IAgoraService is the entry point of Agora Low Level APIs. This interface is used by applications to create access points to Agora Modules to enable real-time communication, including RTC Connection, Media Tracks, Audio Device Manager and etc. In addition, in order to customize different user scenarios, the interface allows application to configure service and media sessions on the global level, i.e., AgoraServiceConfiguration or AudioSessionConfiguration.
Main methods are:
- initialize(appId, serviceConfiguration)
- createRtcConnection()
- createLocalAudioTrack()
- createAudioDeviceManager()
- createMediaNodeFactory()
- createLocalVideoTrack()
- setAudioSessionConfiguration()
- getAudioSessionConfiguration()
- setLogFile()
- setLogFilter()
- release()
RTC Connection
This allows an application to establish a connection to a Agora Channel. In order to establish a connection, application must provide an App ID or Token and the channel identifier you want to join.
Connecting to a Agora Channel is done asynchronous, application can listen connection state by provided RTC Connection Observer. With connected to a channel, application can use Local User to publish and subscribe media stream/data from Agora Channel.
RTC connection also monitors remote users in the channel. Once a remote user joined or left a channel application will be notified.
Main methods are:
- connect()
- disconnect()
- getLocalUser()
- getConnectionInfo()
- getRemoteUsers()
- getUserInfo()
- release()
- IConnectionObserver::onConnected()
- IConnectionObserver::onDisconnected()
- IConnectionObserver::onConnecting()
- IConnectionObserver::onConnectionFailure()
- IConnectionObserver::onUserJoined()
- IConnectionObserver::onUserleft()
Local User (get from RtcConnection)
This interface represents a combination of Publisher and Subscriber. Each Rtc Connection has its own Local User, and application can get the Local User by IRtcConnection::getLocalUser()
The Local User has two clients roles, broadcaster(Publisher with or w/o Subscriber) and audience(Subscriber only). The Publisher publish local Audio and Video tracks to a channel, like a host in LIVE BROADCAST profile or a participant in COMMUNICATION profile. The Subscriber subscribes and receives remote Audio and Video tracks from different users in the channel.
Main methods are:
- publishAudio()
- unpublishAudio()
- publishVideo()
- unpublishVideo()
- subscribeAudio()
- subscribeAllAudio()
- unsubscribeAudio()
- unsubscribeAllAudio()
- subscribeVideo()
- subscribeAllVideo()
- unsubscribeVideo()
- unsubscribeAllVideo()
- registerLocalUserObserver()
- unregisterLocalUserObserver()
- release()
- ILocaUserlObserver::onAudioTrackPublishSuccess()
- ILocaUserlObserver::onAudioTrackPublicationFailure()
- ILocaUserlObserver::onVideoTrackPublishSuccess()
- ILocaUserlObserver::onVideoTrackPublicationFailure()
- ILocaUserlObserver::onUserAudioTrackSubscribed()
- ILocaUserlObserver::onUserAudioTrackUnsubscribed()
- ILocaUserlObserver::onUserAudioTrackStateChanged()
- ILocaUserlObserver::onUserAudioTrackStatistics()
- ILocaUserlObserver::onUserAudioTrackSubscriptionFailure()
- ILocaUserlObserver::onUserVideoTrackSubscribed()
- ILocaUserlObserver::onUserVideoTrackUnsubscribed()
- ILocaUserlObserver::onUserVideoTrackStateChanged()
- ILocaUserlObserver::onUserVideoTrackStatistics()
- ILocaUserlObserver::onUserVideoTrackSubscriptionFailure()
- ILocaUserlObserver::onUserNetworkQuality()
- ILocaUserlObserver::onAudioVolumeIndication()
Local Audio Track
A presentation of a PCM stream. A Local Audio Track can be created directly by IAgoraService::createLocalTrack(), which originates from default audio recording device, i.e., built-in microphone. Application can also change default audio recording devices by IAudioDeviceManager APIs if multiple recording devices available in system. Local Audio Track can also be created from IMediaPlayer().
After local tracks are created, Application can publish one or multiple local audio tracks through ILocalUser::PublishAudio(). By natual, all published tracks will be mixed first, then encoded into a single audio stream and send to Agora Channel.
Main methods are:
- setEnabled()
- isEnabled()
- adjustSignalingVolume()
- getSignalingVolume()
- release()
Remote Audio Track
A presentation of a remote audio track.
Main methods are:
- setPlaybackEnabled()
- isPlaybackEnabled()
- getState()
Audio Device Manager
The interface provides access to connected audio recording devices like microphones and audio playout devices like speakers.
Main methods are:
- setMicrophoneVolume()
- getMicrophoneVolume()
- setSpeakerVolume()
- getSpeakerVolume()
- setMicrophoneMute()
- getMicrophoneMute()
- setSpeakerMute()
- getSpeakerMute()
- getNumberOfPlayoutDevices()
- getNumberOfRecordingDevices()
- getPlayoutDeviceInfo()
- getRecordingDeviceInfo()
- setPlayoutDevice()
- setRecordingDevice()
- startMicrophoneTest()
- stopMicrophoneTest()
- registerObserver()
- unregisterObserver()
- onVolumeIndication()
- onDeviceStateChanged()
- onRoutingChanged()
Video Node Factory
This factory interface is used to create video nodes to build video track.
Main methods are:
- createCameraCapturer()
- createScreenCapturer()
- createCustomVideoSource()
- createVideoFilter()
- createVideoRenderer()
Video Camera Capturer
This interface is used to control camera as a video source. It also manages camera devices in the windows and MacOS.
Main methods are:
- setCameraSource()
- switchCamera()
- startCapture()
- stopCapture()
- getCaptureFormat()
- getCaptureState()
- registerVideoFrameObserver()
- unregisterVideoFrameObserver()
- registerCameraCaptureObserver()
- unregisterCameraCaptureObserver()
Video Screen Capturer
This interface is used to control screen sharing as video source.
Main methods are:
Custom Video Source
This interface allows application to push external video frame to the Agora SDK.
Main method is:
Video Filter & Video Filter Base
The Video Filter is an intermediate node, which can be added in the video track by IVideoTrack::addVideoFilter(). It reads video frames from the previous node in the track, e.g., a video source or another video filter and then writes video frames back after frame adaption.
Agora provides several built-in video filters, e.g., video beauty filter, which can be created by IMediaNodeFactory::createVideoFilter().
Application can also write its own video filter to modify video frame by implementing IVideoFilterBase::adaptVideoFrame() and add the video filter in the track by IVideoTrack::addVideoFilter().
Main methods are:
- setFilterParameters()
- setEnabled()
- isEnabled()
- registerVideoFrameObserver()
- unregisterVideoFrameObserver()
Video Renderer & Video Sink Base
The Video Renderer inherits Video Sink Base, which is used to render video frame. Agora provides built-in video renderer by IMediaNodeFactory::createVideoRenderer() and application can add it in the video track by IVideoTrack::addVideoRenderer() The Video Sink Base is video frame observer, which can reads video frame from built-in video sources, video filters and video track.
Main methods are:
- setRenderMode()
- setMirror()
Local Video Track
A presentation of local video track that originates from one video source, e.g., camera capturer, screen capturer or a custom video source. Local Video Track can be created by IAgoraService::createVideoTrack()
Agora allows application to customize video track by selecting or adding different video nodes which can be created by IMediaNodeFactory, e.g., Video Source, Video Filter and Video Renderer. You can add multiple nodes and the order of nodes in the pipeline depends on the order of addition by the application.
After video track customized, Application can publish one or multiple local video tracks through ILocalUser::PublishVideo() and each video track has its own video send stream. e.g., you can send camera capturing stream and screen sharing stream simultaneously, and remote users can receive two video streams accordingly.
Main methods are:
- setEnabled()
- isEnabled()
- addVideoFilter()
- removeVideoFilter()
- addVideoRenderer()
- removeVideoRenderer()
- release()
Remote Video Track
A presentation of a remote video track. Similar with local video track, it also supports customization by adding video filters and renderers.
Main methods are:
- isEnabled()
- addVideoFilter()
- removeVideoFilter()
- addVideoRenderer()
- removeVideoRenderer()
- release()
Terminologies & Basics
APP ID
Each “vendor�organization using the Agora SDK (across platforms) has a unique App ID which identifies that organization. All the communication sessions that are created across the Agora Global Network for one App ID are isolated from all other sessions for other App IDs. Therefore, communication sessions will not be connected together across vendors. Statistics, management, and billing are all separated according to the App ID. If an organization has multiple applications that should be kept completely separate, like they are built by completely different teams, then they would use multiple App IDs in this case. If applications need to communicate with each other, then a single App ID should be used.
Dynamical Keys
Using your App ID directly is easy and works well for the initial development of applications, However, if someone illicitly obtains your App ID, then they will be able to perform the same operations in their own client applications. This will allow them to join sessions that belong to you and are billed to you. To prevent this and to secure your applications, Agora recommends to use dynamic keys for large-scale production applications.
Dynamical Keys has constructed within server-side code by APP Cert and other key materials, and APP Cert is never accessible in any client code, which makes Dynamical Key is more secure than static App ID.
Dynamical Key has expiration dates and also contains client permissions as different roles to access Agora Global Network, like host and audience.
Please also review Agora's Security Keys for more technical details.
Agora Channel
Think of a channel as a meeting room. To set up communications between two or more instances of an application, the instances will join the same channel. Channel names are unique within the domain of an App ID. The process for app instances to exchange channel names is managed outside the SDK, and is handled by the application developer.
Channels are hosted on the Agora.io Global Network and a channel will automatically be created the first time an app instance tries to join, and destroyed when the last app instance leaved.
User & User Information
User represents a participant in the channel. Each User has a unique string ID for its identity. Application can get current users-in-channel information and monitor user joining and leaving event by provided RTC Connection Observer after connected to a channel.
There are two kinds of users in channel, Local User and remote users. Local User is application itself which has two roles as Publisher to publish local streams and Subscriber to subscribe remote streams. Remote user represents the remote participant in the channel, who produces and publishes remote stream from remote end.
After connection established, application can get basic user info including User Id and user's media stream info. If Subscriber has subscribed specific remote user, application may also monitor remote user's stream track state.
API (2022-03-16)
API changes for Screen Capture
- enable initWithDisplayId for Windows
API (2022-03-02)
Add:
- NGIAgoraLocalUser.h
- class ILocalUserObserver
- API onRemoteSubscribeFallbackToAudioOnly(user_id_t userId, bool isFallbackOrRecover)
API (2022-05-09)
Add:
- NGIAgoraLocalUser.h
- class ILocalUser virtual int registerLocalVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* observer) virtual int unregisterLocalVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* observer) virtual int forceNextIntraFrame()
API (2022-06-09)
Modified:
IAgoraRtmpStreamingService.h
remove deprecated API and callback of CDN stream
Deleted:
addPublishStreamUrl removePublishStreamUrl setLiveTranscoding onStreamUnpublished onStreamPublished
API (2022-09-13)
Add: Add interface for ILocalUser
- virtual int setHighPriorityUserList(uid_t* vipList, int uidNum, int option)
- virtual int getHighPriorityUserList(std::vector<uid_t>& vipList, int& option)
API (2023-01-30)
Modified:
- struct ScreenCaptureProfilingStatistics
API (2023-01-12)
NGIAgoraExtensionAINoiseSuppressor.h Modified: change GetLibVersion() return value type from std::string to const char*
API (2023-01-30)
Modified:
- struct ScreenCaptureProfilingStatistics
API (2023-03-02)
Modified:
- Add int e2eDelay for RemoteVideoTrackStats struct
API (2023-03-12)
NGIAgoraVideoFrame.h Modified: modify comments
video_node_i.h
Add:
API (2023-03-31)
Deleted: getNtpTime
API (2023-04-25)
ADD: encoder_vender_id
API (2023-04-25)
ADD: setAudioRoutingSpeakerOn
API (2023-05-08)
NGIAgoraExtensionAINoiseSuppressor.h Modified: change GetLibVersion() input value from void to int
API (2023-06-04)
NGIAgoraAudioDeviceManager.h ADD: setupAudioAttributeContext()
API (2023-06-04)
IAgoraService.h ADD: createLocalMixedAudioTrack()
NGIAgoraLocalUser.h ADD: EnableLocalMixedAudioTrack()
NGIAgoraAudioMixerSource.h ADD: addAudioTrack() removeAudioTrack()
API (2023-05-18)
Add:
- Add bool isCameraExposureSupported()
- Add int setCameraExposureFactor(float factor)
API (2023-07-05)
Modified:
- struct ScreenCaptureProfilingStatistics
API (2023-08-07)
"$media_sdk_path/interface/cpp/api2/IAgoraRtmService.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/IAgoraFileUploader.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/IAgoraService.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraAudioDeviceManager.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraAudioTrack.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraCameraCapturer.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraExtensionControl.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraLocalUser.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraMediaNodeFactory.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraMediaNode.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraRtcConnection.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraRtmpConnection.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraRtmpLocalUser.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraDataChannel.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraScreenCapturer.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraVideoFrame.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraVideoMixerSource.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraVideoTrack.h", #**** async set and add ares for wait "$media_sdk_path/interface/cpp/api2/NGIAgoraRemoteAudioMixerSource.h", #**** async set and add ares for wait
API (2023-08-29)
"$media_sdk_path/interface/cpp/api2/IAgoraService.h", #**** async api shoudl return if action has launch "$media_sdk_path/interface/cpp/api2/NGIAgoraLocalUser.h", #**** async api shoudl return if action has launch
API (2023-12-26)
Add:
- virtual void setResetVitualDisplay(bool reset)
API(2024-02-26)
Add:
- add CAMERA_EXTRA in CAMERA_SOURCE
API (2024-02-27)
Modified:
- Modified virtual int ProcessDenoiseFrame(float* input, float* output, int stage) = 0;
- Modified virtual const char* GetLibVersion(int mode = 0) = 0;
API (2024-02-27)
Modified:
- Modified virtual const char* GetLibVersion(int mode = 0) = 0;
API (2024-03-07)
video_node_i.h
ADD:
- virtual void setFocalLengthType()
API (2023-11-09)
Add:
- virtual void onCameraCapturerConfigurationChanged(int direction, int focalLengthType, int width, int height, int frameRate)
API (2024-04-03)
Modify: rename api
- Modified: virtual bool isCenterStageSupported()
API(2024-04-24)
Add:
- setRemoteSubscribeFallbackOption
API (2024-05-07)
Deleted:
- virtual void onCameraCapturerConfigurationChanged()
API (2024-05-15)
Modify:
- virtual int Init(const char* weight_raw_buffer, size_t raw_buffer_bytes)
- virtual int ClearHiddenState(bool clear_hidden, int clear_lpsbuffer_nframe)
Modify:
- virtual int Init(const char* weight_raw_buffer, size_t raw_buffer_bytes)
- virtual int ClearHiddenState(bool clear_hidden, int clear_lpsbuffer_nframe)
- virtual int ProcessAiNlpFrame(const float* linear, const float* nearin, const float* far_ref, float* out_mask)
API (2024-07-04)
Modified:
- add new field for sync client config