Agora RTC Objective-C API Reference Refactor

CHANGES

Note: Please update this file for every Agora API change you do. Simply fill in your updates in the Working section below.

# API (2025-09-15)

## AgoraBase.h

Add:

- LOCAL_VIDEO_STREAM_REASON.LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_EXCLUDE_WINDOW_FAILED = 34

# API (2025-08-13)

## AgoraBase.h

Add:

- enum LOCAL_VIDEO_EVENT_TYPE

# API (2025-07-28)

## AgoraMediaBase.h

Modify:

- Add variables "channelId" in callback function `onEncodedVideoFrameReceived`

# API (2025-06-13)

## AgoraBase.h

Deleted:

- Delete publish_on_demand from SimulcastConfig

# API (2025-06-13)

## AgoraBase.h

Deleted:

- Delete WLACC_MESSAGE_REASON, WLACC_SUGGEST_ACTION, WlAccStats,

# API (2025-05-16)

Add multipath api comment

## AgoraBase.h

Add:

- enum MultipathMode
- enum MultipathType
- struct PathStats
- struct MultipathStats

# API (2025-05-16)

Add multipath support

## AgoraBase.h

Add:

- enum MultipathMode
- enum MultipathType
- struct PathStats
- struct MultipathStats

# API (2025-04-30)

Add methods for streaming source interfance and observer

## IAgoraMediaStreamingSource.h

Modify: deprecated agora cdn interface

- int openWithAgoraCDNSrc(const char* src, int64_t startPos)
- int getAgoraCDNLineCount()
- int switchAgoraCDNLineByIndex(int index)
- int getCurrentAgoraCDNIndex()
- int enableAutoSwitchAgoraCDN(bool enable)
- int renewAgoraCDNSrcToken(const char* token, int64_t ts)
- int switchAgoraCDNSrc(const char* src, bool syncPts = false)

# API (2025-04-30)

Add methods for streaming source interfance and observer

## IAgoraMediaStreamingSource.h

Modify: deprecated agora cdn interface

- int openWithAgoraCDNSrc(const char* src, int64_t startPos)
- int getAgoraCDNLineCount()
- int switchAgoraCDNLineByIndex(int index)
- int getCurrentAgoraCDNIndex()
- int enableAutoSwitchAgoraCDN(bool enable)
- int renewAgoraCDNSrcToken(const char* token, int64_t ts)
- int switchAgoraCDNSrc(const char* src, bool syncPts = false)

# API (2025-05-10)

## AgoraBase.h

Modified:

- add WatermarkSourceType enum
- add WatermarkTimestamp struct
- add WatermarkLitera struct
- add WatermarkBuffer struct
- add WatermarkConfig struct
- add parameter 'zOrder' to WatermarkOptions struct

# API (2025-02-26)

Add methods for streaming source interfance and observer

## IAgoraMediaStreamingSource.h

Modify:

- deprecated all interface

# API (2024-12-18)

AgoraMediaPlayerTypes.h enum MEDIA_PLAYER_EVENT

add player events PLAYER_EVENT_HTTP_REDIRECT = 19

# API (2024-09-26)

## AgoraBase.h

Add:

- RtcStats::lanAccelerateState

# API (2024-10-11)

Changes for media recorder

## AgoraBase.h

Modify:

- change RecorderStreamType constructor

# API (2024-09-23)

## AgoraBase.h

Modify:

- VIDEO_CODEC_GENERIC_H264 is deprecated.

# API (2024-09-20)

## AgoraBase.h

Modify:

- add audioParams in ScreenCaptureParameters;

# API (2024-09-03)

## AgoraBase.h

Modify:

- COMPRESSION_PREFERENCE add PREFER_GENERAL

# API (2024-08-27)

## AgoraBase.h

Modify:

- Fix an embarrassing compilation warning of PeerDownlinkInfo

# API (2024-08-27)

## AgoraBase.h

Remove:

- enum VIDEO_DENOISER_LEVEL::VIDEO_DENOISER_LEVEL_STRENGTH in VideoDenoiserOptions

# API (2024-08-20)

## AgoraBase.h

Modify:

- LOCAL_VIDEO_STREAM_REASON_DEVICE_DISCONNECTED is available for Windows

# API (2024-07-31)

## AgoraBase.h

Add:

- enum VIDEO_APPLICATION_SCENARIO_TYPE add APPLICATION_SCENARIO_LIVESHOW

# API (2024-07-24)

## AgoraBase.h

Modify:

- Refine the explanation of FilterEffectOptions

# API (2024-07-23)

## AgoraMediaBase.h

Modified:

- add audio_track_number to AudioPcmFrame

# API (2024-07-10)

## AgoraMediaBase.h

Modify:

- Change ExternalVideoFrame::fence_object to ExternalVideoFrame::fenceObject
- Change ExternalVideoFrame::d3d11_texture_2d to ExternalVideoFrame::d3d11Texture2d
- Change ExternalVideoFrame::texture_slice_index to ExternalVideoFrame::textureSliceIndex
- Change ExternalVideoFrame::metadata_buffer to ExternalVideoFrame::metadataBuffer
- Change ExternalVideoFrame::metadata_size to ExternalVideoFrame::metadataSize

# API (2024-11-01)

## AgoraBase.h

Add: Add AUDIO_SCENARIO_AI_SERVER to enum AUDIO_SCENARIO_TYPE Add AUDIO_SCENARIO_AI_CLIENT to enum AUDIO_SCENARIO_TYPE

# API (2024-07-03)

## AgoraMediaBase.h

Modified:

- add is_stereo to AudioPcmFrame

# API (2022-09-13)

## AgoraBase.h

Modify:

- mark enum CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT as Deprecated
- mark enum CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED as Deprecated

# API (2024-07-01)

## AgoraMediaBase.h

Add:

- add ALPHA_STITCH_MODE enum

  # API (2024-06-06)

Changes for media recorder

## AgoraBase.h

Modify:

- add RecorderStreamType to RecorderStreamInfo

  ## AgoraMediaBase.h

Modify:

## - add some MediaRecorderConfiguration fields

move IAgoraMediaRecorder.h to cpp/base

# API (2024-06-20)

## AgoraBase.h

Remove:

- setDefaultMuteAllRemoteVideoStreams
- setDefaultMuteAllRemoteAudioStreams

# API (2024-04-26)

## AgoraBase.h

Modify:

- Fix typo of enum LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_DISPLAY_DISCONNECTED

# API (2024-06-4)

## IAgoraParameter.h

Delete:

- che.video.h264.hwenc

# API (2024-06-14)

## AgoraBase.h

Modify:

- AdvanceOptions add encodeAlpha

# API (2024-05-27)

## AgoraBase.h

Add:

- AREA_CODE_RU

# API (2024-05-17)

AgoraMediaBase.h
Add:
Add `struct ColorSpace`
Modified:
Add colorSpace in ExternalVideoFrame

# API (2024-5-14)

## AgoraBase.h

Add:

- Add AGORA_CPP_INTERNAL_API macro

# API (2024-5-09)

## IAgoraMediaPlayerSource.h

Modify:

- delete openWithCustomSource

# API (2024-5-08)

## AgoraMediaBase.h

Modify:

- revise ExtensionContext interface comment

# API (2024-04-29)

## AgoraBase.h

Add:

- Add struct FaceShapeBeautyOptions and FaceShapeAreaOptions for FaceShape Beauty Setting
- enum FACE_SHAPE_BEAUTY_STYLE
- enum FACE_SHAPE_AREA

# API (2024-05-11)

## AgoraBase.h

Add:

- struct FilterEffectOptions
- const char* built_in_whiten_filter

# API (2024-4-29)

## AgoraMediaBase.h

Modify:

- Add ExtensionContext struct

# API (2024-04-26)

## AgoraBase.h

Add:

- enum LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_DISPLAY_DISCNNECTED

# API (2024-05-07)

## AgoraMediaBase.h

Add:

- add fence_object in ExternalVideoFrame

# API (2024-04-19)

## AgoraBase.h

Add:

- enum AUDIO_CODEC_OPUSMC

# API (2024-05-10)

## AgoraMediaBase.h

Add:

- add alphaStitchMode to ExternalVideoFrame
- add alphaStitchMode to VideoFrame

# API (2024-04-16)

## AgoraBase.h

Add:

- enum CAMERA_FORMAT_TYPE

# API (2024-02-21)

## AgoraBase.h

Add:

- add technical preview note for AV1

# API (2024-03-25)

## AgoraBase.h

Modify:

- Remove streamType in VideoTrackInfo

# API (2024-6-20)

## AgoraBase.h

Add:

- add enum type WARN_CODE_TYPE::WARN_ADM_POP_STATE

# API (2024-03-20)

## IAgoraLog.h

Modify:

- add LOG_LEVEL_DEBUG

# API (2024-03-20)

## AgoraMediaBase.h

Modify:

- Description of VIDEO_PIXEL_I010

  # API (2024-3-7)

## AgoraBase.h

Add:

- enum VIDEO_APPLICATION_SCENARIO_TYPE add APPLICATION_SCENARIO_1V1

# API (2024-02-27)

## AgoraBase.h

Add:

- Add VIDEO_STREAM_LAYER for VIDEO_STREAM_TYPE
- Add struct SimulcastConfig

# API (2024-03-08)

## AgoraMediaBase.h

Add:

- struct Hdr10MetadataInfo

# API (2024-02-21)

## AgoraBase.h

Add:

- add datastreamEncryptionEnabled in EncryptionConfig

# API (2024-02-23)

## AgoraMediaBase.h

Modify:

- Description of alphaBuffer

# API (2024-02-22)

## AgoraMediaBase.h

Add:

- add fillAlphaBuffer to ExternalVideoFrame

# API (2024-02-21)

## AgoraBase.h

Modify:

- Modify comment of LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_MINIMIZED

## API (2024-02-20)

Add:

- enum AUDIO_EFFECT_PRESET::ROOM_ACOUSTICS_CHORUS

# API (2024-02-19)

## AgoraBase.h

Add:

- Add field e2eDelay for struct RemoteAudioStats

# API (2024-02-07)

## AgoraMediaBase.h

Add:

- Add VIDEO_SOURCE_VOICE_DRIVE to VIDEO_SOURCE_TYPE
- Add class IFaceInfoObserver

# API (2024-02-06)

## AgoraBase.h

Add:

- Add comment for presentationMs

# API (2024-02-06)

## AgoraBase.h

Add:

- Add presentationMs to `struct EncodedVideoFrameInfo`

# API (2024-1-19)

add VIDEO_PIXEL_I010 in VIDEO_PIXEL_FORMAT

## AgoraMediaBase.h

Add:

- VIDEO_PIXEL_FORMAT::VIDEO_PIXEL_I010

# API (2023-12-18)

## AgoraBase.h

Add:

- RdtStreamType
- RdtState
- RDT Error Code

# API (2023-12-14)

## AgoraBase.h

Add:

- modify vp9 codec type

# API (2023-12-20)

Rename bluetooth related literal in AudioRoute.

## AgoraMediaCommonBase.h

Modify:

- Change AudioRoute::ROUTE_HEADSETBLUETOOTH to AudioRoute::ROUTE_BLUETOOTH_DEVICE_HFP
- Change AudioRoute::ROUTE_BLUETOOTH_SPEAKER to AudioRoute::ROUTE_BLUETOOTH_DEVICE_A2DP

