Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
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< IAudioFiltercreateAudioFilter (const char *name)
 
virtual agora_refptr< IExtensionVideoFiltercreateVideoFilter (const char *name)
 
virtual agora_refptr< IExtensionVideoSinkcreateVideoSink (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

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