Agora RTC Objective-C API Reference  Refactor
IAgoraMediaEngine.h
Go to the documentation of this file.
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 
12 namespace agora {
13 namespace media {
14 
18  /* 0: Original mode */
20  /* 1: Left channel mode */
22  /* 2: Right channel mode */
24  /* 3: Mixed channel mode */
26 };
27 
28 
32 class IMediaEngine {
33  public:
46  virtual int registerAudioFrameObserver(IAudioFrameObserver* observer) = 0;
60  virtual int registerVideoFrameObserver(IVideoFrameObserver* observer) = 0;
61 
76 
89  bool wrap = false, int sourceId = 0) = 0;
90 
92 
103 
121 
143  bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType = VIDEO_FRAME,
144  rtc::SenderOptions encodedVideoOption = rtc::SenderOptions()) = 0;
145 
165  virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, int sourceNumber = 1, bool localPlayback = false, bool publish = true) = 0;
166 
194  virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels) = 0;
195 
210  virtual int enableCustomAudioLocalPlayback(int sourceId, bool enabled) = 0;
211 
221  virtual int setDirectExternalAudioSource(bool enable, bool localPlayback = false) = 0;
222 
231  virtual int pushVideoFrame(base::ExternalVideoFrame* frame, unsigned int videoTrackId = 0) = 0;
232 
243  virtual int pushEncodedVideoImage(const uint8_t* imageBuffer, size_t length,
244  const agora::rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo,
245  unsigned int videoTrackId = 0) = 0;
246 
247  virtual void release() = 0;
248 
249  protected:
250  virtual ~IMediaEngine() {}
251 };
252 
253 } // namespace media
254 
255 } // namespace agora
agora::rtc::SenderOptions
Definition: AgoraBase.h:1179
agora::media::VIDEO_FRAME
@ VIDEO_FRAME
Definition: AgoraMediaBase.h:1437
AgoraBase.h
agora::media::IMediaEngine::pushCaptureAudioFrame
virtual int pushCaptureAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
agora::media::IMediaEngine::registerVideoEncodedFrameObserver
virtual int registerVideoEncodedFrameObserver(IVideoEncodedFrameObserver *observer)=0
agora::media::IMediaEngine::pushDirectAudioFrame
virtual int pushDirectAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
Directly push audio frame to the rtc channel without mixing with other sources.
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1527
agora::media::IMediaEngine::registerVideoFrameObserver
virtual int registerVideoFrameObserver(IVideoFrameObserver *observer)=0
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:1142
agora::media::IMediaEngine::registerAudioFrameObserver
virtual int registerAudioFrameObserver(IAudioFrameObserver *observer)=0
agora::media::IAudioFrameObserverBase::AudioFrame
Definition: AgoraMediaBase.h:805
agora::media::IAudioFrameObserver
Definition: AgoraMediaBase.h:1032
agora::media::IMediaEngine::setExternalAudioSource
virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, int sourceNumber=1, bool localPlayback=false, bool publish=true)=0
agora
Definition: AgoraAtomicOps.h:21
agora::media::AUDIO_MIXING_DUAL_MONO_AUTO
@ AUDIO_MIXING_DUAL_MONO_AUTO
Definition: IAgoraMediaEngine.h:19
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:502
agora::media::AUDIO_MIXING_DUAL_MONO_MODE
AUDIO_MIXING_DUAL_MONO_MODE
Definition: IAgoraMediaEngine.h:17
agora::media::IMediaEngine::release
virtual void release()=0
agora::media::IMediaEngine::setExternalAudioSink
virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels)=0
agora::media::IMediaEngine::setDirectExternalAudioSource
virtual int setDirectExternalAudioSource(bool enable, bool localPlayback=false)=0
Enable/Disable the direct external audio source.
agora::media::AUDIO_MIXING_DUAL_MONO_R
@ AUDIO_MIXING_DUAL_MONO_R
Definition: IAgoraMediaEngine.h:23
agora::media::IMediaEngine::pushAudioFrame
virtual int pushAudioFrame(MEDIA_SOURCE_TYPE type, IAudioFrameObserver::AudioFrame *frame, bool wrap=false, int sourceId=0)=0
AgoraRefPtr.h
agora::media::IMediaEngine::enableCustomAudioLocalPlayback
virtual int enableCustomAudioLocalPlayback(int sourceId, bool enabled)=0
agora::media::IMediaEngine::pushReverseAudioFrame
virtual int pushReverseAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
AgoraMediaBase.h
agora::media::EXTERNAL_VIDEO_SOURCE_TYPE
EXTERNAL_VIDEO_SOURCE_TYPE
Definition: AgoraMediaBase.h:1433
agora::media::MEDIA_SOURCE_TYPE
MEDIA_SOURCE_TYPE
Definition: AgoraMediaBase.h:133
agora::media::AUDIO_MIXING_DUAL_MONO_MIX
@ AUDIO_MIXING_DUAL_MONO_MIX
Definition: IAgoraMediaEngine.h:25
agora::media::IMediaEngine
Definition: IAgoraMediaEngine.h:32
agora::media::IVideoEncodedFrameObserver
Definition: AgoraMediaBase.h:1121
agora::media::AUDIO_MIXING_DUAL_MONO_L
@ AUDIO_MIXING_DUAL_MONO_L
Definition: IAgoraMediaEngine.h:21
agora::media::IMediaEngine::setExternalVideoSource
virtual int setExternalVideoSource(bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType=VIDEO_FRAME, rtc::SenderOptions encodedVideoOption=rtc::SenderOptions())=0
agora::media::IMediaEngine::pullAudioFrame
virtual int pullAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
agora::media::IMediaEngine::pushVideoFrame
virtual int pushVideoFrame(base::ExternalVideoFrame *frame, unsigned int videoTrackId=0)=0
agora::media::IMediaEngine::~IMediaEngine
virtual ~IMediaEngine()
Definition: IAgoraMediaEngine.h:250
agora::media::IMediaEngine::pushEncodedVideoImage
virtual int pushEncodedVideoImage(const uint8_t *imageBuffer, size_t length, const agora::rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo, unsigned int videoTrackId=0)=0