# API (2023-12-15)

## AgoraBase.h

Add:

- add enum EAR_MONITORING_FILTER_REUSE_POST_PROCESSING_FILTER

# API (2023-12-14)

## AgoraBase.h

Add:

- LocalAccessPointConfiguration::disableAut

# API (2023-12-6)

## AgoraBase.h

Remove

- AGORA_IID_CLOUD_SPATIAL_AUDIO

# API (2023-11-28)

## AgoraBase.h

Modify:

- add VideoLayout()

# API (2023-11-13)

## AgoraMediaBase.h

Add:

- enum CONTENT_INSPECT_CLOUD_MODERATION
- add serverConfig in ContentInspectConfig

# API (2023-11-08)

Add AGORA_CPP_API Macro.

## AgoraBase.h

Add:

- AGORA_CPP_API

# API (2023-10-08)

Add ROUTE_BLUETOOTH_SPEAKER in AudioRoute.

## AgoraMediaCommonBase.h

Add:

- AudioRoute::ROUTE_BLUETOOTH_SPEAKER Modify:
- Make comments for AudioRoute more accurate

# API (2023-10-24)

## AgoraMediaBase.h

Add:

- add rtpTimestamp in AudioFrame

# API (2023-10-31)

AgoraCommonBase.h Modified:

- Change LOCAL_AUDIO_STREAM_ERROR to LOCAL_AUDIO_STREAM_REASON.

# API (2023-11-23)

AgoraBase.h

Modified:

- default codecType set as VIDEO_CODEC_H265

# API (2023-11-20)

AgoraCommonBase.h AgoraBase.h AgoraMediaBase.h AgoraMediaCommonBase.h Modified:

- Remove fuid api

AgoraMediaCommonBase.h Modified:

- Change RecorderErrorCode to RecorderReasonCode.

AgoraMediaBase.h Modified:

- Change onRecorderStateChanged::RecorderErrorCode error to RecorderReasonCode reason.

AgoraMediaBaseS.h Modified:

- Change onRecorderStateChanged::RecorderErrorCode error to RecorderReasonCode reason.

# API (2023-11-24)

## AgoraMediaBase.h

Modify:

- fix enum RecorderState comment

# API (2023-09-13)

## AgoraMediaBase.h

Modify:

- add engine.video.minor_codec_type

# API (2023-09-13)

## AgoraCommonBase.h

Modify:

- Change INVALID_DISPLAY_ID from (-1) to (-2)

# API (2023-09-13)

## AgoraCommonBase.h

Remove: remove error code VT_REASON_OK

# API (2023-10-10)

## AgoraMediabase.h

Modify

- move IMediaRecorderObserver & IMediaRecorderObserverS to correct position

# API (2023-08-15)

## AgoraBase.h

Add:

- LOCAL_VIDEO_STREAM_REASON.LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_MINIMIZED = 27

# API (2023-08-15)

## AgoraBase.h

Add: add earMonitorDelay and aecEstimatedDelay in struct LocalAudioStats

- struct LocalAudioStats
  - earMonitorDelay
  - aecEstimatedDelay

# API (2023-08-14)

AgoraBase.h Add:

- NETWORK_TYPE_MOBILE_5G = 6

# API (2023-08-09)

## AgoraBase.h

Add:

- LOCAL_VIDEO_STREAM_REASON.LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_HIDDEN = 25
- LOCAL_VIDEO_STREAM_REASON.LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_HIDDEN = 26

# API (2023-08-02)

## AgoraBase.h

Modify:

- update code comments

# API (2023-08-03)

## IAgoraParameter.h

Modify:

- make destructor of IAgoraParameter to be protected

# API (2023-08-01)

AgoraCommonBase.h Add:

- add LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_PAUSED in VideoFrame

- add LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_RESUMED in LOCAL_VIDEO_STREAM_REASON

  AgoraMediaCommonBase.h Add:

- add d3d11Texture2d in VideoFrame

# API (2023-07-21)

AgoraBase.h Add:

- CONNECTION_CHANGED_CERTIFICATION_VERYFY_FAILURE = 22

# API (2023-07-20)

## AgoraMediaBase.h

Add:

- struct AudioFrame add presentation_ms

# API (2023-07-12)

## AgoraMediaBase.h

Modify:

- optimize comments of struct AudioFrame

# API (2023-07-05)

## AgoraBase.h

Add:

- enum CONNECTION_CHANGED_INCONSISTENT_APPID
- enum CONNECTION_CHANGED_STREAM_CHANNEL_NOT_AVAILABLE

# API (2023-07-10)

## AgoraMediaPlayerTypes.h

Modify:

## - rename playerId to internalPlayerUuid in PlayerUpdatedInfo

Add:

- add PlayerPlaybackStats struct
- add videoHeight in PlayerUpdatedInfo
- add videoWidth in PlayerUpdatedInfo
- add audioSampleRate in PlayerUpdatedInfo
- add audioChannels in PlayerUpdatedInfo
- add audioBitsPerSample in PlayerUpdatedInfo

# API (2023-07-20)

## AgoraMediaBase.h

Add:

- struct VIDEO_QOE_PREFERENCE_TYPE change define value

# API (2023-06-03)

IAgoraMediaPlayerSource.h Modified:

- onPositionChanged(int64_t position, int64_t timestamp)

# API (2023-05-31)

## AgoraMediaBase.h

Add:

- add texture format in ExternalVideoFrame

# API (2023-05-18)

## AgoraBase.h

Add:

- Update comments of LOCAL_VIDEO_STREAM_REASON.LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_AUTO_FALLBACK

# API (2023-07-18)

## IAgoraParameter.h

Modify:

- IAgoraParameter inherit RefCountInterface

# API (2023-5-15)

## AgoraMediaBase.h

Add:

- class IVideoFrameMetaInfo

# API (2023-05-17)

## AgoraBase.h

Add:

- LOCAL_VIDEO_STREAM_REASON.LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_AUTO_FALLBACK = 24

# API (2023-06-02)

## AgoraMediaBase.h

Add:

- enum CONTENT_INSPECT_CLOUD_MODERATION

# API (2023-05-18)

## AgoraBase.h

Deleted:

- CHANNEL_MEDIA_RELAY_EVENT

# API (2023-07-14)

## AgoraBase.h

Modified:

- - ChannelMediaRelayConfigurationBase doc

# API (2023-05-16)

## AgoraBase.h

Add:

- Add backgroundColor to `struct VideoCanvas`

# API (2023-04-26)

## AgoraBase.h

Add:

- Add Local Ap configs

# API (2023-04-19)

## AgoraMediaBase.h

Add:

- struct RecorderStreamInfo
- struct RecorderStreamInfoS

# API (2023-04-17)

## AgoraMediaBase.h

Add:

- IAudioFrameObserverBase::AudioFrame::audioTrackNumber

# API (2023-04-10)

## IAgoraMeidaPlayerSource.h

Add: Add new Api in Media Player

- selectMultiAudioTrack

# API (2023-03-22)

## AgoraBase.h

Modified:

- modidy queryCodecCapability CodecCapInfo codec_info to codecInfo

# API (2023-03-18)

## AgoraBase.h

Add:

- Add position to VideoCanvas

## AgoraMediaBase.h

Add:

- enum POSITION_POST_CAPTURER_ORIGIN

# API (2023-03-21)

AgoraBase.h

## AgoraMediaBase.h

Modify:

- fix fuid

# API (2023-08-09)

AgoraBase.h

## AgoraMediaBase.h

Modify:

## - fix fuid: modify API comment

AgoraBaseS.h AgoraCommonBase.h Add:

- add AgoraCommonBase.h & AgoraBaseS.h

# API (2023-03-16)

## AgoraBase.h

Add:

- Add CONFIG_FETCH_TYPE

# API (2023-03-16)

## AgoraBase.h

Add:

- enum VIDEO_CODEC_CAPABILITY_LEVEL

# API (2023-03-08)

## IAgoraMediaPlayerSource.h

Modify:

- optimize comments of struct MediaSource

# API (2023-03-28)

## AgoraMediaBash.h

Modify:

- change param name from "type" to "sourceType"

# API (2023-02-21)

## IAgoraMediaPlayerSource.h

Add:

- Add __deprecated tag

# API (2023-02-16)

## AgoraBase.h

Add:

- enum INTERFACE_ID_TYPE add AGORA_IID_H265_TRANSCODER

# API (2023-01-24)

## AgoraBase.h

Add:

- Add enum VIDEO_APPLICATION_SCENARIO_TYPE

# API (2023-01-10)

## AgoraBase.h

Add:

- Add enum VIDEO_QOE_PREFERENCE_TYPE

# API (2023-01-10)

## AgoraBase.h

Add:

- add intervalInSeconds in EchoTestConfiguration

# API (2023-01-11)

## AgoraBase.h

Modify:

- OnRecordAudioEncodedFrame rename to onRecordAudioEncodedFrame
- OnPlaybackAudioEncodedFrame rename to onPlaybackAudioEncodedFrame
- OnMixedAudioEncodedFrame rename to onMixedAudioEncodedFrame

# Agora High Level APIs (Working)

# API (2023-1-31)

## AgoraMediaBase.h

Add:

- Add pixelBuffer in VideoFrame

# API (2023-1-12)

## AgoraBase.h

Modify:

- modify annotation of VIDEO_MIRROR_MODE_TYPE

## AgoraMediaBase.h

Modify:

- VideoFrame init matrix by memset

# API (2022-1-31)

## AgoraBase.h

Deleted:

- Remove AGORA_IID_MEDIA_RECORDER of INTERFACE_ID_TYPE

## AgoraMediaBase.h

Modify:

- onRecorderStateChanged add param channelId and uid
- onRecorderInfoUpdated add param channelId and uid

# API (2022-12-15)

## AgoraBase.h

Add:

- add AUDIO_AINS_MODE and modify annotation

# API (2023-01-06)

## AgoraMediaBase.h

Modify:

- optimize onMediaPlayerVideoFrame document

# API (2022-11-16)

## AgoraBase.h

Add:

- Add field audioPlayoutDelay for struct LocalAudioStats

# API (2022-11-04)

## AgoraMediaBase.h

Add:

- struct ExternalVideoFrame add alphaBuffer

# API (2022-11-1)

## AgoraBase.h

Deleted:

- Remove type definition of any_document_t

# API (2022-12-08)

[FEAT] NMS-9295: provide APIs for setting first video frame starting tick

## AgoraBase.h

Add:

- enum MEDIA_TRACE_EVENT::MEDIA_TRACE_EVENT_VIDEO_DECODED
- enum MEDIA_TRACE_EVENT::MEDIA_TRACE_EVENT_VIDEO_RENDERED
- struct VideoRenderingTracingInfo

# API (2022-11-1)

## AgoraBase.h

Deleted:

- move IParameterEngine to rtc_engine_i.h

  ## AgoraMediaBase.h

Deleted:

- AdvanceOptions add compressionPreference

# API (2021-10-28)

AgoraMediaBase.h

## IAgoraMediaPlayerSource.h

Modified:

- rename agora::media::base::IAudioFrameObserver to agora::media::IAudioPcmFrameSink

# API (2023-11-01)

## AgoraBase.h

Add:

- enum CAMERA_STABILIZATION_MODE

  ## AgoraEnumerates.h

Add:

