Server Gateway SDK v3.8.202.20 for Linux C++
NGIAgoraAudioTrack.h
Go to the documentation of this file.
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
13// FIXME(Ender): use this class instead of AudioSendStream as local track
14namespace agora {
15namespace rtc {
16class IAudioTrackStateObserver;
17class IAudioSinkBase;
28
30 size_t channels;
31
33 channels(0) {}
34 AudioSinkWants(int sampleRate, size_t chs) : samplesPerSec(sampleRate),
35 channels(chs) {}
36};
37
41class IAudioTrack : public RefCountInterface {
42public:
67 };
68
69 public:
71
78 virtual int adjustPlayoutVolume(int volume) = 0;
79
87 virtual int getPlayoutVolume(int* volume) = 0;
89
98 virtual bool addAudioSink(agora_refptr<IAudioSinkBase> sink, const AudioSinkWants& wants) = 0;
99
108 virtual bool removeAudioSink(agora_refptr<IAudioSinkBase> sink) = 0;
109};
110
115 public:
123 uint32_t source_id;
154 uint32_t effect_type;
156
159 uint32_t hw_ear_monitor;
161
165
169 uint32_t audio_volume; // [0,255]
170
178 effect_type(0),
179 hw_ear_monitor(0),
180 enabled(false),
181 audio_volume(0) {}
182 };
183
184 public:
194 virtual void setEnabled(bool enable) = 0;
195
202 virtual bool isEnabled() const = 0;
203
209
215
224 virtual int adjustPublishVolume(int volume) = 0;
225
233 virtual int getPublishVolume(int* volume) = 0;
234
236
245 virtual int enableLocalPlayback(bool enable) = 0;
257 virtual int enableEarMonitor(bool enable, int includeAudioFilters) = 0;
259 protected:
261};
262
314
317 int mean_waiting_time;
321 size_t expanded_speech_samples;
325 size_t expanded_noise_samples;
329 uint32_t timestamps_since_last_report;
333 uint16_t min_sequence_number;
337 uint16_t max_sequence_number;
341 int32_t audio_level;
345 uint32_t downlink_process_time_ms;
346
347 uint32_t target_level_base_ms;
348 uint32_t target_level_prefered_ms;
350
373 uint32_t mos_value;
384 int32_t e2e_delay_ms;
386
388 uid(0),
389 quality(0),
393 num_channels(0),
397 frozen_rate(0),
399 mean_waiting_time(0),
400 expanded_speech_samples(0),
401 expanded_noise_samples(0),
402 timestamps_since_last_report(0),
403 min_sequence_number(0xFFFF),
404 max_sequence_number(0),
405 audio_level(0),
406 downlink_process_time_ms(0),
412 mos_value(0),
415 e2e_delay_ms(0){ }
416};
417
422 public:
430 virtual bool getStatistics(RemoteAudioTrackStats& stats) = 0;
431
437
439
448 virtual int enableSoundPositionIndication(bool enabled) = 0;
449
462 virtual int setRemoteVoicePosition(float pan, float gain) = 0;
463
473 virtual int enableSpatialAudio(bool enabled) = 0;
474
483 virtual int setRemoteUserSpatialAudioParams(const agora::SpatialAudioParams& params) = 0;
485};
486
487} // namespace rtc
488} // namespace agora
Definition: NGIAgoraAudioTrack.h:41
AudioFilterPosition
Definition: NGIAgoraAudioTrack.h:46
@ PcmSource
Definition: NGIAgoraAudioTrack.h:58
@ PostAudioProcessing
Definition: NGIAgoraAudioTrack.h:54
@ PcmSourceSending
Definition: NGIAgoraAudioTrack.h:62
@ RecordingLocalPlayback
Definition: NGIAgoraAudioTrack.h:50
@ PcmSourceLocalPlayback
Definition: NGIAgoraAudioTrack.h:66
virtual bool addAudioSink(agora_refptr< IAudioSinkBase > sink, const AudioSinkWants &wants)=0
virtual bool removeAudioSink(agora_refptr< IAudioSinkBase > sink)=0
Definition: NGIAgoraAudioTrack.h:114
virtual void setEnabled(bool enable)=0
virtual int adjustPublishVolume(int volume)=0
virtual int getPublishVolume(int *volume)=0
virtual bool isEnabled() const =0
~ILocalAudioTrack()
Definition: NGIAgoraAudioTrack.h:260
virtual LOCAL_AUDIO_STREAM_STATE getState()=0
virtual LocalAudioTrackStats GetStats()=0
Definition: NGIAgoraAudioTrack.h:421
virtual bool getStatistics(RemoteAudioTrackStats &stats)=0
virtual REMOTE_AUDIO_STATE getState()=0
LOCAL_AUDIO_STREAM_STATE
Definition: AgoraBase.h:2612
REMOTE_AUDIO_STATE
Definition: AgoraBase.h:2717
unsigned int uid_t
Definition: AgoraMediaBase.h:25
Definition: AgoraBase.h:85
Definition: NGIAgoraAudioTrack.h:25
AudioSinkWants()
Definition: NGIAgoraAudioTrack.h:32
AudioSinkWants(int sampleRate, size_t chs)
Definition: NGIAgoraAudioTrack.h:34
int samplesPerSec
Definition: NGIAgoraAudioTrack.h:27
size_t channels
Definition: NGIAgoraAudioTrack.h:30
Definition: NGIAgoraAudioTrack.h:119
uint32_t audio_volume
Definition: NGIAgoraAudioTrack.h:169
uint32_t sent_audio_frames
Definition: NGIAgoraAudioTrack.h:138
uint32_t missed_audio_frames
Definition: NGIAgoraAudioTrack.h:134
uint32_t buffered_pcm_data_list_size
Definition: NGIAgoraAudioTrack.h:130
uint32_t playout_audio_frames
Definition: NGIAgoraAudioTrack.h:150
LocalAudioTrackStats()
Definition: NGIAgoraAudioTrack.h:171
uint32_t dropped_audio_frames
Definition: NGIAgoraAudioTrack.h:146
uint32_t source_id
Definition: NGIAgoraAudioTrack.h:123
bool enabled
Definition: NGIAgoraAudioTrack.h:164
uint32_t pushed_audio_frames
Definition: NGIAgoraAudioTrack.h:142
uint32_t effect_type
Definition: NGIAgoraAudioTrack.h:154
Definition: NGIAgoraAudioTrack.h:266
uint16_t frozen_count_200_ms
Definition: NGIAgoraAudioTrack.h:361
uid_t uid
Definition: NGIAgoraAudioTrack.h:270
uint16_t frozen_time_200_ms
Definition: NGIAgoraAudioTrack.h:365
int received_bitrate
Definition: NGIAgoraAudioTrack.h:298
uint32_t delay_estimate_ms
Definition: NGIAgoraAudioTrack.h:369
int network_transport_delay
Definition: NGIAgoraAudioTrack.h:278
int frozen_rate
Definition: NGIAgoraAudioTrack.h:308
uint32_t mos_value
Definition: NGIAgoraAudioTrack.h:373
NODOC uint16_t frozen_count_80_ms
Definition: NGIAgoraAudioTrack.h:353
int total_frozen_time
Definition: NGIAgoraAudioTrack.h:304
uint32_t jitter_buffer_delay
Definition: NGIAgoraAudioTrack.h:282
RemoteAudioTrackStats()
Definition: NGIAgoraAudioTrack.h:387
int audio_loss_rate
Definition: NGIAgoraAudioTrack.h:286
uint16_t frozen_time_80_ms
Definition: NGIAgoraAudioTrack.h:357
int received_sample_rate
Definition: NGIAgoraAudioTrack.h:294
uint64_t publish_duration
Definition: NGIAgoraAudioTrack.h:382
int quality
Definition: NGIAgoraAudioTrack.h:274
uint64_t total_active_time
Definition: NGIAgoraAudioTrack.h:378
int64_t received_bytes
Definition: NGIAgoraAudioTrack.h:312
int num_channels
Definition: NGIAgoraAudioTrack.h:290