Agora C++ API Reference for All Platforms

NGIAgoraMediaNodeFactory.h
1 //
2 // Agora SDK
3 //
4 // Copyright (c) 2019 Agora.io. All rights reserved.
5 //
6
7 #pragma once // NOLINT(build/header_guard)
8
9 #include "AgoraBase.h"
10 #include <api/cpp/aosl_ares_class.h>
11
12 namespace agora {
13 namespace rtc {
14
15 class IAudioPcmDataSender;
16 class IAudioEncodedFrameSender;
17 class IRemoteAudioMixerSource;
18 class ICameraCapturer;
19 class IScreenCapturer;
20 class IVideoMixerSource;
21 class IVideoFrameTransceiver;
22 class IVideoFrameSender;
23 class IVideoRenderer;
24 class IVideoFilter;
25 class IAudioFilter;
26 class IVideoSinkBase;
27 class IVideoEncodedImageSender;
28 class IMediaPlayerSource;
29 class IMediaPacketSender;
30 class IMediaStreamingSource;
31 class IScreenCapturer2;
32 class IMediaRecorder2;
33
37 class IMediaNodeFactory : public RefCountInterface {
38 public:
50 virtual agora_refptr<IAudioPcmDataSender> createAudioPcmDataSender() = 0;
51
63 virtual agora_refptr<IAudioEncodedFrameSender> createAudioEncodedFrameSender() = 0;
64
75 virtual agora_refptr<ICameraCapturer> createCameraCapturer() = 0;
76
77 #if !defined(__ANDROID__) && !(defined(__APPLE__) && TARGET_OS_IPHONE)
78
88 virtual agora_refptr<IScreenCapturer> createScreenCapturer() = 0;
89 #endif
90
101 virtual agora_refptr<IVideoMixerSource> createVideoMixer() = 0;
102
113 virtual agora_refptr<IVideoFrameTransceiver> createVideoFrameTransceiver() = 0;
114
126 virtual agora_refptr<IVideoFrameSender> createVideoFrameSender() = 0;
127
139 virtual agora_refptr<IVideoEncodedImageSender> createVideoEncodedImageSender() = 0;
140
150 virtual agora_refptr<IVideoRenderer> createVideoRenderer() = 0;
151
164 virtual agora_refptr<IAudioFilter> createAudioFilter(const char* provider_name,
165 const char* extension_name) = 0;
166
179 virtual agora_refptr<IVideoFilter> createVideoFilter(const char* provider_name,
180 const char* extension_name) = 0;
181
194 virtual agora_refptr<IVideoSinkBase> createVideoSink(const char* provider_name,
195 const char* extension_name) = 0;
196
207 virtual agora_refptr<IMediaPlayerSource> createMediaPlayerSource(
208 media::base::MEDIA_PLAYER_SOURCE_TYPE type =
209 agora::media::base::MEDIA_PLAYER_SOURCE_DEFAULT) = 0;
210
221 virtual agora_refptr<IMediaStreamingSource> createMediaStreamingSource() = 0;
222
231 virtual agora_refptr<IMediaPacketSender> createMediaPacketSender() = 0;
232
233 virtual agora_refptr<IMediaRecorder2> createMediaRecorder() = 0;
234
235 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
236
244 virtual agora_refptr<IScreenCapturer2> createScreenCapturer2(const char* provider_name,
245 const char* extension_name) = 0;
246 #else
247
255 virtual agora_refptr<IScreenCapturer> createScreenCapturer(const char* provider_name,
256 const char* extension_name) = 0;
257 #endif
258
259 protected:
260 ~IMediaNodeFactory() {}
261 };
262
263 } // namespace rtc
264 } // namespace agora
agora::rtc::IMediaNodeFactory::createMediaPlayerSource
virtual agora_refptr< IMediaPlayerSource > createMediaPlayerSource(media::base::MEDIA_PLAYER_SOURCE_TYPE type=agora::media::base::MEDIA_PLAYER_SOURCE_DEFAULT)=0
agora::rtc::IMediaNodeFactory::createScreenCapturer
virtual agora_refptr< IScreenCapturer > createScreenCapturer()=0
agora::media::base::MEDIA_PLAYER_SOURCE_TYPE
MEDIA_PLAYER_SOURCE_TYPE
Definition: AgoraMediaBase.h:1182
agora::media::base::MEDIA_PLAYER_SOURCE_DEFAULT
@ MEDIA_PLAYER_SOURCE_DEFAULT
Definition: AgoraMediaBase.h:1188
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IMediaNodeFactory::createAudioFilter
virtual agora_refptr< IAudioFilter > createAudioFilter(const char *provider_name, const char *extension_name)=0
agora::rtc::IMediaNodeFactory::createVideoSink
virtual agora_refptr< IVideoSinkBase > createVideoSink(const char *provider_name, const char *extension_name)=0
agora::rtc::IMediaNodeFactory::createVideoRenderer
virtual agora_refptr< IVideoRenderer > createVideoRenderer()=0
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::IMediaNodeFactory::createMediaRecorder
virtual agora_refptr< IMediaRecorder2 > createMediaRecorder()=0
agora::rtc::IMediaNodeFactory::createVideoFrameSender
virtual agora_refptr< IVideoFrameSender > createVideoFrameSender()=0
agora::rtc::IMediaNodeFactory
Definition: NGIAgoraMediaNodeFactory.h:37
agora::rtc::IMediaNodeFactory::createMediaPacketSender
virtual agora_refptr< IMediaPacketSender > createMediaPacketSender()=0
agora::rtc::IMediaNodeFactory::createAudioPcmDataSender
virtual agora_refptr< IAudioPcmDataSender > createAudioPcmDataSender()=0
agora::rtc::IMediaNodeFactory::createVideoFrameTransceiver
virtual agora_refptr< IVideoFrameTransceiver > createVideoFrameTransceiver()=0
agora::rtc::IMediaNodeFactory::createCameraCapturer
virtual agora_refptr< ICameraCapturer > createCameraCapturer()=0
agora::rtc::IMediaNodeFactory::createVideoEncodedImageSender
virtual agora_refptr< IVideoEncodedImageSender > createVideoEncodedImageSender()=0
agora::rtc::IMediaNodeFactory::createVideoMixer
virtual agora_refptr< IVideoMixerSource > createVideoMixer()=0
agora::rtc::IMediaNodeFactory::createVideoFilter
virtual agora_refptr< IVideoFilter > createVideoFilter(const char *provider_name, const char *extension_name)=0
agora::rtc::IMediaNodeFactory::~IMediaNodeFactory
~IMediaNodeFactory()
Definition: NGIAgoraMediaNodeFactory.h:260
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::IMediaNodeFactory::createScreenCapturer2
virtual agora_refptr< IScreenCapturer2 > createScreenCapturer2(const char *provider_name, const char *extension_name)=0
agora::rtc::IMediaNodeFactory::createMediaStreamingSource
virtual agora_refptr< IMediaStreamingSource > createMediaStreamingSource()=0
Creates a media streaming source object and returns the pointer.
agora::rtc::IMediaNodeFactory::createAudioEncodedFrameSender
virtual agora_refptr< IAudioEncodedFrameSender > createAudioEncodedFrameSender()=0
rtc
Definition: video_node_i.h:28
agora::rtc::IMediaNodeFactory::createScreenCapturer
virtual agora_refptr< IScreenCapturer > createScreenCapturer(const char *provider_name, const char *extension_name)=0