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 and threading model.
mode | [out] filter assign its desired the process mode ProcessMode |
independent_thread | [out] filter assign its desired threading model. When this boolean is set "true", an indepent thread will be assigned to the current filter and all invocations from SDK afterwards are ensured to happen on that fixed thread. If this boolean flag is set "false", the filter will re-use the thread of the SDK's data path. All invocations from SDK afterwards are also ensured to be on the same thread, however that thread is shared. |
|
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.