Agora Java API Reference for Android
NGIAgoraExtensionProvider.h
1 #pragma once
2 
3 #include "AgoraRefPtr.h"
4 #include "NGIAgoraMediaNode.h"
5 #include "AgoraExtensionVersion.h"
6 
7 namespace agora {
8 namespace rtc {
9 class IExtensionControl;
10 
30  public:
31  enum EXTENSION_TYPE {
32  AUDIO_FILTER,
33  VIDEO_PRE_PROCESSING_FILTER,
34  VIDEO_POST_PROCESSING_FILTER,
35  AUDIO_SINK,
36  VIDEO_SINK,
37  UNKNOWN,
38  };
39 
41  EXTENSION_TYPE type;
42  const char* extension_name;
43  };
44 
45  virtual void setExtensionControl(IExtensionControl* control) {}
46 
47  virtual void enumerateExtensions(ExtensionMetaInfo* extension_list,
48  int& extension_count) {
49  (void) extension_list;
50  extension_count = 0;
51  }
52 
53  virtual agora_refptr<IAudioFilter> createAudioFilter(const char* name) {
54  return NULL;
55  }
56 
57  virtual agora_refptr<IExtensionVideoFilter> createVideoFilter(const char* name) {
58  return NULL;
59  }
60 
61  virtual agora_refptr<IVideoSinkBase> createVideoSink(const char* name) {
62  return NULL;
63  }
64 
65  virtual void setProperty(const char* key, const char* value) {}
66 
67  protected:
68  virtual ~IExtensionProvider() {}
69 };
70 
72  public:
73  virtual void getExtensionVersion(const char* extension_name, ExtensionVersion& version) = 0;
74 };
75 
76 } // namespace rtc
77 } // namespace agora
agora::rtc::IExtensionProvider::ExtensionMetaInfo
Definition: NGIAgoraExtensionProvider.h:40
agora::rtc::ExtensionVersion
Definition: AgoraExtensionVersion.h:14
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IExtensionProviderV2
Definition: NGIAgoraExtensionProvider.h:71
agora::rtc::IExtensionProvider
Definition: NGIAgoraExtensionProvider.h:29
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::IExtensionControl
Definition: NGIAgoraExtensionControl.h:23