Agora RTC Objective-C API Reference  Refactor
NGIAgoraExtensionProvider.h
Go to the documentation of this file.
1 //
2 // Agora SDK
3 //
4 // Copyright (c) 2021 Agora.io. All rights reserved.
5 //
6 
7 #pragma once
8 
9 #include "AgoraRefPtr.h"
10 #include "NGIAgoraMediaNode.h"
11 #include "AgoraExtensionVersion.h"
12 
13 namespace agora {
14 namespace rtc {
15 class IExtensionControl;
16 
36  public:
44  };
45 
48  const char* extension_name;
49  };
50 
51  virtual void setExtensionControl(IExtensionControl* control) {}
52 
53  virtual void enumerateExtensions(ExtensionMetaInfo* extension_list,
54  int& extension_count) {
55  (void) extension_list;
56  extension_count = 0;
57  }
58 
59  virtual agora_refptr<IAudioFilter> createAudioFilter(const char* name) {
60  return NULL;
61  }
62 
64  return NULL;
65  }
66 
67  virtual agora_refptr<IVideoSinkBase> createVideoSink(const char* name) {
68  return NULL;
69  }
70 
71  virtual void setProperty(const char* key, const char* value) {}
72 
73  protected:
74  virtual ~IExtensionProvider() {}
75 };
76 
78  public:
79  virtual void getExtensionVersion(const char* extension_name, ExtensionVersion& version) = 0;
80 };
81 
82 } // namespace rtc
83 } // namespace agora
agora::rtc::IExtensionProvider::ExtensionMetaInfo::type
EXTENSION_TYPE type
Definition: NGIAgoraExtensionProvider.h:47
agora::rtc::IExtensionProvider::ExtensionMetaInfo::extension_name
const char * extension_name
Definition: NGIAgoraExtensionProvider.h:48
NGIAgoraMediaNode.h
agora::rtc::IExtensionProvider::ExtensionMetaInfo
Definition: NGIAgoraExtensionProvider.h:46
agora::rtc::ExtensionVersion
Definition: AgoraExtensionVersion.h:14
agora::agora_refptr
Definition: AgoraRefPtr.h:44
AgoraExtensionVersion.h
agora::rtc::IExtensionProvider::VIDEO_SINK
@ VIDEO_SINK
Definition: NGIAgoraExtensionProvider.h:42
agora::rtc::IExtensionProviderV2::getExtensionVersion
virtual void getExtensionVersion(const char *extension_name, ExtensionVersion &version)=0
agora::rtc::IExtensionProvider::~IExtensionProvider
virtual ~IExtensionProvider()
Definition: NGIAgoraExtensionProvider.h:74
agora::rtc::IExtensionProvider::createVideoSink
virtual agora_refptr< IVideoSinkBase > createVideoSink(const char *name)
Definition: NGIAgoraExtensionProvider.h:67
agora::rtc::IExtensionProviderV2
Definition: NGIAgoraExtensionProvider.h:77
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::IExtensionProvider::EXTENSION_TYPE
EXTENSION_TYPE
Definition: NGIAgoraExtensionProvider.h:37
agora::rtc::IExtensionProvider::VIDEO_PRE_PROCESSING_FILTER
@ VIDEO_PRE_PROCESSING_FILTER
Definition: NGIAgoraExtensionProvider.h:39
agora::rtc::IExtensionProvider::AUDIO_SINK
@ AUDIO_SINK
Definition: NGIAgoraExtensionProvider.h:41
agora::rtc::IExtensionProvider::UNKNOWN
@ UNKNOWN
Definition: NGIAgoraExtensionProvider.h:43
agora::rtc::IExtensionProvider::setProperty
virtual void setProperty(const char *key, const char *value)
Definition: NGIAgoraExtensionProvider.h:71
agora::rtc::IExtensionProvider
Definition: NGIAgoraExtensionProvider.h:35
agora::rtc::IExtensionProvider::VIDEO_POST_PROCESSING_FILTER
@ VIDEO_POST_PROCESSING_FILTER
Definition: NGIAgoraExtensionProvider.h:40
agora::rtc::IExtensionProvider::AUDIO_FILTER
@ AUDIO_FILTER
Definition: NGIAgoraExtensionProvider.h:38
AgoraRefPtr.h
agora::rtc::IExtensionProvider::setExtensionControl
virtual void setExtensionControl(IExtensionControl *control)
Definition: NGIAgoraExtensionProvider.h:51
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::IExtensionProvider::createVideoFilter
virtual agora_refptr< IExtensionVideoFilter > createVideoFilter(const char *name)
Definition: NGIAgoraExtensionProvider.h:63
agora::rtc::IExtensionProvider::enumerateExtensions
virtual void enumerateExtensions(ExtensionMetaInfo *extension_list, int &extension_count)
Definition: NGIAgoraExtensionProvider.h:53
agora::rtc::IExtensionProvider::createAudioFilter
virtual agora_refptr< IAudioFilter > createAudioFilter(const char *name)
Definition: NGIAgoraExtensionProvider.h:59
agora::rtc::IExtensionControl
Definition: NGIAgoraExtensionControl.h:23