- enum AgoraCameraStabilizationMode

# API (2022-10-26)

## AgoraBase.h

Add:

- enum BACKGROUND_SOURCE_TYPE::BACKGROUND_NONE
- enum BACKGROUND_SOURCE_TYPE::BACKGROUND_VIDEO

  ## AgoraEnumerates.h

Add:

- enum AgoraVirtualBackgroundSourceType::AgoraVirtualBackgroundNone
- enum AgoraVirtualBackgroundSourceType::AgoraVirtualBackgroundVideo

  ## VirtualBackgroundSource.java

Add:

- enum VirtualBackgroundSource::BACKGROUND_NONE
- enum VirtualBackgroundSource::BACKGROUND_VIDEO

## AgoraMediaBase.h

Deleted:

- onSecondaryCameraCaptureVideoFrame
- onSecondaryPreEncodeCameraVideoFrame
- onScreenCaptureVideoFrame
- onPreEncodeScreenVideoFrame
- onSecondaryScreenCaptureVideoFrame
- onSecondaryPreEncodeScreenVideoFrame

# API (2022-10-12)

## AgoraMediaBase.h

Deleted:

- enum VIDEO_MODULE_POSITION::POSITION_POST_FILTERS

# API (2022-10-20)

## AgoraBase.h

Add:

- enum CODEC_CAP_MASK

# API (2022-09-17)

## AgoraBase.h

Modified:

- struct TranscodingVideoStream MEDIA_SOURCE_TYPE change to VIDEO_SOURCE_TYPE
- struct TranscodingVideoStream addmediaPlayerId

## AgoraMediaBase.h

Modified:

- enum VIDEO_SOURCE_TYPE change to CAMERA_VIDEO_SOURCE_TYPE
- onCaptureVideoFrame add param VIDEO_SOURCE_TYPE
- onPreEncodeVideoFrame add param VIDEO_SOURCE_TYPE

## AgoraMediaBase.h

Deleted:

- onSecondaryCameraCaptureVideoFrame
- onSecondaryPreEncodeCameraVideoFrame
- onScreenCaptureVideoFrame
- onPreEncodeScreenVideoFrame
- onSecondaryScreenCaptureVideoFrame
- onSecondaryPreEncodeScreenVideoFrame

# API (2022-10-13)

## AgoraBase.h

Add:

- Add mediaPlayerId
- Remove priv
- Remove priv_size
- Remove isScreenView

# API (2022-10-13)

## AgoraBase.h

Add

- add 'enableAlphaMask' property to AgoraRtcVideoCanvas

# API (2021-09-26)

## AgoraBase.h

Modified:

- finetune on agora autoptr

# API (2021-09-26)

## AgoraMediaBase.h

Modified:

- onEncodedVideoFrameReceived

# API (2022-09-22)

## AgoraBase.h

Deleted:

- struct RemoteAudioStats(move to rtc_engine/IAgoraRtcEngine.h)

# API (2022-09-20)

AgoraBase.h

## AgoraMediaBase.h

Modified

- Update the code comments

# API (2022-08-30)

## AgoraMediaBase.h

Modified:

- Change AudioPcmFrame::capture_timestamp from uint32_t to int64_t in case overflow

# API (2022-09-13)

## AgoraMediaBase.h

Deleted:

- delete media::base::MAX_METADATA_SIZE_IN_BYTE, and use IMetadataObserver::MAX_METADATA_SIZE_IN_BYTE instead

# API (2022-08-30)

AgoraMediaPlayerTypes.h

## IAgoraLog.h

Modified:

- Include <stdint.h> to use fixed width integer types

# API (2022-08-23)

## AgoraBase.h

Add:

- Add setvideoEncoderConfig AdvanceOptions

# API (2022-9-14)

## AgoraBase.h

Add:

- LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_FAILURE = 21,
- LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_NO_PERMISSION = 22,

# API (2021-08-22)

## AgoraBase.h

Modify:

- setVideoEncoderConfiguration VideoEncoderConfiguration add COMPRESSION_PREFERENCE compressionPreference

# API (2022-08-11)

AgoraMediaPlayerTypes.h change PlayerStreamInfo.duration to millisecond

# API (2022-08-10)

## AgoraBase.h

Add:

- Add AUDIO_TRACK_TYPE enumeration
- Add AudioTrackConfig struct

# API (2022-08-08)

## AgoraBase.h

Modified:

- struct ScreenAudioParameters

# API (2022-07-14)

Add audio filter preset enum & add a param for SpatialAudioParams struct

## AgoraBase.h

Add:

- HEADPHONE_EQUALIZER_PRESET
- SpatialAudioParams::speaker_attenuation

# API (2022-07-13)

AgoraMediaBase.h adjust the route enum sequence

# API (2022-07-07)

## AgoraBase.h

Modified:

- Add operator== for VideoFormat

# API (2022-08-15)

## AgoraBase.h

Add:

- enum LICENSE_ERROR_TYPE
- Add CONNECTION_CHANGED_LICENSE_VALIDATION_FAILURE

# API (2022-09-13)

## AgoraMediaBase.h

Modify: mark enum RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_REFUSED as Deprecated

# API (2022-06-30)

## IAgoraMediaPlayerSource.h

Deleted:

- IMediaPlayerSource's muteAudio & isAudioMuted & muteVideo & isVideoMuted

# API (2022-07-12)

## AgoraBase.h

Deleted:

- ClientRoleOptions.stopMicrophoneRecording
- ClientRoleOptions.stopPreview

# API (2022-06-29)

## AgoraMediaBase.h

Deleted:

- ERR_NET_NOBUFS = 15,
- ERR_WATERMARK_PARAM = 124,
- ERR_WATERMARK_PATH = 125,
- ERR_WATERMARK_PNG = 126,
- ERR_WATERMARKR_INFO = 127,
- ERR_WATERMARK_ARGB = 128,
- ERR_WATERMARK_READ = 129,
- ERR_LOGOUT_OTHER = 400,
- ERR_LOGOUT_USER = 401,
- ERR_LOGOUT_NET = 402,
- ERR_LOGOUT_KICKED = 403,
- ERR_LOGOUT_TOKEN_EXPIRED = 405,
- ERR_LOGOUT_OLDVERSION = 406,
- ERR_LOGOUT_TOKEN_WRONG = 407,
- ERR_LOGOUT_ALREADY_LOGOUT = 408,
- ERR_LOGIN_OTHER = 420,
- ERR_LOGIN_NET = 421,
- ERR_LOGIN_FAILED = 422,
- ERR_LOGIN_CANCELED = 423,
- ERR_LOGIN_TOKEN_EXPIRED = 424,
- ERR_LOGIN_TOKEN_KICKED = 427,
- ERR_LOGIN_ALREADY_LOGIN = 428,
- ERR_JOIN_CHANNEL_OTHER = 440,
- ERR_SEND_MESSAGE_OTHER = 440,
- ERR_SEND_MESSAGE_TIMEOUT = 441,
- ERR_QUERY_USERNUM_OTHER = 450,
- ERR_QUERY_USERNUM_TIMEOUT = 451,
- ERR_QUERY_USERNUM_BYUSER = 452,
- ERR_LEAVE_CHANNEL_OTHER = 460,
- ERR_LEAVE_CHANNEL_KICKED = 461,
- ERR_LEAVE_CHANNEL_BYUSER = 462,
- ERR_LEAVE_CHANNEL_LOGOUT = 463,
- ERR_LEAVE_CHANNEL_DISCONNECTED = 464,
- ERR_INVITE_OTHER = 470,
- ERR_INVITE_REINVITE = 471,
- ERR_INVITE_NET = 472,
- ERR_INVITE_PEER_OFFLINE = 473,
- ERR_INVITE_TIMEOUT = 474,
- ERR_INVITE_CANT_RECV = 475,
- ERR_START_CALL = 1002,
- ERR_START_CAMERA = 1003,
- ERR_START_VIDEO_RENDER = 1004,
- ERR_ADM_JAVA_RESOURCE = 1006,
- ERR_ADM_SAMPLE_RATE = 1007,
- ERR_ADM_RUNTIME_PLAYOUT_ERROR = 1015,
- ERR_ADM_RUNTIME_RECORDING_ERROR = 1017,
- ERR_ADM_RECORD_AUDIO_FAILED = 1018,
- ERR_ADM_INIT_LOOPBACK = 1022,
- ERR_ADM_START_LOOPBACK = 1023,
- ERR_ADM_NO_PERMISSION = 1027,
- ERR_ADM_RECORD_AUDIO_IS_ACTIVE = 1033,
- ERR_ADM_ANDROID_JNI_JAVA_RESOURCE = 1101,
- ERR_ADM_ANDROID_JNI_NO_RECORD_FREQUENCY = 1108,
- ERR_ADM_ANDROID_JNI_NO_PLAYBACK_FREQUENCY = 1109,
- ERR_ADM_ANDROID_JNI_JAVA_START_RECORD = 1111,
- ERR_ADM_ANDROID_JNI_JAVA_START_PLAYBACK = 1112,
- ERR_ADM_ANDROID_JNI_JAVA_RECORD_ERROR = 1115,
- ERR_ADM_ANDROID_OPENSL_CREATE_ENGINE = 1151,
- ERR_ADM_ANDROID_OPENSL_CREATE_AUDIO_RECORDER = 1153,
- ERR_ADM_ANDROID_OPENSL_START_RECORDER_THREAD = 1156,
- ERR_ADM_ANDROID_OPENSL_CREATE_AUDIO_PLAYER = 1157,
- ERR_ADM_ANDROID_OPENSL_START_PLAYER_THREAD = 1160,
- ERR_ADM_IOS_INPUT_NOT_AVAILABLE = 1201,
- ERR_ADM_IOS_ACTIVATE_SESSION_FAIL = 1206,
- ERR_ADM_IOS_VPIO_INIT_FAIL = 1210,
- ERR_ADM_IOS_VPIO_REINIT_FAIL = 1213,
- ERR_ADM_IOS_VPIO_RESTART_FAIL = 1214,
- ERR_ADM_IOS_SET_RENDER_CALLBACK_FAIL = 1219,
- ERR_ADM_IOS_SESSION_SAMPLERATR_ZERO = 1221,
- ERR_ADM_WIN_CORE_INIT = 1301,
- ERR_ADM_WIN_CORE_INIT_RECORDING = 1303,
- ERR_ADM_WIN_CORE_INIT_PLAYOUT = 1306,
- ERR_ADM_WIN_CORE_INIT_PLAYOUT_NULL = 1307,
- ERR_ADM_WIN_CORE_START_RECORDING = 1309,
- ERR_ADM_WIN_CORE_CREATE_REC_THREAD = 1311,
- ERR_ADM_WIN_CORE_CAPTURE_NOT_STARTUP = 1314,
- ERR_ADM_WIN_CORE_CREATE_RENDER_THREAD = 1319,
- ERR_ADM_WIN_CORE_RENDER_NOT_STARTUP = 1320,
- ERR_ADM_WIN_CORE_NO_RECORDING_DEVICE = 1322,
- ERR_ADM_WIN_CORE_NO_PLAYOUT_DEVICE = 1323,
- ERR_ADM_WIN_WAVE_INIT = 1351,
- ERR_ADM_WIN_WAVE_INIT_RECORDING = 1353,
- ERR_ADM_WIN_WAVE_INIT_MICROPHONE = 1354,
- ERR_ADM_WIN_WAVE_INIT_PLAYOUT = 1355,
- ERR_ADM_WIN_WAVE_INIT_SPEAKER = 1356,
- ERR_ADM_WIN_WAVE_START_RECORDING = 1357,
- ERR_ADM_WIN_WAVE_START_PLAYOUT = 1358,
- ERR_ADM_NO_RECORDING_DEVICE = 1359,
- ERR_ADM_NO_PLAYOUT_DEVICE = 1360,
- ERR_VDM_WIN_DEVICE_IN_USE = 1502,
- ERR_VCM_UNKNOWN_ERROR = 1600,
- RR_VCM_ENCODER_INIT_ERROR = 1601,
- ERR_VCM_ENCODER_ENCODE_ERROR = 1602,
- ERR_VCM_ENCODER_SET_ERROR = 1603,

