Agora Java API Reference for Android
IAgoraMediaEngine.h
1 //
2 // Agora Media SDK
3 //
4 // Copyright (c) 2015 Agora IO. All rights reserved.
5 //
6 #pragma once
7 
8 #include <stdint.h>
9 #include "IAgoraRtcEngine.h"
10 
11 namespace agora {
12 namespace media {
16 enum MEDIA_SOURCE_TYPE {
20  AUDIO_PLAYOUT_SOURCE = 0,
24  AUDIO_RECORDING_SOURCE = 1,
25 };
26 
30 class IMediaEngine {
31  public:
44  virtual int registerAudioFrameObserver(IAudioFrameObserver* observer) = 0;
58  virtual int registerVideoFrameObserver(IVideoFrameObserver* observer) = 0;
59 
76 
89  virtual int pushAudioFrame(MEDIA_SOURCE_TYPE type, IAudioFrameObserver::AudioFrame* frame,
90  bool wrap = false, int sourceId = 0,
91  int connectionId = agora::rtc::DEFAULT_CONNECTION_ID) = 0;
92 
102 
112 
130 
150  virtual int setExternalVideoSource(bool enabled, bool useTexture, bool encodedFrame = false) = 0;
170  virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, int sourceNumber, bool localPlayback = false, bool publish = true) = 0;
171 
175  const rtc::VideoEncoderConfiguration& config,
176  rtc::conn_id_t connectionId = rtc::DEFAULT_CONNECTION_ID) = 0;
177 
188  rtc::conn_id_t connectionId = rtc::DEFAULT_CONNECTION_ID) = 0;
189 
201  virtual int pushEncodedVideoImage(const uint8_t* imageBuffer, size_t length,
202  const agora::rtc::EncodedVideoFrameInfo& videoEncodedFrameInfo,
203  rtc::conn_id_t connectionId = rtc::DEFAULT_CONNECTION_ID) = 0;
204 
205  virtual void release() = 0;
206 
207  protected:
208  virtual ~IMediaEngine() {}
209 };
210 
211 } // namespace media
212 
213 } // namespace agora
agora::media::IMediaEngine::pullAudioFrame
virtual int pullAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
agora::media::IMediaEngine::registerVideoEncodedImageReceiver
virtual int registerVideoEncodedImageReceiver(rtc::IVideoEncodedImageReceiver *receiver)=0
agora::media::IMediaEngine::registerVideoFrameObserver
virtual int registerVideoFrameObserver(IVideoFrameObserver *observer)=0
agora::rtc::EncodedVideoFrameInfo
Definition: AgoraBase.h:1606
agora::media::IVideoFrameObserver
Definition: AgoraMediaBase.h:603
agora::media::IMediaEngine::pushPrimaryAudioFrame
virtual int pushPrimaryAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
agora::media::IAudioFrameObserver
Definition: AgoraMediaBase.h:504
agora::rtc::VideoEncoderConfiguration
Definition: AgoraBase.h:1703
agora::media::IMediaEngine::registerAudioFrameObserver
virtual int registerAudioFrameObserver(IAudioFrameObserver *observer)=0
agora::media::IMediaEngine::setExternalAudioSource
virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels, int sourceNumber, bool localPlayback=false, bool publish=true)=0
agora::media::IMediaEngine::pushEncodedVideoImage
virtual int pushEncodedVideoImage(const uint8_t *imageBuffer, size_t length, const agora::rtc::EncodedVideoFrameInfo &videoEncodedFrameInfo, rtc::conn_id_t connectionId=rtc::DEFAULT_CONNECTION_ID)=0
agora::media::base::ExternalVideoFrame
Definition: AgoraMediaBase.h:247
agora::media::IMediaEngine::pushAudioFrame
virtual int pushAudioFrame(MEDIA_SOURCE_TYPE type, IAudioFrameObserver::AudioFrame *frame, bool wrap=false, int sourceId=0, int connectionId=agora::rtc::DEFAULT_CONNECTION_ID)=0
agora::media::IAudioFrameObserver::AudioFrame
Definition: AgoraMediaBase.h:518
agora::rtc::IVideoEncodedImageReceiver
Definition: AgoraBase.h:2800
agora::media::IMediaEngine::setExternalVideoSource
virtual int setExternalVideoSource(bool enabled, bool useTexture, bool encodedFrame=false)=0
agora::media::IMediaEngine
Definition: IAgoraMediaEngine.h:30
agora::media::IMediaEngine::pushVideoFrame
virtual int pushVideoFrame(base::ExternalVideoFrame *frame, rtc::conn_id_t connectionId=rtc::DEFAULT_CONNECTION_ID)=0
agora::media::IMediaEngine::pushSecondaryAudioFrame
virtual int pushSecondaryAudioFrame(IAudioFrameObserver::AudioFrame *frame)=0
agora::media::IMediaEngine::setExternalVideoConfigEx
virtual int setExternalVideoConfigEx(const rtc::VideoEncoderConfiguration &config, rtc::conn_id_t connectionId=rtc::DEFAULT_CONNECTION_ID)=0