Agora Java API Reference for Android

Classes | Public Types | Public Member Functions | List of all members
agora::rtc::IExtensionProvider Class Reference

`#include <NGIAgoraExtensionProvider.h>`

Inheritance diagram for agora::rtc::IExtensionProvider:

## Classes
struct | ExtensionMetaInfo

## Public Types
enum | EXTENSION_TYPE { AUDIO_FILTER, VIDEO_PRE_PROCESSING_FILTER, VIDEO_POST_PROCESSING_FILTER, AUDIO_SINK, VIDEO_SINK, AUDIO_RECORDING_LOCAL_PLAYBACK_FILTER = 10000, AUDIO_POST_PROCESSING_FILTER = 10001, AUDIO_REMOTE_USER_PLAYBACK_FILTER = 10002, AUDIO_PCM_SOURCE_FILTER = 10003, AUDIO_PCM_SOURCE_SENDING_FILTER = 10004, AUDIO_PCM_SOURCE_LOCAL_PLAYBACK_FILTER = 10005, AUDIO_REMOTE_MIXED_PLAYBACK_FILTER = 10006, VIDEO_POST_CAPTURE_FILTER = 20001, VIDEO_PRE_PREVIEW_FILTER = 20002, VIDEO_PRE_ENCODER_FILTER = 20003, UNKNOWN = 0xFFFF }

## Public Member Functions
virtual void | setExtensionControl (IExtensionControl *control)
virtual void | enumerateExtensions (ExtensionMetaInfo *extension_list, int &extension_count)
virtual agora_refptr< IAudioFilter > | createAudioFilter (const char *name)
virtual agora_refptr< IExtensionVideoFilter > | createVideoFilter (const char *name)
virtual agora_refptr< IVideoSinkBase > | createVideoSink (const char *name)
virtual void | setProperty (const char *key, const char *value)
Public Member Functions inherited from agora::RefCountInterface
virtual void | AddRef () const =0
virtual RefCountReleaseStatus | Release () const =0
virtual bool | HasOneRef () const =0

## 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 agora::rtc::IExtensionProvider::EXTENSION_TYPE

Enumerator
AUDIO_FILTER | note: discarded, Don't use it anymore.
VIDEO_PRE_PROCESSING_FILTER | note: discarded, Don't use it anymore.