# API (2022-06-29)

## AgoraBase.h

Modified:

- set value to VIDEO_SOURCE_TYPE enumeration explicitly

# API (2022-06-23)

## AgoraMediaBase.h

Add:

- Add camera capture souce type enumeration

# API (yyyy-mm-dd)

Purpose of this change

## API file name #1

Add: Short description

- Foo()
- Bar()

Modified: Short description

- Changes Foo() to Foo1()
- Changes Bar() to Bar1()

Deleted: Short description

- Deleted Foo()

# API (2022-08-08)

## AgoraBase.h

Modified:

- fixed enum name

# API (2022-07-13)

## AgoraBase.h

Modify:

- Modify SimulcastStreamConfig member variable name

# API (2022-06-22)

## IAgoraMediaPlayerSource.h

Modify:

- Modify onPositionChanged with position_ms

# API (2022-05-27)

add an enumeration type variable

## AgoraBase.h

Add: enum INTERFACE_ID_TYPE::AGORA_IID_MUSIC_CONTENT_CENTER = 15

# API (2022-06-15)

## AgoraBase.h

Add:

- Add define INVALID_DISPLAY_ID 0xffff

# API (2022-4-8)

## IAgoraParameter.h

Add:

- Add loopback recording parameters.

# API (2022-06-01)

## AgoraBase.h

Modified:

- fix CONNECTION_CHANGED_TOO_MANY_BROADCASTERS comment error

# API (2021-05-11)

## AgoraBase.h

Modify:

- add decodeTimeMs in EncodedVideoFrameInfo

# API (2022-06-09)

## AgoraBase.h

Modified:

- delete channel profile of cloud gaming

# API (2022-06-9)

## AgoraBase.h

Modified:

- Explicitly set the enumeration value.

# API (2022-06-05)

AgoraMediaBase.h

Modified:

- remove vendor from ContentInspectModule
- remove token from ContentInspectModule
- remove callbackUrl from ContentInspectModule
- remove ContentWorkType from ContentInspectConfig
- remove DeviceworkType from ContentInspectConfig

# API (2024-06-11)

## AgoraMediaBase.h

Add:

- add SnapshotConfig

# API (2022-05-24)

## AgoraBase.h

Delete:

- Delete ScreenAudioParameters::allowCaptureCurrentApp for iOS and Android

# API (2022-05-24)

## IAgoraLog.h

Add:

- add enum item `LOG_LEVEL_API_CALL` in LOG_LEVEL

# API (2022-05-16)

## AgoraBase.h

Modified:

- fix enum QUALITY_TYPE

# API (2022-05-15)

Remove AUDIENCE_LATENCY_LEVEL_HIGH_LATENCY. It is only used for argus reporting. No need to expose in public header.

## AgoraBase.h

Deleted: AUDIENCE_LATENCY_LEVEL_TYPE.AUDIENCE_LATENCY_LEVEL_HIGH_LATENCY

# API (2022-05-31)

## AgoraBase.h

Add:

- add enum SIMULCAST_STREAM_MODE

# API (2022-05-11)

## AgoraMediaBase.h

Add:

- add PERMISSION_TYPE::SCREEN_CAPTURE

# API (2022-05-10)

## AgoraMediaBase.h

Add:

- enum WLACC_MESSAGE_REASON
- enum WLACC_SUGGEST_ACTION

# API (2022-05-08)

API changes for Screen Capture

# - enable initWithDisplayId for Windows

# API (2021-05-04)

## AgoraBase.h

Modify:

- add operator function < to VideoFormat

# API (2022-05-01)

[NMS-1572]: add vp9 encoder and decoder.

## AgoraBase.h

Modified:

- VIDEO_CODEC_VP9.

# API (2022-04-22)

## AgoraBase.h

Add:

- add screen capture parameter for mobile platform, ScreenVideoParameters, ScreenAudioParameters and ScreenCaptureParameters2

# API (2022-04-15)

[NMS-1630]: Add start echo test with config.

## AgoraBase.h

Add:

- struct EchoTestConfiguration.

# API (2022-5-09)

## AgoraMediaBase.h

Add:

- enum CONTENT_INSPECT_WORK_TYPE

  ## - enum CONTENT_INSPECT_VENDOR

Modified:

- struct ContentInspectModule

  ## - struct ContentInspectConfig

Deleted:

- struct SnapShotConfig

# API (2022-04-28)

AgoraMediaPlayerTypes.h enum MEDIA_PLAYER_EVENT

add player events PLAYER_EVENT_TRY_OPEN_START = 16, PLAYER_EVENT_TRY_OPEN_SUCCEED = 17, PLAYER_EVENT_TRY_OPEN_FAILED = 18,

# API (2022-4-27)

## AgoraBase.h

Add:

- enum CAPTURE_BRIGHTNESS_LEVEL_TYPE

# API (2022-4-26)

## IAgoraParameter.h

Add:

- KEY_RTC_VIDEO_HARDWARE_ENCODEING che.hardware_encoding
- KEY_RTC_VIDEO_H264_HWENC che.video.h264.hwenc
- KEY_RTC_VIDEO_HARDWARE_DECODING che.hardware_decoding
- KEY_RTC_VIDEO_CODEC_INDEX che.video.videoCodecIndex

# API (2022-4-26)

## AgoraBase.h

Modified:

- Change LOCAL_VIDEO_STREAM_REASON::LOCAL_VIDEO_STREAM_REASON_SYSTEM_PRESSURE value to 9

## AgoraBase.h

Add:

- Add LOCAL_VIDEO_STREAM_REASON::LOCAL_VIDEO_STREAM_REASON_DEVICE_NOT_FOUND

# API (2022-4-7)

Add: add RTMP_STREAM_PUBLISH_REASON_INVALID_PRIVILEGE.

# API (2022-3-28)

## AgoraMediaPlayerTypes.h

Modified:

- Change url[kMaxPathLength] to const char* url
- Change uri[kMaxPathLength] to const char* uri

# API (2022-4-20)

## AgoraMediaBase.h

Modified: Change VIDEO_PIXEL_UNKOWN to VIDEO_PIXEL_DEFAULT IVideoFrameObserver::getVideoPixelFormatPreference, return VIDEO_PIXEL_DEFAULT by default

# API (2022-03-24)

## AgoraMediaBase.h

Add:

- typedef unsigned int video_track_id_t;

# API (2022-04-27)

## AgoraBase.h

Modified:

- change reason REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK trigger by states of
- REMOTE_VIDEO_STATE_FROZEN -> REMOTE_VIDEO_STATE_STOPPED

# API (2022-04-22)

## AgoraBase.h

Add:

- ClientRoleOptions bool stopMicrophoneRecording with default value true

# API (2022-04-20)

## AgoraBase.h

Modified:

- change default value of WatermarkOptions::visibleInPreview : false -> true

# API (2022-04-18)

## IAgoraParameter.h

Deleted: Remove audio related public parameters.

# API (2022-04-14)

## IAgoraMediaPlayerSource.h

# API (2022-04-14)

marked deprecated

- virtual int openWithCustomSource(int64_t startPos, media::base::IMediaPlayerCustomDataProvider* provider) = 0

# API (2022-04-14)

## AgoraOptional.h

Deleted: Fix unuse parameter warnings.

# API (2022-04-13)

## AgoraBase.h

Deleted: Remove AUDIO_SCENARIO_HIGH_DEFINITION for AUDIO_SCENARIO_TYPE

# API (2022-04-15)

## AgoraBase.h

Modified: modify comment

# API (2022-04-20)

## AgoraBase.h

Add:

- SpatialAudioParams::speaker_attenuation

# API (2022-04-14)

add params to struct MediaSource

## IAgoraMediaPlayerSource.h

Add:

- bool autoPlay
- Optional<bool> isAgoraSource
- Optional<bool> isLiveSource
- IMediaPlayerCustomDataProvider* provider

IAgoraMediaPlayerSource.h

# API (2022-04-14)

## AgoraMediaPlayerTypes.h

Change:

- Change some annotation of MediaSource

# API (2021-04-09)

## AgoraBase.h

Add:

- enum EXPERIENCE_POOR_REASON
- RemoteAudioStats.qualityChangedReason

# API (2022-4-1)

## AgoraBase.h

Delete:

- Delete IVideoEncodedImageReceiver

# API (2022-04-27)

Add getAgoraCurrentMonotonicTimeInMs.

## AgoraBase.h

Add:

- AGORA_API int64_t getAgoraCurrentMonotonicTimeInMs()

# API (2022-4-1)

## AgoraMediaBase.h

Add:

- add AgoraOptional.h

# API (2022-04-08)

## AgoraBase.h

Add:

- enum TCcMode
- struct SenderOptions

# API (2022-3-31)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_AUDIO_OBOE_ENABLE_EXCLUSIVE_MODE

# API (2022-3-31)

## AgoraBase.h

Add:

- struct LowlightEnhanceOptions
- struct VideoDenoiserOptions
- struct ColorEnhanceOptions

# API (2022-03-28)

## AgoraMediaBase.h

Add:

- AudioPcmFrame::source_type
- AudioPcmFrame::handle_timing
- IAudioFrameObserverBase::AudioFrame::source_type
- IAudioFrameObserverBase::AudioFrame::handle_time_us

# API (2022-3-24)

## AgoraMediaBase.h

Modified:

- Change VideoSubscribtionOptions vars from raw type to Optional
- Delete a explicit constructor of VideoSubscribtionOptions

# API (2022-3-23)

Add: Add alphaBuffer to VideoFrame.

# API (2022-03-22)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_AUDIO_INPUT_CHANNELS

# API (2022-03-17)

## AgoraMediaBase.h

Add:

- enum AUDIO_FRAME_POSITION
- struct AudioParams

Add Interface for IAudioFrameObserver:

- virtual int getObservedAudioFramePosition() = 0;
- virtual AudioParams getPlaybackAudioParams() = 0;
- virtual AudioParams getRecordAudioParams() = 0;
- virtual AudioParams getMixedAudioParams() = 0;

# API (2022-03-15)

Add field in struct LocalAudioStats

## AgoraBase.h

Modified: add audioDeviceDelay in struct LocalAudioStats

- struct LocalAudioStats
- audioDeviceDelay

# API (2022-03-05)

## AgoraBase.h

Add:

- QUALITY_ADAPT_INDICATION quality_adapt_indication

# API (2022-03-01)

## AgoraBase.h

Add:

- AUDIO_EFFECT_PRESET::ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND

# API (2022-02-28)

## AgoraBase.h

** Del:**

