Agora C++ API Reference for All Platforms
|
Inherits agora::rtc::IVideoFilter.
Classes | |
class | Control |
Public Types | |
enum | ProcessMode { kSync, kAsync } |
enum | ProcessResult { kSuccess, kBypass, kDrop } |
Public Member Functions | |
virtual void | getProcessMode (ProcessMode &mode, bool &independent_thread)=0 |
virtual int | start (agora::agora_refptr< Control > control)=0 |
virtual int | stop ()=0 |
virtual void | getVideoFormatWanted (VideoFrameData::Type &type, RawPixelBuffer::Format &format)=0 |
virtual ProcessResult | pendVideoFrame (agora::agora_refptr< IVideoFrame > frame) |
virtual ProcessResult | adaptVideoFrame (agora::agora_refptr< IVideoFrame > in, agora::agora_refptr< IVideoFrame > &out) |
virtual bool | getRotationApplied () |
virtual bool | isExtensionFilter () |
virtual bool | adaptVideoFrame (const media::base::VideoFrame &capturedFrame, media::base::VideoFrame &adaptedFrame) |
![]() | |
virtual void | setEnabled (bool enable) |
virtual bool | isEnabled () |
virtual int | setProperty (const char *key, const void *buf, size_t buf_size) |
virtual int | getProperty (const char *key, void *buf, size_t buf_size) |
virtual bool | onDataStreamWillStart () |
virtual void | onDataStreamWillStop () |
virtual bool | isExternal () |
![]() | |
virtual void | AddRef () const =0 |
virtual RefCountReleaseStatus | Release () const =0 |
virtual bool | HasOneRef () const =0 |
Additional Inherited Members | |
![]() | |
virtual | ~RefCountInterface () |
The IExtensionVideoFilter class.
This class defines the interfaces that a external video extension provider can implement so as to be loaded by SDK as an "3rd party extension" for video pre- or post- processing.
|
pure virtual |
SDK will invoke this API first to get the filter's requested process mode ProcessMode.
mode | [out] filter assign its desired the process mode ProcessMode |
independent_thread | deprecated. SDK will ignore this parameter. |
|
pure virtual |
SDK will invoke this API before feeding video frame data to the filter. Filter can perform its initialization/preparation job in this step.
control | object to IExtensionFilter::Control that pass to the filter which can be used for future interaction with the SDK |
|
pure virtual |
SDK will invoke this API when the data stream is about to stop. Filter can perform cleanup jobs in this step.
|
pure virtual |
SDK will invoke this API every time before sending data to the filter. Filter can desigante the type VideoFrameInfo::Type and format MemPixelBuffer::Format of the next frame. SDK will then try to perform type / format conversion before sending data to the filter.
type | requested type of the next frame |
format | requested formant of the next frame |
|
inlinevirtual |
SDK will invoke this API to send video frame to the filter if process mode is "Async". Filter invokes control's "deliverFrame" to send back the frame after processing.
frame | frame pending for processing |
|
inlinevirtual |
SDK will invoke this API to send video frame to the filter if process mode is "Sync".
frame | frame pending for processing |
|
inlinevirtual |
|
inlinevirtual |
This function indicates if the filter is implemented by third-party providers.
true
: The filter is implemented by third-party providers.false
: otherwise. Reimplemented from agora::rtc::IVideoFilter.
|
inlinevirtual |
Adapts the video frame.
capturedFrame | The reference to the captured video frame that you want to adapt. |
adaptedFrame | The reference to the adapted video frame. |
true
: Success.false
: Failure, if, for example, the IVideofilter
object drops the video frame. Implements agora::rtc::IVideoFilterBase.