HMSVideoPlugin

interface HMSVideoPlugin

A plugin implementing this interface can be registered with HMSStreamFactory to transform, process or analyze the videoFrame. These can include applications like video filters, virtual background, live analysis of video etc. The below functions are required for the sdk to properly use the plugin, usually the plugin would also be exposing some public functions of its own for the UI to control its working.

Functions

Link copied to clipboard
abstract fun getName(): String

The name is meant to uniquely specify a plugin instance. This will be used to track number of plugins added, and same name won't be allowed twice.

Link copied to clipboard
Link copied to clipboard
abstract suspend fun init()

This function will be called in the beginning for initialization which may include tasks like setting up variables, loading ML models etc. This can be used by a plugin to ensure it's prepared at the time processVideoFrame is called.

Link copied to clipboard
abstract fun isSupported(): Boolean

This function will be called before the call to init, it is used to check whether the plugin supports current OS and device or not. An error will be thrown back to the user if they try to use an unsupported plugin.

Link copied to clipboard
abstract fun processVideoFrame(input: VideoFrame, outputListener: HMSPluginResultListener?, skipProcessing: Boolean?)

This function will be called by the SDK for every video frame which the plugin needs to process.

Link copied to clipboard
open fun setKey(key: String)
Link copied to clipboard
abstract fun stop()

the plugin can use this function to dispose off its resources. It'll be called when the processor instance is no longer needed at the end.

Inheritors

Link copied to clipboard
Link copied to clipboard