- make CHANNEL_PROFILE_COMMUNICATION_1v1 deprecated

# API (2022-02-28)

## multiple head files

Modified:

- fix param warnings on xcode

# API (2022-02-25)

add HKMC and US Area Code

## AgoraBase.h

Add: add HKMC and US Area Code

# API (2022-02-24)

## AgoraBase.h

Add:

- add LOCAL_AUDIO_STREAM_ERROR_NO_RECORDING_DEVICE
- add LOCAL_AUDIO_STREAM_ERROR_NO_PLAYOUT_DEVICE
- add LOCAL_AUDIO_STREAM_ERROR_INTERRUPTED
- add LOCAL_AUDIO_STREAM_ERROR_RECORD_INVALID_ID
- add LOCAL_AUDIO_STREAM_ERROR_PLAYOUT_INVALID_ID

# API (2022-02-16)

## AgoraBase.h

Add:

- add AUDIO_RECORDING_QUALITY_ULTRA_HIGH for enum AUDIO_RECORDING_QUALITY_TYPE
- add recordingChannel for struct AudioRecordingConfiguration
- Add params SegmentationProperty for virtual background Setting

API (2022-02-11)

# API (2022-01-24)

add function: play and cache at the same time

## AgoraMediaPlayerTypes.h

Add:

- MEDIA_PLAYER_EVENT PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT
- MEDIA_PLAYER_EVENT PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE
- struct CacheStatistics;
- struct MediaSource;

## IAgoraMediaPlayerSource.h

Add:

- virtual int openWithMediaSource(const media::base::MediaSource &source) = 0;

# API (2022-06-23)

## AgoraBase.h

Add:

- Add syncWithPrimaryCamera in LocalTranscoderConfiguration

# API (2021-11-16)

## AgoraBase.h

Modified:

- enum ERROR_CODE_TYPE adds "ERR_INVALID_USER_ACCOUNT = 134"

# API (2022-02-10)

## AgoraBase.h

Add:

- enum AUDIO_SESSION_OPERATION_RESTRICTION

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_AUDIO_KEEP_AUDIOSESSION

# API (2022-02-08)

## AgoraBase.h

Add:

- add struct VideoSubscriptionOptions

# API (2022-01-29)

## AgoraMediaBase.h

Add:

- struct AudioEncodedFrameInfo

# API (2022-02-09)

## AgoraBase.h

Modified:

- struct EncodedVideoFrameInfo(remove renderTimeMs/internalSendTs, add captureTimeMs)
- struct EncodedAudioFrameInfo(add captureTimeMs)

# API (2022-02-14)

## AgoraBase.h

Add:

- enum VIDEO_VIEW_SETUP_MODE::VIDEO_VIEW_SETUP_REPLACE

# API (2022-01-27)

AgoraMediaPlayerTypes.h

## IAgoraMediaPlayerSource.h

Modified:

- enum MEDIA_PLAYER_STATE
- enum MEDIA_PLAYER_REASON
- enum MEDIA_PLAYER_EVENT
- struct PlayerUpdatedInfo
- onPlayerEvent

# API (2022-01-21)

## AgoraBase.h

Modify:

- LOCAL_VIDEO_STREAM_REASON_CAPTURE_INBACKGROUND
- LOCAL_VIDEO_STREAM_REASON_CAPTURE_MULTIPLE_FOREGROUND_APPS
- LOCAL_VIDEO_STREAM_REASON_DEVICE_NOT_FOUND
- LOCAL_VIDEO_STREAM_REASON_DEVICE_DISCONNECTED
- LOCAL_VIDEO_STREAM_REASON_DEVICE_INVALID_ID
- LOCAL_VIDEO_STREAM_REASON_DEVICE_SYSTEM_PRESSURE
- LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_OCCLUDED
- LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED

# API (2021-12-02)

AgoraBase.h

## AgoraMediaBase.h

Modified:

- Change sampleCount in AudioPcmDataInfo to samplesPerChannel and channelNum

# API (2021-12-28)

## AgoraMediaBase.h

Add:

- struct AdvancedAudioOptions
- enum AUDIO_PROCESSING_CHANNELS

# API (2021-12-27)

## AgoraBase.h

Deleted:

- AUDIO_REVERB_PRESET
- VOICE_CHANGER_PRESET

# API (2021-12-20)

## AgoraMediaBase.h

Add: add texture related parameters into VideoFrame. eg: sharedContext,textureId and matrix

# API (2022-02-15)

## AgoraMediaBase.h

Add:

- agora::media::base::IVideoFrameObserver getVideoFormatPreference()

# API (2022-04-20)

## AgoraMediaBase.h

Modify:

- agora::media::base::IVideoFrameObserver getVideoFormatPreference()

# API (2021-12-23)

## AgoraBase.h

Add:

- struct SpatialAudioParams

# API (2021-12-27)

## AgoraBase.h

Add: Update VideoTrackInfo

- `uint32_t observationPosition`;

## AgoraMediaBase.h

Add: Update IVideoFrameObserver

- `bool onPreEncodeVideoFrame(VideoFrame& videoFrame)`
- `bool onSecondaryPreEncodeCameraVideoFrame(VideoFrame& videoFrame)`
- `bool onPreEncodeScreenVideoFrame(VideoFrame& videoFrame)`
- `bool onSecondaryPreEncodeScreenVideoFrame(VideoFrame& videoFrame)`
- `uint32_t getObservedFramePosition()`

# API (2021-12-20)

## AgoraMediaBase.h

Add: add texture related parameters matrix into ExternalVideoFrame.

# API (2021-12-10)

## AgoraBase.h

Add:

- QUALITY_ADAPT_INDICATION quality_adapt_indication

# API (2022-04-20)

## AgoraMediaBase.h

Add:

- IAudioFrameObserverBase::onEarMonitoringAudioFrame
- IAudioFrameObserverBase::getEarMonitoringAudioParams

# API (2021-12-10)

## AgoraBase.h

Add:

- CONNECTION_CHANGED_SAME_UID_LOGIN = 19
- CONNECTION_CHANGED_TOO_MANY_BROADCASTERS = 20
- enum CLIENT_ROLE_CHANGE_FAILED_REASON

# API (2021-12-27)

## AgoraBase.h

Add: RTMP_STREAM_UNPUBLISH_REASON_OK = 100

# API (2021-12-24)

## IAgoraMediaPlayerSource.h

Add:

- onAudioVolumeIndication

# API (2021-12-20)

## AgoraMediaBase.h

Add: add texture related parameters into VideoFrame. eg: sharedContext,textureId and matrix

# API (2020-12-02)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_AUDIO_OBOE_ENABLE
- Add new key KEY_RTC_AUDIO_ENABLE_HARDWARE_EAR_MONITOR

# API (2021-12-02)

support AES-XTS/AES-GCM/AES-ECB for media packet encryption

## AgoraBase.h

Add: ENCRYPTION_MODE

- AES_128_XTS
- AES_128_ECB
- AES_256_XTS
- AES_128_GCM
- AES_256_GCM

# API (2021-12-1)

AgoraBase.h Modify LiveTranscoding:add mutiple watermark and background image

Add: add AdvancedFeature

# API (2021-11-30)

## AgoraBase.h

Modified:

- move enum REMOTE_USER_STATE from NGIAgoraLocalUser.h to AgoraBase.h.

# API (2021-11-24)

AgoraBase.h AgoraMediaBase.h Modify

- Replace tab with spaces
- Adjust code indent

# API (2021-11-24)

AgoraBase.h Add:

- enum EXPERIENCE_QUALITY_TYPE
- RemoteAudioStats.qoeQuality

# API (2021-11-17)

## AgoraBase.h

Add:

- struct DeviceInfo

# API (2021-11-02)

## AgoraBase.h

Modify

- Make parameter const in copy assignment function

# API (2021-10-29)

## AgoraBase.h

Add

- AGORA_IID_CLOUD_SPATIAL_AUDIO
- AGORA_IID_LOCAL_SPATIAL_AUDIO

# API (2021-11-16)

## IAgoraMediaPlayerSource.h

Modified:

- virtual void onPlayerInfoUpdated(const media::base::PlayerUpdatedInfo& info) = 0;

## AgoraMediaPlayerTypes.h

Add:

- PlayerUpdatedInfo

# API (2021-10-29)

## IAgoraMediaPlayerSource.h

Modified:

- virtual void onPlayerInfoUpdated(const media::base::PlayerUpdatedInfo& info) = 0;

## AgoraMediaPlayerTypes.h

Add:

- PlayerUpdatedInfo

# API (2021-10-22)

## AgoraBase.h

Add:

- LOCAL_VIDEO_STREAM_REASON.LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_MINIMIZED = 11
- LOCAL_VIDEO_STREAM_REASON.LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_CLOSED = 12

# API (2021-10-19)

## AgoraBase.h

Modified:

- Change the structure name from AudioFileRecordingConfig to AudioRecordingConfiguration

# API (2020-09-29)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_AUDIO_FORCE_BLUETOOTH_A2DP
- Add new key KEY_RTC_AUDIO_USE_MEDIA_VOLUME_IN_BLUETOOTH

# API (2021-09-27)

## AgoraMediaBase.h

Add:

- agora::media::base::IVideoFrameObserver getVideoPixelFormatPreference()

# API (2021-10-12)

## AgoraBase.h

Add:

- double voicePitch for struct AudioVolumeInfo

# API (2021-10-11)

Add: AUDIENCE_LATENCY_LEVEL_TYPE.AUDIENCE_LATENCY_LEVEL_HIGH_LATENCY = 3

# API (2021-09-26)

## AgoraMediaBase.h

Add:

- Add EXTERNAL_VIDEO_SOURCE_TYPE

# API (2021-09-30)

delete rtc.enable_built_in_media_encryption

## IAgoraParameter.h

Deleted:

- rtc.enable_built_in_media_encryption

# API (2021-10-09)

add new enum in MPK module add new parameter in onPlayerEvent

## AgoraMediaPlayerTypes.h

Add:

- PLAYER_PRELOAD_EVENT:PLAYER_PRELOAD_EVENT_BEGIN
- PLAYER_PRELOAD_EVENT:PLAYER_PRELOAD_EVENT_COMPLETE
- PLAYER_PRELOAD_EVENT:PLAYER_PRELOAD_EVENT_ERROR
- MEDIA_PLAYER_EVENT:PLAYER_EVENT_SWITCH_BEGIN
- MEDIA_PLAYER_EVENT:PLAYER_EVENT_SWITCH_COMPLETE
- MEDIA_PLAYER_EVENT:PLAYER_EVENT_SWITCH_ERROR
- MEDIA_PLAYER_EVENT:PLAYER_EVENT_FIRST_DISPLAYED
- MEDIA_PLAYER_EVENT:PLAYER_EVENT_IDS_UPDATE

## IAgoraMediaPlayerSource.h

Add:

- Add new parameter `int64_t elapsedTime`
- Add new parameter `const char* message`
- onPlayerEvent()
- int openWithAgoraCDNSrc(const char* src, int64_t startPos)
- int getAgoraCDNLineCount()
- int switchAgoraCDNLineByIndex(int index)
- int getCurrentAgoraCDNIndex()
- int enableAutoSwitchAgoraCDN(bool enable)
- int renewAgoraCDNSrcToken(const char* token, int64_t ts)
- int switchAgoraCDNSrc(const char* src, bool syncPts = false)
- int switchSrc(const char* src, bool syncPts)
- int preloadSrc(const char* src, int64_t startPos)
- int playPreloadedSrc(const char* src)

