Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
IAgoraMediaEngine.h
1//
2// Agora Media SDK
3//
4// Copyright (c) 2015 Agora IO. All rights reserved.
5//
6#pragma once
7
8#include "AgoraBase.h"
9#include "AgoraMediaBase.h"
10#include "AgoraRefPtr.h"
11
12namespace agora {
13namespace media {
14
18 /* 0: Original mode */
20 /* 1: Left channel mode */
22 /* 2: Right channel mode */
24 /* 3: Mixed channel mode */
26};
27
28
33 public:
75
88 virtual int registerFaceInfoObserver(IFaceInfoObserver* observer) = 0;
89
99
101
119
141 bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType = VIDEO_FRAME,
142 rtc::SenderOptions encodedVideoOption = rtc::SenderOptions()) = 0;
143
144#if defined(__ANDROID__)
159 virtual int setExternalRemoteEglContext(void* eglContext) = 0;
160#endif
161
188 virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, bool localPlayback = false, bool publish = true) __deprecated = 0;
189
205 virtual rtc::track_id_t createCustomAudioTrack(rtc::AUDIO_TRACK_TYPE trackType, const rtc::AudioTrackConfig& config) = 0;
206
216 virtual int destroyCustomAudioTrack(rtc::track_id_t trackId) = 0;
217
245 virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels) = 0;
246
261 virtual int enableCustomAudioLocalPlayback(rtc::track_id_t trackId, bool enabled) = 0;
262
271 virtual int pushVideoFrame(base::ExternalVideoFrame* frame, unsigned int videoTrackId = 0) = 0;
282 virtual int pushEncodedVideoImage(const unsigned char* imageBuffer, size_t length,
283 const agora::rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo,
284 unsigned int videoTrackId = 0) = 0;
288 virtual int addVideoFrameRenderer(IVideoFrameObserver *renderer) = 0;
289
294
295 virtual void release() = 0;
296
297 protected:
298 virtual ~IMediaEngine() {}
299};
300
301} // namespace media
302
303} // namespace agora
Definition AgoraMediaBase.h:1549
Definition AgoraMediaBase.h:2067
Definition IAgoraMediaEngine.h:32
virtual int destroyCustomAudioTrack(rtc::track_id_t trackId)=0
virtual int addVideoFrameRenderer(IVideoFrameObserver *renderer)=0
virtual int setExternalVideoSource(bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType=VIDEO_FRAME, rtc::SenderOptions encodedVideoOption=rtc::SenderOptions())=0
virtual int registerFaceInfoObserver(IFaceInfoObserver *observer)=0
virtual int removeVideoFrameRenderer(IVideoFrameObserver *renderer)=0
virtual int pushVideoFrame(base::ExternalVideoFrame *frame, unsigned int videoTrackId=0)=0
virtual int registerVideoEncodedFrameObserver(IVideoEncodedFrameObserver *observer)=0
virtual int registerVideoFrameObserver(IVideoFrameObserver *observer)=0
virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels)=0
virtual int pushAudioFrame(IAudioFrameObserverBase::AudioFrame *frame, rtc::track_id_t trackId=0)=0
virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, bool localPlayback=false, bool publish=true) __deprecated=0
virtual int pullAudioFrame(IAudioFrameObserverBase::AudioFrame *frame)=0
virtual int setExternalRemoteEglContext(void *eglContext)=0
virtual rtc::track_id_t createCustomAudioTrack(rtc::AUDIO_TRACK_TYPE trackType, const rtc::AudioTrackConfig &config)=0
virtual int pushEncodedVideoImage(const unsigned char *imageBuffer, size_t length, const agora::rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo, unsigned int videoTrackId=0)=0
virtual int registerAudioFrameObserver(IAudioFrameObserver *observer)=0
virtual int enableCustomAudioLocalPlayback(rtc::track_id_t trackId, bool enabled)=0
virtual void release()=0
Definition AgoraMediaBase.h:1642
Definition AgoraMediaBase.h:1664
Definition NGIAgoraAudioDeviceManager.h:16
Definition content_inspect_i.h:15
@ __deprecated
Definition AgoraMediaBase.h:1169
EXTERNAL_VIDEO_SOURCE_TYPE
Definition AgoraMediaBase.h:1892
@ VIDEO_FRAME
Definition AgoraMediaBase.h:1896
AUDIO_MIXING_DUAL_MONO_MODE
Definition IAgoraMediaEngine.h:17
@ AUDIO_MIXING_DUAL_MONO_AUTO
Definition IAgoraMediaEngine.h:19
@ AUDIO_MIXING_DUAL_MONO_MIX
Definition IAgoraMediaEngine.h:25
@ AUDIO_MIXING_DUAL_MONO_L
Definition IAgoraMediaEngine.h:21
@ AUDIO_MIXING_DUAL_MONO_R
Definition IAgoraMediaEngine.h:23
unsigned int track_id_t
Definition AgoraMediaBase.h:29
Definition AgoraAtomicOps.h:21
Definition video_node_i.h:28
Definition AgoraBase.h:1293