Agora C++ API Reference for All Platforms

Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
agora::rtc::IExtensionProvider Class Reference

`#include <NGIAgoraExtensionProvider.h>`

Inherits agora::RefCountInterface.

Inherited by agora::rtc::ICustomExtensionProvider, agora::rtc::IExtensionProviderV2, and agora::rtc::IExtensionVideoCodecProvider.

## 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 , VIDEO_ENCODER = 20004 , VIDEO_DECODER = 20005 , 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< IExtensionVideoSink > | 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

## Protected Member Functions
virtual | ~IExtensionProvider ()
Protected Member Functions inherited from agora::RefCountInterface
virtual | ~RefCountInterface ()

## 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.
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 |
VIDEO_POST_CAPTURE_FILTER |
VIDEO_PRE_PREVIEW_FILTER |
VIDEO_PRE_ENCODER_FILTER |
VIDEO_ENCODER |
VIDEO_DECODER |
UNKNOWN |

## Constructor & Destructor Documentation

## ◆ ~IExtensionProvider()

virtual agora::rtc::IExtensionProvider::~IExtensionProvider | ( |  | ) |
| inlineprotectedvirtual

## Member Function Documentation

## ◆ setExtensionControl()

virtual void agora::rtc::IExtensionProvider::setExtensionControl | ( | IExtensionControl * | control | ) |
| inlinevirtual

## ◆ enumerateExtensions()

virtual void agora::rtc::IExtensionProvider::enumerateExtensions | ( | ExtensionMetaInfo * | extension_list,
|  | int & | extension_count )
| inlinevirtual

## ◆ createAudioFilter()

virtual agora_refptr< IAudioFilter > agora::rtc::IExtensionProvider::createAudioFilter | ( | const char * | name | ) |
| inlinevirtual

## ◆ createVideoFilter()

virtual agora_refptr< IExtensionVideoFilter > agora::rtc::IExtensionProvider::createVideoFilter | ( | const char * | name | ) |
| inlinevirtual

## ◆ createVideoSink()

virtual agora_refptr< IExtensionVideoSink > agora::rtc::IExtensionProvider::createVideoSink | ( | const char * | name | ) |
| inlinevirtual

## ◆ setProperty()

virtual void agora::rtc::IExtensionProvider::setProperty | ( | const char * | key,
|  | const char * | value )
| inlinevirtual