# API (2021-11-6)

Add gateway rtt in Rtcstats

## AgoraBase.h

# API (2021-09-23)

Add copy assignment operator and copy constructor

## AgoraBase.h

Add:

- EncodedVideoFrameInfo& operator=(const EncodedVideoFrameInfo& rhs)
- VideoEncoderConfiguration& operator=(const VideoEncoderConfiguration& rhs)

## AgoraMediaBase.h

Add:

- AudioPcmFrame(const AudioPcmFrame& src)

# API (2021-09-17)

## time_utils.h

Modified:

- C98 standard update

# API (2021-09-24)

## AgoraBase.h

Add:

- Add struct VirtualBackgroundSource for virtual background Setting

# API (2021-09-03)

## AgoraBase.h

Add:

- Add RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS for CHANNEL_MEDIA_RELAY_EVENT
- Add RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED for CHANNEL_MEDIA_RELAY_EVENT
- Add RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS for CHANNEL_MEDIA_RELAY_EVENT
- Add RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED for CHANNEL_MEDIA_RELAY_EVENT

# API (2021-09-02)

## AgoraBase.h

Add:

- Add thread priority definition

# API (2021-08-12)

add time_utils.h

## time_utils.h

Add:

- add class NtpTime

# API (2021-10-19)

## AgoraBase.h

Deleted:

- AudioVolumeInfo.userId

# API (2021-09-15)

## IAgoraParameter.h

Add:

- Add KEY_RTC_VIDEO_HW_DECODER_PROVIDER

# API (2021-08-21)

## AgoraBase.h

Add:

- Add ULTRA_HIGH_QUALITY_VOICE for VOICE_BEAUTIFIER_PRESET

# API (2021-08-27)

Update class IVideoFrameObserver

## AgoraMediaBase.h

Modified:

- Changes int getRotationApplied() to bool getRotationApplied()

# API (2021-09-24)

## AgoraBase.h

Modified: Update TranscodingVideoStream

- Changes sourceType from `VIDEO_SOURCE_TYPE` to `MEDIA_SOURCE_TYPE`

## AgoraMediaBase.h

Add: Update MEDIA_SOURCE_TYPE

- Add AUDIO_PLAYOUT_SOURCE = 0,
- Add AUDIO_RECORDING_SOURCE = 1,
- Add PRIMARY_CAMERA_SOURCE = 2,
- Add SECONDARY_CAMERA_SOURCE = 3,
- Add PRIMARY_SCREEN_SOURCE = 4,
- Add SECONDARY_SCREEN_SOURCE = 5,
- Add CUSTOM_VIDEO_SOURCE = 6,
- Add MEDIA_PLAYER_SOURCE = 7,
- Add RTC_IMAGE_PNG_SOURCE = 8,
- Add RTC_IMAGE_JPEG_SOURCE = 9,
- Add RTC_IMAGE_GIF_SOURCE = 10,
- Add REMOTE_VIDEO_SOURCE = 11,
- Add TRANSCODED_VIDEO_SOURCE = 12,
- Add UNKNOWN_MEDIA_SOURCE = 100

# API (2021-08-05)

Add a non-const version of operator->

## AgoraOptional.h

Add:

- T* Optional::operator->()

# API (2021-07-29)

Add types of enum REMOTE_VIDEO_STATE_REASON Add client role options

## AgoraBase.h

Add:

- REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_LOW = 10,
- REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_HIGH = 11,
- enum AUDIENCE_LATENCY_LEVEL_TYPE
- struct ClientRoleOptions

# API (2021-07-15)

Add types of enum REMOTE_VIDEO_STATE_REASON

## AgoraBase.h

Add:

- REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_LOW = 10,
- REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_HIGH = 11,

# API (2021-07-20)

## AgoraBase.h

Add:

- Add struct BeautyOptions for Beauty Parameter Setting

# API (2021-07-19)

## AgoraMediaBase.h

Modified:

- onPlaybackAudioFrameBeforeMixing(uid_t uid, AudioFrame& audioFrame) to onPlaybackAudioFrameBeforeMixing(base::user_id_t userId, AudioFrame& audioFrame)

  # API (2021-07-15)

## AgoraMediaBase.h

Add:

- add AUDIO_DUAL_MONO_MODE

# API (2021-08-30)

## AgoraMediaBase.h

Add:

- add enum CONTENT_INSPECT_TYPE
- add struct ContentInspectModule
- add struct ContentInspectConfig
- add struct SnapShotConfig
- add class ISnapshotCallback

# API (2021-07-06)

## AgoraMediaBase.h

Modified:

- void onFrame(AudioPcmFrame* frame)

# API (2021-06-18)

Add methods for media player source

## IAgoraMediaPlayerSource.h

Add:

- add method muteAudio()
- add method isAudioMuted()
- add method muteVideo()
- add method isVideoMuted()

# API (2021-06-15)

Add methods for streaming source interfance and observer

## IAgoraMediaStreamingSource.h

Add:

- add method IMediaStreamingSource::parseMediaInfo()
- add method IMediaStreamingSourceObserver::onOpenDone()
- add method IMediaStreamingSourceObserver::onSeekDone()

# API (2021-08-16)

## AgoraBase.h

Add:

- VideoTrackInfo.channelId

Delete:

- RtcStats.connectionId
- VideoTrackInfo.connectionId
- TranscodingVideoStream.connectionId

## AgoraMediaBase.h

Modified:

- bool onRenderVideoFrame(rtc::uid_t uid, rtc::conn_id_t connectionId, VideoFrame& videoFrame) to bool onRenderVideoFrame(const char* channelId, rtc::uid_t remoteUid, VideoFrame& videoFrame)

# API (2021-07-21)

## AgoraBase.h

Add:

- add ERR_NO_SERVER_RESOURCES to ERROR_CODE_TYPE

# API (2021-09-15)

## AgoraBase.h

Add:

- AUDIO_CODEC_TYPE.AUDIO_CODEC_LPCNET

# API (2021-07-21)

## AgoraMediaBase.h

Add:

- class IAudioFrameObserverBase
- onPlaybackAudioFrameBeforeMixing(base::user_id_t userId, AudioFrame& audioFrame)

# API (2021-11-09)

## AgoraBase.h

Add:

- RemoteAudioStats.totalActiveTime
- RemoteAudioStats.publishDuration

# API (2020-07-06)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_AUDIO_FORCE_USE_MEDIA_VOLUME

# API (2021-06-07)

Rename AES-GCM to AES-GCM2

# API (2021-07-06)

## AgoraMediaBase.h

Add:

- Add AudioRoute::ROUTE_HDMI
- Add AudioRoute::ROUTE_USB

## AgoraBase.h

Modified:

- rename ENCRYPTION_MODE::AES_128_GCM to ENCRYPTION_MODE::AES_128_GCM2
- rename ENCRYPTION_MODE::AES_256_GCM to ENCRYPTION_MODE::AES_256_GCM2

# API (2020-05-31)

Parse media info from url.

## IAgoraMediaStreamingSource.h

Add:

- ParseMediaInfo

# API (2021-05-25)

adding operator== function for VideoDimensions and SimulcastStreamConfig

## AgoraBase.h

Add:

- bool operator==(const VideoDimensions& rhs) const
- bool operator==(const SimulcastStreamConfig& rhs) const

# API (2020-05-24)

Support compute audio spectrum.

## AgoraMediaBase.h

Modified:

- Update comments

# API (2021-05-22)

Modify note of AUDIO_SCENARIO_TYPE::AUDIO_SCENARIO_CHATROOM

## AgoraBase.h

Modified:

- note of AUDIO_SCENARIO_TYPE::AUDIO_SCENARIO_CHATROOM

# API (2021-06-02)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_ENABLE_BUILT_IN_MEDIA_ENCRYPTION

# API (2020-05-15)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_AUDIO_INPUT_SAMPLE_RATE

# API (2020-05-13)

Support compute audio spectrum.

## AgoraMediaBase.h

Modified:

- struct UserAudioSpectrumInfo
- IAudioSpectrumObserver

# API (2021-05-12)

## IAgoraParameter.h

Add: Add parameter key KEY_RTC_AUDIO_MAX_TARGET_DELAY

# API (2020-05-11)

Support Freeze check on media player based ffmpeg.

## AgoraMediaPlayerTypes.h

Add: Add in definition of MEDIA_PLAYER_EVENT

- PLAYER_EVENT_FREEZE_START
- PLAYER_EVENT_FREEZE_STOP

# API (2021-05-10)

Add some protection

## AgoraBase.h

Modified:

- DownlinkNetworkInfo

# API (2021-05-06)

Add switches for c++11 features

# API (2020-05-05)

Support R/W recording audio frame observer.

## AgoraMediaBase.h

Modified: Move in definition of RAW_AUDIO_FRAME_OP_MODE_TYPE

# API (2021-05-06)

Delete RemoteVideoStreamInfo and refine DownlinkNetworkInfo.

## AgoraBase.h

Deleted:

- RemoteVideoStreamInfo

Modified:

- refine DownlinkNetworkInfo.

# API (2020-04-30)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_AUDIO_OPENSL_MODE

# API (2020-04-29)

## AgoraBase.h

Add:

- AUDIO_SCENARIO_TYPE::AUDIO_SCENARIO_CHORUS

# API (2021-04-30)

## AgoraBase.h

Add:

- LOCAL_VIDEO_STREAM_REASON::LOCAL_VIDEO_STREAM_REASON_BACKGROUD
- LOCAL_VIDEO_STREAM_REASON::LOCAL_VIDEO_STREAM_REASON_MULTIPLE_FOREGROUND_APPS
- LOCAL_VIDEO_STREAM_REASON::LOCAL_VIDEO_STREAM_REASON_SYSTEM_PRESSURE

# API (2023-02-15)

## AgoraBase.h

Add:

- RemoteAudioStats.rxAudioBytes

# API (2021-04-28)

## AgoraBase.h

Add:

- Add field mosValue for struct RemoteAudioStats

# API (2021-04-20)

Support AES-GCM encryption for media packet

## AgoraBase.h

Add:

- ENCRYPTION_MODE::AES_128_GCM
- ENCRYPTION_MODE::AES_256_GCM
- EncryptionConfig::encryptionKdfSalt

# API (2020-04-19)

Add copy assignment for AudioPcmFrame.

## AgoraMediaBase.h

Add: Add AudioPcmFrame & operator=(const AudioPcmFrame & src)

# API (2020-04-19)

Add audio effect preset enum.

## AgoraBase.h

Add: Add VOICE_BEAUTIFIER_PRESET, AUDIO_EFFECT_PRESET, VOICE_CONVERSION_PRESET

# API (2020-08-30)

Add audio effect preset enum.

## AgoraBase.h

Add: Add VOICE_CONVERSION_PRESET

# API (2021-04-16)

## AgoraMediaBase.h

Add:

- Add new struct AudioSpectrumInfo
- Add new interface IAudioSpectrumObserver

  # API (2021-04-07)

## AgoraBase.h

Add:

- add AudioEncodedFrameObserverConfig
- add IAudioEncodedFrameObserver

# API (2021-04-15)

Add support for win arm64

