Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
NGIAgoraAudioTrack.h
1
2// Copyright (c) 2018 Agora.io. All rights reserved
3
4// This program is confidential and proprietary to Agora.io.
5// And may not be copied, reproduced, modified, disclosed to others, published
6// or used, in whole or in part, without the express prior written permission
7// of Agora.io.
8
9#pragma once // NOLINT(build/header_guard)
10
11#include "AgoraBase.h"
12#include <api/cpp/aosl_ares_class.h>
13
14#ifndef OPTIONAL_OVERRIDE
15#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
16#define OPTIONAL_OVERRIDE override
17#else
18#define OPTIONAL_OVERRIDE
19#endif
20#endif
21
22// FIXME(Ender): use this class instead of AudioSendStream as local track
23namespace agora {
24namespace rtc {
25class IAudioTrackStateObserver;
26class IAudioFilter;
27class IAudioSinkBase;
40
42 size_t channels;
43
46 AudioSinkWants(int sampleRate, size_t chs) : samplesPerSec(sampleRate),
47 channels(chs) {}
48 AudioSinkWants(int sampleRate, size_t chs, int trackNum) : samplesPerSec(sampleRate), channels(chs) {}
49};
50
55
60 public:
94
95 public:
103 virtual int adjustPlayoutVolume(int volume, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
104
112 virtual int getPlayoutVolume(int* volume) = 0;
113
125 virtual bool addAudioFilter(agora_refptr<IAudioFilter> filter, AudioFilterPosition position, ExtensionContext *extContext = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
135 virtual bool removeAudioFilter(agora_refptr<IAudioFilter> filter, AudioFilterPosition position, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
136
146 virtual int enableAudioFilter(const char* id, bool enable, AudioFilterPosition position, aosl_ref_t ares = AOSL_REF_INVALID) {
147 (void)id;
148 (void)enable;
149 (void)position;
150 return -1;
151 }
152
163 virtual int setFilterProperty(const char* id, const char* key, const char* jsonValue, AudioFilterPosition position, aosl_ref_t ares = AOSL_REF_INVALID) {
164 (void)id;
165 (void)key;
166 (void)jsonValue;
167 (void)position;
168 return -1;
169 }
170
182 virtual int getFilterProperty(const char* id, const char* key, char* jsonValue, size_t bufSize, AudioFilterPosition position) {
183 (void)id;
184 (void)key;
185 (void)jsonValue;
186 (void)bufSize;
187 (void)position;
188 return -1;
189 }
190
200 virtual agora_refptr<IAudioFilter> getAudioFilter(const char *name, AudioFilterPosition position) const = 0;
201
211 virtual bool addAudioSink(agora_refptr<IAudioSinkBase> sink, const AudioSinkWants& wants, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
212
221 virtual bool removeAudioSink(agora_refptr<IAudioSinkBase> sink, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
227 virtual AudioTrackType getType() = 0;
228
229};
230
247
263 public:
328
329 public:
339 virtual int setEnabled(bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
340
347 virtual bool isEnabled() const = 0;
348
354
360
369 virtual int adjustPublishVolume(int volume, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
370
378 virtual int getPublishVolume(int* volume) = 0;
379
392 virtual int enableLocalPlayback(bool enable, bool sync = true, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
393
405 virtual int enableEarMonitor(bool enable, int includeAudioFilters, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
414 virtual int registerTrackObserver(ILocalAudioTrackObserver* observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
424
430 virtual void setMaxBufferedAudioFrameNumber(int number, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
431
438 virtual int ClearSenderBuffer() = 0;
444 virtual AudioTrackType getType() OPTIONAL_OVERRIDE { return LOCAL_AUDIO_TRACK; }
445
446
447 protected:
449};
450
528 int32_t audio_level;
548 uint32_t burst_jitter;
581
605 uint32_t mos_value;
614 uint32_t plc_count;
632
634
647
652
702};
703
704
774
779 public:
787 virtual bool getStatistics(RemoteAudioTrackStats& stats) = 0;
788
794
807 virtual int registerMediaPacketReceiver(IMediaPacketReceiver* packetReceiver, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
808
816 virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver* packetReceiver) = 0;
817
832 const AudioEncFrameRecvParams& recvParams,
833 aosl_ref_t ares = AOSL_REF_INVALID) = 0;
842
855 virtual int setRemoteVoicePosition(float pan, float gain, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
856
868 virtual int adjustDecodedAudioVolume(int decoded_index, int volume, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
869
880 virtual int muteRemoteFromTimestamp(uint32_t timestamp) = 0;
881
892 virtual int unmuteRemoteFromTimestamp(uint32_t timestamp) = 0;
893
907 virtual int adjustAudioAcceleration(int percentage, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
908
922 virtual int adjustAudioDeceleration(int percentage, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
923
933 virtual int enableSpatialAudio(bool enabled, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
934
943 virtual int setRemoteUserSpatialAudioParams(const agora::SpatialAudioParams& params, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
944
945 virtual AudioTrackType getType() OPTIONAL_OVERRIDE { return REMOTE_AUDIO_TRACK; }
946
947};
948
949} // namespace rtc
950} // namespace agora
Definition AgoraRefPtr.h:31
Definition AgoraRefPtr.h:44
Definition NGIAgoraMediaNode.h:298
Definition AgoraExtensions.h:12
Definition NGIAgoraMediaNode.h:424
Definition NGIAgoraAudioTrack.h:59
virtual int adjustPlayoutVolume(int volume, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool removeAudioFilter(agora_refptr< IAudioFilter > filter, AudioFilterPosition position, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int getPlayoutVolume(int *volume)=0
virtual bool removeAudioSink(agora_refptr< IAudioSinkBase > sink, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int setFilterProperty(const char *id, const char *key, const char *jsonValue, AudioFilterPosition position, aosl_ref_t ares=AOSL_REF_INVALID)
Definition NGIAgoraAudioTrack.h:163
virtual bool addAudioSink(agora_refptr< IAudioSinkBase > sink, const AudioSinkWants &wants, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int enableAudioFilter(const char *id, bool enable, AudioFilterPosition position, aosl_ref_t ares=AOSL_REF_INVALID)
Definition NGIAgoraAudioTrack.h:146
virtual AudioTrackType getType()=0
virtual agora_refptr< IAudioFilter > getAudioFilter(const char *name, AudioFilterPosition position) const =0
virtual bool addAudioFilter(agora_refptr< IAudioFilter > filter, AudioFilterPosition position, ExtensionContext *extContext=NULL, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int getFilterProperty(const char *id, const char *key, char *jsonValue, size_t bufSize, AudioFilterPosition position)
Definition NGIAgoraAudioTrack.h:182
AudioFilterPosition
Definition NGIAgoraAudioTrack.h:64
@ PcmSource
Definition NGIAgoraAudioTrack.h:80
@ PostAudioProcessing
Definition NGIAgoraAudioTrack.h:72
@ PcmSourceSending
Definition NGIAgoraAudioTrack.h:84
@ RemoteMixedPlayback
Definition NGIAgoraAudioTrack.h:92
@ RemoteUserPlayback
Definition NGIAgoraAudioTrack.h:76
@ RecordingLocalPlayback
Definition NGIAgoraAudioTrack.h:68
@ PcmSourceLocalPlayback
Definition NGIAgoraAudioTrack.h:88
Definition NGIAgoraAudioTrack.h:262
virtual int getPublishVolume(int *volume)=0
virtual void setMaxBufferedAudioFrameNumber(int number, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool isEnabled() const =0
virtual int adjustPublishVolume(int volume, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int registerTrackObserver(ILocalAudioTrackObserver *observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int setEnabled(bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int enableLocalPlayback(bool enable, bool sync=true, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int ClearSenderBuffer()=0
~ILocalAudioTrack()
Definition NGIAgoraAudioTrack.h:448
virtual int enableEarMonitor(bool enable, int includeAudioFilters, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual AudioTrackType getType() OPTIONAL_OVERRIDE
Definition NGIAgoraAudioTrack.h:444
virtual LOCAL_AUDIO_STREAM_STATE getState()=0
virtual LocalAudioTrackStats GetStats()=0
virtual int unregisterTrackObserver(ILocalAudioTrackObserver *observer)=0
Definition NGIAgoraAudioTrack.h:234
virtual ~ILocalAudioTrackObserver()
Definition NGIAgoraAudioTrack.h:236
virtual void onLocalAudioTrackStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reasonCode)=0
Definition NGIAgoraMediaNode.h:318
Definition NGIAgoraAudioTrack.h:778
virtual int setRemoteVoicePosition(float pan, float gain, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int adjustAudioDeceleration(int percentage, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int unregisterAudioEncodedFrameReceiver(IAudioEncodedFrameReceiver *packetReceiver)=0
virtual bool getStatistics(RemoteAudioTrackStats &stats)=0
virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver *packetReceiver)=0
virtual int muteRemoteFromTimestamp(uint32_t timestamp)=0
virtual int setRemoteUserSpatialAudioParams(const agora::SpatialAudioParams &params, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int registerMediaPacketReceiver(IMediaPacketReceiver *packetReceiver, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual AudioTrackType getType() OPTIONAL_OVERRIDE
Definition NGIAgoraAudioTrack.h:945
virtual REMOTE_AUDIO_STATE getState()=0
virtual int enableSpatialAudio(bool enabled, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int adjustDecodedAudioVolume(int decoded_index, int volume, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int unmuteRemoteFromTimestamp(uint32_t timestamp)=0
virtual int adjustAudioAcceleration(int percentage, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int registerAudioEncodedFrameReceiver(IAudioEncodedFrameReceiver *packetReceiver, const AudioEncFrameRecvParams &recvParams, aosl_ref_t ares=AOSL_REF_INVALID)=0
Definition AgoraExtensions.h:5
LOCAL_AUDIO_STREAM_STATE
Definition AgoraBase.h:3266
LOCAL_AUDIO_STREAM_REASON
Definition AgoraBase.h:3288
REMOTE_AUDIO_STATE
Definition AgoraBase.h:3496
AudioTrackType
Definition NGIAgoraAudioTrack.h:51
@ LOCAL_AUDIO_TRACK
Definition NGIAgoraAudioTrack.h:52
@ REMOTE_AUDIO_TRACK
Definition NGIAgoraAudioTrack.h:53
unsigned int uid_t
Definition AgoraMediaBase.h:28
AUDIO_CODEC_TYPE
Definition AgoraBase.h:1371
@ AUDIO_CODEC_AACLC
Definition AgoraBase.h:1395
Definition AgoraAtomicOps.h:21
Definition AgoraBase.h:7507
Definition NGIAgoraAudioTrack.h:709
int32_t target_sample_rate
Definition NGIAgoraAudioTrack.h:753
int32_t target_num_channels
Definition NGIAgoraAudioTrack.h:758
ReceiveMode receive_mode
Definition NGIAgoraAudioTrack.h:743
AudioEncFrameRecvParams()
Definition NGIAgoraAudioTrack.h:761
ReceiveMode
Definition NGIAgoraAudioTrack.h:714
@ MATCHED_ALL
Definition NGIAgoraAudioTrack.h:737
@ ORIGINAL
Definition NGIAgoraAudioTrack.h:718
@ MATCHED_CODEC
Definition NGIAgoraAudioTrack.h:727
AudioEncFrameRecvParams(const AudioEncFrameRecvParams &src_params)
Definition NGIAgoraAudioTrack.h:767
AUDIO_CODEC_TYPE target_codec
Definition NGIAgoraAudioTrack.h:748
Definition NGIAgoraAudioTrack.h:37
AudioSinkWants(int sampleRate, size_t chs, int trackNum)
Definition NGIAgoraAudioTrack.h:48
AudioSinkWants()
Definition NGIAgoraAudioTrack.h:44
AudioSinkWants(int sampleRate, size_t chs)
Definition NGIAgoraAudioTrack.h:46
int samplesPerSec
Definition NGIAgoraAudioTrack.h:39
size_t channels
Definition NGIAgoraAudioTrack.h:42
Definition AgoraMediaBase.h:41
Definition NGIAgoraAudioTrack.h:267
uint32_t audio_volume
Definition NGIAgoraAudioTrack.h:314
uint32_t sent_audio_frames
Definition NGIAgoraAudioTrack.h:286
uint32_t hw_ear_monitor
Definition NGIAgoraAudioTrack.h:306
uint32_t missed_audio_frames
Definition NGIAgoraAudioTrack.h:282
uint32_t buffered_pcm_data_list_size
Definition NGIAgoraAudioTrack.h:278
uint32_t playout_audio_frames
Definition NGIAgoraAudioTrack.h:298
LocalAudioTrackStats()
Definition NGIAgoraAudioTrack.h:316
uint32_t dropped_audio_frames
Definition NGIAgoraAudioTrack.h:294
uint32_t source_id
Definition NGIAgoraAudioTrack.h:271
bool enabled
Definition NGIAgoraAudioTrack.h:310
uint32_t pushed_audio_frames
Definition NGIAgoraAudioTrack.h:290
uint32_t effect_type
Definition NGIAgoraAudioTrack.h:302
Definition NGIAgoraAudioTrack.h:454
int32_t new_e2e_delay_ms
Definition NGIAgoraAudioTrack.h:638
uint16_t frozen_count_200_ms
Definition NGIAgoraAudioTrack.h:576
int32_t fec_decode_ms
Definition NGIAgoraAudioTrack.h:618
uint16_t frozen_count_by_custom
Definition NGIAgoraAudioTrack.h:585
uint32_t burst_jitter
Definition NGIAgoraAudioTrack.h:548
uid_t uid
Definition NGIAgoraAudioTrack.h:458
uint32_t plc_count
Definition NGIAgoraAudioTrack.h:614
uint16_t frozen_time_200_ms
Definition NGIAgoraAudioTrack.h:580
int32_t downlink_effect_type
Definition NGIAgoraAudioTrack.h:651
size_t expanded_speech_samples
Definition NGIAgoraAudioTrack.h:508
int mean_waiting_time
Definition NGIAgoraAudioTrack.h:504
uint32_t target_level_base_ms
Definition NGIAgoraAudioTrack.h:552
uint32_t timestamps_since_last_report
Definition NGIAgoraAudioTrack.h:516
uint32_t packet_max_expired_ms
Definition NGIAgoraAudioTrack.h:540
int received_bitrate
Definition NGIAgoraAudioTrack.h:486
uint32_t delay_estimate_ms
Definition NGIAgoraAudioTrack.h:601
int network_transport_delay
Definition NGIAgoraAudioTrack.h:466
int32_t quality_changed_reason
Definition NGIAgoraAudioTrack.h:646
uint16_t min_sequence_number
Definition NGIAgoraAudioTrack.h:520
int frozen_rate
Definition NGIAgoraAudioTrack.h:496
uint32_t mos_value
Definition NGIAgoraAudioTrack.h:605
uint16_t max_sequence_number
Definition NGIAgoraAudioTrack.h:524
int total_frozen_time
Definition NGIAgoraAudioTrack.h:492
uint32_t frozen_rate_by_custom_plc_count
Definition NGIAgoraAudioTrack.h:610
uint32_t jitter_buffer_delay
Definition NGIAgoraAudioTrack.h:470
RemoteAudioTrackStats()
Definition NGIAgoraAudioTrack.h:653
uint16_t frozen_count_80_ms
Definition NGIAgoraAudioTrack.h:568
int audio_loss_rate
Definition NGIAgoraAudioTrack.h:474
uint16_t frozen_time_80_ms
Definition NGIAgoraAudioTrack.h:572
int received_sample_rate
Definition NGIAgoraAudioTrack.h:482
uint64_t publish_duration
Definition NGIAgoraAudioTrack.h:631
size_t expanded_noise_samples
Definition NGIAgoraAudioTrack.h:512
uint16_t accelerate_rate
Definition NGIAgoraAudioTrack.h:560
int qoe_quality
Definition NGIAgoraAudioTrack.h:642
uint16_t preemptive_expand_rate
Definition NGIAgoraAudioTrack.h:564
int32_t audio_level
Definition NGIAgoraAudioTrack.h:528
int quality
Definition NGIAgoraAudioTrack.h:462
uint16_t full_frozen_time_200_ms
Definition NGIAgoraAudioTrack.h:597
uint64_t total_active_time
Definition NGIAgoraAudioTrack.h:627
uint16_t frozen_time_ms_by_custom
Definition NGIAgoraAudioTrack.h:589
uint32_t burst_peak_num
Definition NGIAgoraAudioTrack.h:544
uint16_t full_frozen_time_80_ms
Definition NGIAgoraAudioTrack.h:593
uint32_t target_level_prefered_ms
Definition NGIAgoraAudioTrack.h:556
int64_t received_bytes
Definition NGIAgoraAudioTrack.h:500
uint32_t packet_expired_loss
Definition NGIAgoraAudioTrack.h:536
int32_t e2e_delay_ms
Definition NGIAgoraAudioTrack.h:633
uint16_t frozen_count_10_ms
Definition NGIAgoraAudioTrack.h:622
int num_channels
Definition NGIAgoraAudioTrack.h:478
uint32_t downlink_process_time_ms
Definition NGIAgoraAudioTrack.h:532