12 #include "IAgoraService.h"
13 #include "NGIAgoraLocalUser.h"
14 #include "api2/NGIAgoraRtcConnection.h"
16 #include "channel_capability_i.h"
17 #include "audio_options_i.h"
22 struct TConnectionInfo;
24 struct audio_packet_t;
25 struct video_packet_t;
26 struct video_rtcp_packet_t;
28 class IMetadataObserver;
40 uint16_t streamId,
const char* data,
45 extern const std::string AUDIO_PIPELINE_POS_RECORD_ORIGIN;
46 extern const std::string AUDIO_PIPELINE_POS_PRE_APM_PROC;
47 extern const std::string AUDIO_PIPELINE_POS_APM;
48 extern const std::string AUDIO_PIPELINE_POS_PRE_SEND_PROC;
49 extern const std::string AUDIO_PIPELINE_POS_FILTER;
50 extern const std::string AUDIO_PIPELINE_POS_ENC;
51 extern const std::string AUDIO_PIPELINE_POS_TX_MIXER;
52 extern const std::string AUDIO_PIPELINE_POS_AT_RECORD;
53 extern const std::string AUDIO_PIPELINE_POS_ATW_RECORD;
56 extern const std::string AUDIO_PIPELINE_POS_DEC;
57 extern const std::string AUDIO_PIPELINE_POS_MIXED;
58 extern const std::string AUDIO_PIPELINE_POS_PLAY;
59 extern const std::string AUDIO_PIPELINE_POS_RX_MIXER;
60 extern const std::string AUDIO_PIPELINE_POS_PLAYBACK_MIXER;
61 extern const std::string AUDIO_PIPELINE_POS_PCM_SOURCE_PLAYBAC_MIXER;
62 extern const std::string AUDIO_PIPELINE_POS_PRE_PLAY_PROC;
63 extern const std::string AUDIO_PIPELINE_POS_AT_PLAYOUT;
64 extern const std::string AUDIO_PIPELINE_POS_ATW_PLAYOUT;
66 const int64_t AUDIO_FRAME_DUMP_MIN_DURATION_MS = 0;
67 const int64_t AUDIO_FRAME_DUMP_MAX_DURATION_MS = 150000;
72 virtual void OnAudioFrameDumpCompleted(
const std::string& location,
const std::string& uuid,
73 const std::vector<std::string>& files) = 0;
78 virtual int initialize() = 0;
79 virtual int sendAudioPacket(
const audio_packet_t& packet,
int delay = 0) = 0;
82 virtual int sendDataStreamPacket(uint16_t streamId,
const char* data,
size_t length) = 0;
91 virtual void getBillInfo(CallBillInfo* bill_info) = 0;
93 virtual void forceDisableChannelCapability(capability::CapabilityType, uint8_t capability) = 0;
94 virtual int setVideoPlayoutDelayMaxMs(
int delay) = 0;
95 virtual int setVideoPlayoutDelayMinMs(
int delay) = 0;
96 virtual int setPrerendererSmoothing(
bool enabled) = 0;
101 virtual int startAudioFrameDump(
const std::string& location,
const std::string& uuid,
102 const std::string& passwd, int64_t duration_ms,
103 bool auto_upload) = 0;
104 virtual int stopAudioFrameDump(
const std::string& location) = 0;