## AgoraBase.h

Add:

- Add support for win arm64

Deleted:

- ENCRYPTION_MODE::AES_128_XTS
- ENCRYPTION_MODE::AES_128_ECB
- ENCRYPTION_MODE::AES_256_XTS

# API (2021-04-15)

add chatroom audio scenario

## AgoraBase.h

Deleted:

- Deleted enum AUDIO_SCENARIO_TYPE::AUDIO_SCENARIO_CHATROOM_ENTERTAINMENT
- Deleted enum AUDIO_SCENARIO_TYPE::AUDIO_SCENARIO_EDUCATION
- Deleted enum AUDIO_SCENARIO_TYPE::AUDIO_SCENARIO_SHOWROOM

Modify:

- modify enum AUDIO_SCENARIO_TYPE::AUDIO_SCENARIO_CHATROOM_GAMING to AUDIO_SCENARIO_TYPE::AUDIO_SCENARIO_CHATROOM

# API (2021-04-06)

## AgoraMediaBase.h

Add:

- Add new interface IVideoEncodedFrameObserver

# API (2021-03-31)

## IAgoraMediaStreamingSource.h

Add:

- add interface IMediaStreamingSource

# API (2021-03-26)

Add new parameters in ScreenCaptureParameters

## AgoraBase.h

Add:

- Add new parameter `bool captureMouseCursor`
- Add new parameter `bool windowFocus`

# API (2021-03-24)

## AgoraBase.h

Add:

- add struct EAR_MONITORING_FILTER_TYPE

## API file name #2

# API (2021-04-22)

## AgoraMediaPlayerTypes.h

Add:

- Add new enum value MEDIA_PLAYER_REASON::PLAYER_REASON_NO_PERMISSION
- Add new enum value MEDIA_PLAYER_REASON::PLAYER_REASON_INTERRUPTED

# API (2020-04-01)

add MEDIA_PLAYER_EVENT enum and api in AgoraMediaPlayerTypes.h

## AgoraMediaPlayerTypes.h

Add:

- add PLAYER_EVENT_BUFFER_LOW and PLAYER_EVENT_BUFFER_RECOVER

## IAgoraMediaPlayerSource.h

Add:

- setPlayerOption
- onPlayBufferUpdated

# API (2020-03-26)

modify struct VideoTrackInfo

# API (2021-03-25)

## AgoraBase.h

Add:

- add DataStreamConfig

# API (2020-03-19)

modify to adapt c++ 11

# API (2021-03-11)

## AgoraBase.h

Add:

- add err_num : ERR_PCMSEND_FORMAT and ERR_PCMSEND_BUFFEROVERFLOW

# API (2021-03-09)

Modify PLAYER_STATE_STOPPED

## AgoraMediaPlayerTypes.h

Modify:

- PLAYER_STATE_STOPPED

# API (2021-03-09)

Add new parameters in ScreenCaptureParameters

## AgoraBase.h

Add:

- Add new parameter `view_t *excludeWindowList`
- Add new parameter `int excludeWindowCount`

# API (2021-02-19)

Add VIDEO_CODEC_GENERIC_JPEG enum Add parameter key

## AgoraBase.h

Add:

- Add VIDEO_CODEC_GENERIC_JPEG

## IAgoraParameter.h

Add: Add parameter key KEY_RTC_VIDEO_CODEC_TYPE

# API (2021-01-28)

Add new configurable keys

## IAgoraParameter.h

Add:

- Add new key KEY_RTC_VIDEO_HW_ENCODER_PROVIDER

# API (2021-11-17)

## AgoraMediaBase.h

Modified:

- IAudioFrameObserverBase::onRecordAudioFrame(const char* channelId, AudioFrame& audioFrame)
- IAudioFrameObserverBase::onPlaybackAudioFrame(const char* channelId, AudioFrame& audioFrame)
- IAudioFrameObserverBase::onMixedAudioFrame(const char* channelId, AudioFrame& audioFrame)
- IAudioFrameObserverBase::onPlaybackAudioFrameBeforeMixing(const char* channelId, base::user_id_t userId, AudioFrame& audioFrame)
- IAudioFrameObserver::onPlaybackAudioFrameBeforeMixing(const char* channelId, rtc::uid_t uid, AudioFrame& audioFrame)

# API (2021-01-12)

Change definition of bytes_per_sample without channel

## AgoraMediaBase.h

Add:

- enum BYTES_PER_SAMPLE

Modified:

- change param type of AudioFrame::bytesPerSample from size_t to enum BYTES_PER_SAMPLE

# API (2021-01-21)

Change enum order

## AgoraBase.h

Modified:

- Change the order of VIDEO_SOURCE_CUSTOM and VIDEO_SOURCE_MEDIA_PLAYER

## API file name #2

API (2021-03-03)

# API (2020-12-24)

## AgoraMediaBase.h

Add:

- enum MAX_METADATA_SIZE_TYPE
- Add metadata_buffer and metadata_size for struct ExternalVideoFrame

# API (2020-12-11)

## AgoraBase.h

Modified: getAograCertificateVerifyResult —> getAgoraCertificateVerifyResult

# API (2020-12-07)

## AgoraBase.h

Add:

- int createAgoraCredential(agora::util::AString &credential);
- int AGORA_CALL getAograCertificateVerifyResult(const char <em>credential_buf, int credential_len, const char *certificate_buf, int certificate_len);
- void setAgoraLicenseCallback(agora::base::LicenseCallback *callback);
- agora::base::LicenseCallback getAgoraLicenseCallback();

Deleted: License's API

- int agora_genCredential(agora::util::AString &credential, const char <em>path)
- int agora_verifyCertificate(const char *cert, const char *path);
- void agora_registerLicenseCallback(agora::base::LicenseCallback callback);
- void agora_unregisterLicenseCallback();

# API (2020-12-21)

Add:

## AgoraBase.h

- Add enum STREAM_SUBSCRIBE_STATE
- Add enum STREAM_PUBLISH_STATE

# API (2020-10-16)

Modify the comments of DEGRADATION_PREFERENCE.

## AgoraBase.h

Modify:

- enum DEGRADATION_PREFERENCE

# API (2020-10-12)

Add camera direction for configuration.

## AgoraBase.h

Add:

- enum CAMERA_DIRECTION
- struct CameraCapturerConfiguration

# API (2020-09-28)

Add mirror mode to VideoEncoderConfiguration.

## AgoraBase.h

Add:

- Mirror mode (VIDEO_MIRROR_MODE_TYPE) in VideoEncoderConfiguration

# API (2020-09-27)

Add mirror mode to VideoCanvas.

## AgoraBase.h

Add:

- Mirror mode (VIDEO_MIRROR_MODE_TYPE) in VideoCanvas

# API (2021-02-02)

Add DownlinkNetworkInfo and modify NetworkInfo

## AgoraBase.h

Add:

- struct DownlinkNetworkInfo

Modified:

- Changes struct NetworkInfo to struct UplinkNetworkInfo

# API (2020-09-23)

## AgoraBase.h

Add:

- Add VIDEO_SOURCE_MEDIA_PLAYER for enum VIDEO_SOURCE_TYPE
- Add field priv_size for struct VideoCanvas

## AgoraMediaBase.h

Add:

- Add onMediaPlayerVideoFrame() member function for IVideoFrameObserver

# API (2020-11-25)

Modify REMOTE_VIDEO_STREAM_TYPE.

## AgoraBase.h

Add:

- enum VIDEO_STREAM_TYPE

Deleted:

- Deleted enum REMOTE_VIDEO_STREAM_TYPE

Modified:

- Changes Add VIDEO_STREAM_TYPE streamType to EncodedVideoFrameInfo

# API (2020-11-24)

Add tx/rxPacketLossRate in RtcStats.

## AgoraBase.h

Add:

- RtcStats::txPacketLossRate
- RtcStats::rxPacketLossRate

API (2020-11-14)

## AgoraMediaPlayerTypes.h

Add:

# - MEDIA_PLAYER_STATE::PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED

# API (2020-11-12)

- CHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING2

## AgoraBase.h

CHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING2

API (2020-11-09)

## AgoraBase.h

Add: License's API

- int agora_genCredential(agora::util::AString &credential, const char <em>path)
- int agora_verifyCertificate(const char *cert, const char *path);
- void agora_registerLicenseCallback(agora::base::LicenseCallback callback);
- void agora_unregisterLicenseCallback();

License's Callback

- class LicenseCallback;

Modified: License's Error Code Types

- ERR_LICENSE_CREDENTIAL_INVALID = 131,
- ERR_CERT_RAW = 157,
- ERR_CERT_JSON_PART = 158,
- ERR_CERT_JSON_INVAL = 159,
- ERR_CERT_JSON_NOMEM = 160,
- ERR_CERT_CUSTOM = 161,
- ERR_CERT_CREDENTIAL = 162,
- ERR_CERT_SIGN = 163,
- ERR_CERT_FAIL = 164,
- ERR_CERT_BUF = 165,
- ERR_CERT_NULL = 166,
- ERR_CERT_DUEDATE = 167,
- ERR_CERT_REQUEST = 168,

# API (2020-09-04)

## AgoraBase.h

Modified: Refine AGORA_API definitions to keep aligned with agora_api.h

## AgoraRefPtr.h

Modified: Add operator*().

## IAgoraLog.h

Modified: Add log related constants.

## IAgoraMediaPlayerSource.h

Modified: Change the 'int' parameters to 'int64_t' to keep aligned with the other APIs.

# API (2020-09-09)

Modify EncodedVideoFrameInfo.

## AgoraBase.h

Modify: Modify EncodedVideoFrameInfo.

- Remove packetizationMode.

# API (2020-09-11)

Add enum NETWORK_TYPE.

## AgoraBase.h

Add:

- enum NETWORK_TYPE

# API (2020-09-04)

Add more methods to IVideoFrameObserver.

## AgoraMediaBase.h

Modified:

- Changes Add getVideoFormatPreference/getRotationApplied/getMirrorApplied to IVideoFrameObserver

# API (2020-09-03)

## AgoraBase.h

Modified: add members of RtcStats

- packetsBeforeFirstKeyFramePacket
- firstAudioPacketDurationAfterUnmute
- firstVideoPacketDurationAfterUnmute
- firstVideoKeyFramePacketDurationAfterUnmute
- firstVideoKeyFrameDecodedDurationAfterUnmute
- firstVideoKeyFrameRenderedDurationAfterUnmute

# API (2020-08-19)

## AgoraMediaBase.h

Add: OpenGL type

- enum EGL_CONTEXT_TYPE

Add: Video Buffer types

- VIDEO_BUFFER_TYPE::VIDEO_BUFFER_ARRAY
- VIDEO_BUFFER_TYPE::VIDEO_BUFFER_TEXTURE

Add: Texture related parameter

- ExternalVideoFrame::eglContext
- ExternalVideoFrame::eglType
- ExternalVideoFrame::textureId

# API (2020-08-14)

Add enum

## AgoraBase.h

Add: Add enum

- VIDEO_SOURCE_TYPE

# API (2020-08-04)

## AgoraBase.h

Add:

- AUDIO_CODEC_TYPE::AUDIO_CODEC_G722
- AUDIO_PROFILE_TYPE::AUDIO_PROFILE_IOT

# API (2020-07-29)

## AgoraMediaBase.h

