Agora RTC Objective-C API Reference Refactor

Data Structures
IExtensionProvider Class Referenceabstract

Inherits RefCountInterface.

Inherited by IExtensionProviderV2.

## Data Structures
struct | ExtensionMetaInfo

## Detailed Description

Interfaces for Extension Provider User can implement these interfaces for providing their own media node implementations to SDK. Please refer to agora::RefCountedObject to wrap your implementation so that it can be held by agora::agora_refptr. For example: class YourExtensionProvide: public IExtensionProvider { // Your Concrete implementaion };

// Use agroa::RefCountedObject to provide RefCountInterface implementation for you implementation, // intantiate and wrap it with agora_refptr.

agora_refptr<IExtensionProvider> provider = new RefCountedObject<YourExtensionProvide>(Arg1, Arg2, ...);

You can instantiate your AudioFilter/VideoFilter/VideoSink in the same way.

## Member Enumeration Documentation

## ◆ EXTENSION_TYPE

enum EXTENSION_TYPE

Enumerator
AUDIO_FILTER | note: discarded, Don't use it anymore.
VIDEO_PRE_PROCESSING_FILTER |
VIDEO_POST_PROCESSING_FILTER |
AUDIO_SINK |
VIDEO_SINK |
AUDIO_RECORDING_LOCAL_PLAYBACK_FILTER |
AUDIO_POST_PROCESSING_FILTER |
AUDIO_REMOTE_USER_PLAYBACK_FILTER |
AUDIO_PCM_SOURCE_FILTER |
AUDIO_PCM_SOURCE_SENDING_FILTER |
AUDIO_PCM_SOURCE_LOCAL_PLAYBACK_FILTER |
AUDIO_REMOTE_MIXED_PLAYBACK_FILTER |
UNKNOWN |

## Constructor & Destructor Documentation

## ◆ ~IExtensionProvider()

virtual ~IExtensionProvider | ( |  | ) |
| inlineprotectedvirtual

## Member Function Documentation

## ◆ setExtensionControl()

virtual void setExtensionControl | ( | IExtensionControl * | control | ) |
| inlinevirtual

## ◆ enumerateExtensions()

virtual void enumerateExtensions | ( | ExtensionMetaInfo * | extension_list,
|  | int & | extension_count
| ) |  |
| inlinevirtual

## ◆ createAudioFilter()

virtual agora_refptr<IAudioFilter> createAudioFilter | ( | const char * | name | ) |
| inlinevirtual

## ◆ createVideoFilter()

virtual agora_refptr<IExtensionVideoFilter> createVideoFilter | ( | const char * | name | ) |
| inlinevirtual

## ◆ createVideoSink()

virtual agora_refptr<IVideoSinkBase> createVideoSink | ( | const char * | name | ) |
| inlinevirtual

## ◆ setProperty()

virtual void setProperty | ( | const char * | key,
|  | const char * | value
| ) |  |
| inlinevirtual

## ◆ AddRef()

virtual void AddRef | ( |  | ) | const
| pure virtualinherited

## ◆ Release()

virtual RefCountReleaseStatus Release | ( |  | ) | const
| pure virtualinherited

## ◆ HasOneRef()

virtual bool HasOneRef | ( |  | ) | const
| pure virtualinherited