Add `struct AudioParameters` Rename some fields of `struct AudioPcmFrame`

# API (2020-07-14)

## IAgoraMediaPlayerSource.h

Modify: Change include dir.

# API (2020-07-06)

## AgoraBase.h

Modify: Change include dir.

# API (2020-07-01)

## AgoraBase.h

Modify: Remove string UID.

# API (2020-06-27)

Make include path correct

# API (2020-06-18)

Modify EncodedVideoFrameInfo.

## AgoraBase.h

Modify: Modify EncodedVideoFrameInfo.

- Remove packetizationMode.

API (2020-06-17) Change namespace to avoid confliect with media_server_library

## AgoraOptional.h

Modified: Change namespace

- Changes base::Optional to base_utils::Optional

# API (2020-06-17)

Fix header file macro

## AgoraOptional.h

Add: Add string_value to Optional

- Optional::string_value()

Modified:

- `BASE_OPTIONAL_H_` to `AGORA_OPTIONAL_H_`

# API (2020-05-29)

Updated docs for the following header files:

- AgoraBase.h
- AgoraMediaBase.h

# API (2020-06-22)

## IAgoraMediaPlayerSource.h

Modified:

- setLooping(bool looping) to setLoopCount(int loopCount)

# API (2020-06-10)

Add NetworkInfo for feedback to user

## AgoraBase.h

Add: Add NetworkInfo

- struct NetworkInfo

# API (2020-06-08)

## IAgoraMediaPlayerSource.h

Add: Add new Api in Media Player

- takeScreenshot()
- selectInternalSubtitle()
- setExternalSubtitle()

# API (2020-06-08)

## AgoraBase.h

Modified:

- REMOTE_VIDEO_STREAM_STATE rename to REMOTE_VIDEO_STATE
- Changes REMOTE_VIDEO_STATE_PLAYING to REMOTE_VIDEO_STATE_DECODING

REMOTE_VIDEO_STATE_REASON

- REMOTE_VIDEO_STATE_REASON_INTERNAL
- REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION
- REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY
- REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED
- REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED
- REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED
- REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED
- REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE
- REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK
- REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY

# API (2020-06-03)

Move IAgoraMediaPlayerSource.h from api2 to here, and add getSourceId() for IMediaPlayerSource

Add:

## AgoraMediaBase.h

Add enum MEDIA_PLAYER_SOURCE_TYPE.

# API (2020-05-31)

## AgoraMediaBase.h

Add:

- Add enum MEDIA_PLAYER_PLAYBACK_SPEED.

## IAgoraMeidaPlayerSource.h

Add: Add new Api in Media Player

- setPlaybackSpeed()
- selectAudioTrack()
- setPlayerOption()

## AgoraMeidaPlayerTypes.h

Add: Move Media Player related declaration from AgoraMediaBase.h to AgoraMeidaPlayerTypes.h

- enum MEDIA_PLAYER_STATE
- enum MEDIA_PLAYER_REASON
- enum MEDIA_PLAYER_PLAYBACK_SPEED
- enum MEDIA_STREAM_TYPE
- enum MEDIA_PLAYER_EVENT
- struct MediaStreamInfo
- enum MEDIA_PLAYER_METADATA_TYPE

## AgoraMediaBase.h

Delete: Move Media Player related declaration from AgoraMediaBase.h to AgoraMeidaPlayerTypes.h

- enum MEDIA_PLAYER_STATE
- enum MEDIA_PLAYER_REASON
- enum MEDIA_PLAYER_PLAYBACK_SPEED
- enum MEDIA_STREAM_TYPE
- enum MEDIA_PLAYER_EVENT
- struct MediaStreamInfo
- enum MEDIA_PLAYER_METADATA_TYPE

# API (2020-06-09)

Modify PacketOptions.

## AgoraMediaBase.h

Modified: Add audioLevelIndication into PacketOptions.

- PacketOptions: Add member audioLevelIndication

# API (2020-05-28)

Modify VideoEncoderConfiguration and VIDEO_CODEC_TYPE

## AgoraBase.h

Modified:

- Add member enableGenericH264 for VideoEncoderConfiguration
- Add new type VIDEO_CODEC_GENERIC(6) for enum VIDEO_CODEC_TYPE
- Add new type VIDEO_FRAME_TYPE_DROPPABLE_FRAME(6) for enum VIDEO_FRAME_TYPE

# API (2020-05-22)

Add:

## AgoraMediaBase.h

Add enum VIDEO_OBSERVER_POSITION.

# API (2020-05-12)

Add:

## AgoraMediaBase.h

Add data member videoRotation in struct MediaStreamInfo.

# API (2020-05-12)

Add lastmile and connection state enum

## AgoraBase.h

Add: Add lastmile and connection state enum

- enum LASTMILE_PROBE_RESULT_STATE
- struct LastmileProbeOneWayResult
- struct LastmileProbeResult
- struct LastmileProbeConfig
- enum CONNECTION_CHANGED_REASON_TYPE
- struct LastmileProbeConfig
- enum AUDIO_REVERB_PRESET
- struct ScreenCaptureParameters
- enum VOICE_CHANGER_PRESET

API (2020-05-09)

## AgoraBase.h

Add: Add AUDIO_SCENARIO_HIGH_DEFINITION for AUDIO_SCENARIO_TYPE

# API (2021-05-26)

Add:

## AgoraBase.h

Add enum DISABLE to disable VQC to DEGRADATION_PREFERENCE

# API (2021-09-15)

## AgoraBase.h

Add: Add renderer struct and enum

- Enum VIDEO_VIEW_SETUP_MODE

Add: Add Struct for Fish Correction

- Struct FishCorrectionParams

# API (2021-09-24)

## AgoraBase.h

Modify: moidfy enableAudioVolumeIndication support vad

# API (2022-03-25)

## AgoraBase.h

Add: Add AUDIO_SCENARIO_MEETING to enum AUDIO_SCENARIO_TYPE

## AgoraMediaBase.h

Add: Add ROUTE_DISPLAYPORT and ROUTE_AIRPLAY to enum AudioRoute

# API (2022-04-29)

## AgoraBase.h

Delete: Delete useless iOS adm error code

# API (2022-05-09)

## AgoraBase.h

Add

- AGORA_IID_MEDIA_RECORDER

## AgoraMediaBase.h

Add: Add Struct adn Enum for MediaRecorder

- Enum MediaRecorderContainerFormat
- Enum MediaRecorderStreamType
- Enum RecorderState
- Enum RecorderErrorCode
- Struct MediaRecorderConfiguration
- Struct RecorderInfo
- Class IMediaRecorderObserver

# API (2022-06-07)

## AgoraBase.h

Add:

REMOTE_VIDEO_STATE_REASON

- REMOTE_VIDEO_STATE_REASON_SDK_IN_BACKGROUND

# API (2022-05-16)

## AgoraBase.h

Add

- ScreenCaptureParameters add highLightColor,highLightWidth,enableHighLight

# API (2021-06-09)

## AgoraMediaBase.h

Modified:

- virtual void OnEncodedVideoFrameReceived (rtc::uid_t uid, const uint8_t* imageBuffer, size_t length,const rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo) = 0;

# API (2021-06-29)

## AgoraBase.h

Delete:

- delete FishCorrectionParams

# API (2022-01-15)

## AgoraBase.h

Add:

- Add AGORA_IID_STATE_SYNC, AGORA_IID_METACHAT_SERVICE

# API (2023-01-30)

## AgoraBase.h

Add:

- enum SCREEN_CAPTURE_FRAMERATE_CAPABILITY

# API (2022-08-29)

## AgoraBase.h

Modified:

- ScreenCaptureParameters highLightColor,highLightWidth,enableHighLight delete macOS only

# API (2023-01-30)

## AgoraBase.h

Add:

- enum SCREEN_CAPTURE_FRAMERATE_CAPABILITY

# API (2023-03-20)

## AgoraEnumerates.h

Modified:

- AgoraAudioOutputRoutingUsb = 6,
- AgoraAudioOutputRoutingHdmi = 7,

# API (2023-03-21)

## AgoraBase.h

Modified:

- Update VideoEncoderConfiguration.bitrate annotation

# API (2023-05-15)

## AgoraBase.h

Modified:

- update AGORA_IID_METACHAT_SERVICE to AGORA_IID_META_SERVICE

# API (2023-05-31)

## AgoraBase.h

Add:

- int queryDeviceScore

# API (2023-08-08)

## AgoraBase.h

Add:

- struct VideoLayout

# API (2023-09-21)

## AgoraBase.h

Modify:

# - struct VideoLayout

## AgoraBase.h

Modify:

- struct setVideoEncoderConfiguration

# API (2024-01-18)

## AgoraBase.h

Modify:

- LOCAL_VIDEO_STREAM_ERROR_DEVICE_INTERRUPT
- LOCAL_VIDEO_STREAM_ERROR_DEVICE_FATAL_ERROR

## - IAgoraParameter.h

Remove: Remove parameter key KEY_RTC_VIDEO_CODEC_TYPE

# API (2024-02-23)

## AgoraBase.h update annotation

- REMOTE_AUDIO_REASON_NO_PACKET_RECEIVE
- REMOTE_AUDIO_REASON_LOCAL_PLAY_FAILED

# API (2024-03-12)

## AgoraBase.h

Modify:

- LOCAL_VIDEO_STREAM_ERROR_DEVICE_INTERRUPT to LOCAL_VIDEO_STREAM_REASON_DEVICE_INTERRUPT
- LOCAL_VIDEO_STREAM_ERROR_DEVICE_FATAL_ERROR to LOCAL_VIDEO_STREAM_REASON_DEVICE_FATAL_ERROR

# API (2024-03-12)

## AgoraBase.h

Add:

- enum CAMERA_FOCAL_LENGTH_TYPE
- struct FocalLengthInfo

# API (2024-04-29)

## AgoraBase.h

Add:

- enum VOICE_AI_TUNER_TYPE

# API (2024-06-11)

## AgoraBase.h

Modify:

- CAMERA_FOCAL_LENGTH_URLTRA_WIDE to CAMERA_FOCAL_LENGTH_ULTRA_WIDE

# API (2024-07-29)

## AgoraBase.h

Modify:

- MixedAudioStream

# API (2024-08-21)

## AgoraBase.h

Add:

- enum VIDEO_MODULE_TYPE
- enum HDR_CAPABILITY

# API (2024-09-14)

## AgoraBase.h

Modify:

- DEGRADATION_PREFERENCE Add MAINTAIN_AUTO(Default)
- DEGRADATION_PREFERENCE Deprecated MAINTAIN_QUALITY

# API (2024-10-10)

## AgoraBase.h

Add:

- enableAudioProcessing

# API (2024-10-16)

## AgoraBase.h

Modify:

- MixedAudioStream channelId

# API (2024-11-21)

## AgoraBase.h

Update:

- VideoEncoderConfiguration bitrate update comment

# API (2025-07-23)

## AgoraBase.h

Modify:

- LOCAL_AUDIO_STREAM_REASON_VIDEO_SOURCE_HDR_TO_SDR to LOCAL_VIDEO_STREAM_REASON_VIDEO_SOURCE_HDR_TO_SDR

# API (2025-07-31)

## AgoraBase.h

Delete:

- LOCAL_VIDEO_STREAM_REASON_VIDEO_SOURCE_HDR_TO_SDR