Class LiveVideoCompositor
- Assembly
- VisioForge.Core.dll
Manages the disposal of resources used by the VisioForge.Core.LiveVideoCompositorV2.LiveVideoCompositor. This partial class implements the IDisposable and IAsyncDisposable patterns to ensure proper cleanup of both managed and unmanaged resources.
public class LiveVideoCompositor : IDisposable, IAsyncDisposableInheritance
Implements
Inherited Members
Examples
// Example of setting the license key for the Live Video Compositor.
// This should typically be done once at application startup.
var compositor = new LiveVideoCompositor();
compositor.SetLicenseKey("YOUR_LICENSE_KEY", "Your Name", "your.email@example.com");
// After setting the license key, the SDK's features will be enabled according to the license level.
// Creating a high-performance 4K live compositor
var settings = new LiveVideoCompositorSettings(3840, 2160, new VideoFrameRate(60, 1))
{
MixerType = LVCMixerType.OpenGL,
VideoChannelCount = 4,
MaxVideoInputsCount = 8,
MaxVideoOutputsCount = 4
};
var compositor = new LiveVideoCompositor(context, settings);
await compositor.StartAsync();
Remarks
Proper licensing is required to unlock the full features of the Live Video Compositor SDK. The license key, along with user details, is used to validate the software's usage.
Constructors
LiveVideoCompositor(LiveVideoCompositorSettings)
Initializes a new instance of the VisioForge.Core.LiveVideoCompositorV2.LiveVideoCompositor class.
public LiveVideoCompositor(LiveVideoCompositorSettings settings)Parameters
settingsLiveVideoCompositorSettings-
The configuration settings for the compositor.
Examples
var settings = new LiveVideoCompositorSettings(1920, 1080, new VideoFrameRate(30, 1))
{
MixerType = LVCMixerType.OpenGL,
AudioEnabled = true
};
var compositor = new LiveVideoCompositor(settings);
Remarks
This constructor creates the main pipeline, video mixer based on the specified mixer type, audio mixer if enabled, and all necessary infrastructure for managing inputs and outputs. The compositor is initialized but not started - call StartAsync() to begin processing.
Properties
Background
Gets or sets the background color of the compositor canvas.
public SKColor Background { get; set; }Property Value
Remarks
This color is visible in areas not covered by any video input. Changes to this property take effect immediately during playback when using transparent mixer background mode.
Settings
Gets the configuration settings for this Live Video Compositor instance.
public LiveVideoCompositorSettings Settings { get; }Property Value
Remarks
These settings are immutable after the compositor is created. To change settings, create a new compositor instance with different settings.
Video_Overlay_Enabled
Gets or sets a value indicating whether the video overlay manager is enabled.
public bool Video_Overlay_Enabled { get; set; }Property Value
Methods
Dispose(bool)
Releases the unmanaged resources used by the VisioForge.Core.LiveVideoCompositorV2.LiveVideoCompositor and optionally releases the managed resources.
protected virtual void Dispose(bool disposing)Parameters
disposingbool-
trueto release both managed and unmanaged resources;falseto release only unmanaged resources.
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. This is the public synchronous Dispose method, implementing the IDisposable interface.
public void Dispose()DisposeAsync()
Asynchronously releases the unmanaged and managed resources used by the VisioForge.Core.LiveVideoCompositorV2.LiveVideoCompositor. This method is part of the IAsyncDisposable pattern, allowing for asynchronous resource cleanup.
public ValueTask DisposeAsync()Returns
DurationAsync()
Gets the current playback position of the compositor.
public Task<TimeSpan> DurationAsync()Returns
- Task<TimeSpan>
-
A Task<TResult> that completes with the current position.
Remarks
For live compositing, this typically represents the elapsed time since the compositor started. The position is determined by the main pipeline's clock.
~LiveVideoCompositor()
Finalizes an instance of the VisioForge.Core.LiveVideoCompositorV2.LiveVideoCompositor class. This finalizer is called by the .NET runtime to release unmanaged resources if the VisioForge.Core.LiveVideoCompositorV2.LiveVideoCompositor.Dispose method was not called explicitly.
protected ~LiveVideoCompositor()GetAudioMixer()
Gets the audio mixer component of the compositor.
public AudioMixerBlock GetAudioMixer()Returns
- AudioMixerBlock
-
The VisioForge.Core.MediaBlocks.AudioProcessing.AudioMixerBlock that combines multiple audio inputs, or
nullif audio is disabled.
Remarks
The audio mixer combines all audio inputs into a single output stream. It is only created if AudioEnabled is true in the settings.
GetContext()
Gets the context object for this compositor.
public ContextX GetContext()Returns
- ContextX
-
The VisioForge.Core.GStreamer.ContextX instance used for logging and error handling.
Remarks
The context provides centralized logging and error management functionality for the compositor and all its components.
GetPipeline()
Gets the main processing pipeline of the compositor.
public MediaBlocksPipeline GetPipeline()Returns
- MediaBlocksPipeline
-
The main VisioForge.Core.MediaBlocks.MediaBlocksPipeline that manages the compositor's core processing.
Remarks
This pipeline contains the video mixer, audio mixer, effects processors, and output distribution. It is separate from the individual input and output pipelines.
GetVideoMixer()
Gets the video mixer component of the compositor.
public VideoMixerBlock GetVideoMixer()Returns
- VideoMixerBlock
-
The VisioForge.Core.MediaBlocks.VideoProcessing.VideoMixerBlock that combines multiple video inputs into a single output.
Remarks
The video mixer is the core component that performs the actual video composition. Its type (CPU, OpenGL, D3D11) is determined by the MixerType setting.
Input_AddAsync(LVCVideoInput)
Adds a video-only input to the compositor.
public Task<bool> Input_AddAsync(LVCVideoInput input)Parameters
inputLVCVideoInput-
The video input to add.
Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif the input was added successfully; otherwise,false.
Remarks
This method can be called before or after the compositor is started. If called after startup, the input is dynamically added to the running pipeline. The input's AutoStart property determines whether it begins processing immediately. Each input is assigned a unique ID for bridge connections.
Exceptions
- InvalidOperationException
-
May occur if the maximum number of inputs is exceeded.
Input_AddAsync(LVCAudioInput)
Adds an audio-only input to the compositor.
public Task<bool> Input_AddAsync(LVCAudioInput input)Parameters
inputLVCAudioInput-
The audio input to add.
Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif the input was added successfully; otherwise,false.
Remarks
This method requires audio to be enabled in the compositor settings. Like video inputs, audio inputs can be added dynamically during playback. Each input is assigned a unique ID for bridge connections and mixed into the main audio output.
Exceptions
- InvalidOperationException
-
Thrown when audio is disabled in compositor settings.
Input_AddAsync(LVCVideoAudioInput, bool)
Adds a combined video and audio input to the compositor.
public Task<bool> Input_AddAsync(LVCVideoAudioInput input, bool start = false)Parameters
inputLVCVideoAudioInput-
The video/audio input to add.
startbool-
If
true, starts the input after adding; otherwise uses the input's AutoStart property. Default isfalse.
Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif the input was added successfully; otherwise,false.
Remarks
This method handles inputs that provide both video and audio streams. The video and audio components are processed separately but remain synchronized. Special handling is provided for file sources to ensure proper preloading when added to a running compositor. Both video and audio IDs are assigned from their respective pools.
Input_Count()
Gets the total number of inputs currently added to the compositor.
public int Input_Count()Returns
- int
-
The number of inputs of all types (video, audio, and combined).
Remarks
This count includes all input types regardless of their current state (playing, paused, or stopped).
Input_Get(int)
Gets an input by its index in the input list.
public LVCInput Input_Get(int index)Parameters
indexint-
The zero-based index of the input.
Returns
- LVCInput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCInput at the specified index;
nullif the index is out of range.
Remarks
This method returns the base input type. Cast the result to the specific input type (LVCVideoInput, LVCAudioInput, or LVCVideoAudioInput) as needed.
Input_Get(Guid)
Gets an input by its unique identifier.
public LVCInput Input_Get(Guid id)Parameters
idGuid-
The unique identifier of the input.
Returns
- LVCInput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCInput with the specified ID;
nullif not found.
Remarks
This is the preferred method for retrieving inputs as IDs are guaranteed to be unique and stable throughout the input's lifetime. The returned base type can be cast to the specific input type as needed.
Input_GetID(string)
Gets the unique identifier of an input by its name.
public Guid? Input_GetID(string name)Parameters
namestring-
The name of the input to find.
Returns
Remarks
Input names are not required to be unique, so this method returns the first match found. For reliable identification, use the input's ID directly.
Input_GetName(Guid)
Gets the name of an input by its unique identifier.
public string Input_GetName(Guid id)Parameters
idGuid-
The unique identifier of the input.
Returns
- string
-
The name of the input if found;
nullif no input with the specified ID exists.
Remarks
This method is useful for displaying input information in user interfaces or logs.
Input_RemoveAsync(Guid)
Removes an input from the compositor by its unique ID.
public Task<bool> Input_RemoveAsync(Guid id)Parameters
idGuid-
The unique identifier of the input to remove.
Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif the input was removed successfully; otherwise,false.
Remarks
This method can be called during playback to dynamically remove inputs. It properly:
- Stops the input pipeline
- Blocks and removes mixer pads
- Cleans up bridge connections
- Releases IDs back to the pool for reuse
- Disposes of all resources The removal is performed safely without interrupting other inputs or the main pipeline.
Input_VideoAudio_Get(int)
Gets a video/audio input by its index in the input list.
public LVCVideoAudioInput Input_VideoAudio_Get(int index)Parameters
indexint-
The zero-based index of the input.
Returns
- LVCVideoAudioInput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCVideoAudioInput at the specified index;
nullif the index is out of range or the input is not a video/audio type.
Remarks
This method performs type checking and will return null if the input at the specified index is not a combined video/audio input.
Input_VideoAudio_Get(Guid)
Gets a video/audio input by its unique identifier.
public LVCVideoAudioInput Input_VideoAudio_Get(Guid id)Parameters
idGuid-
The unique identifier of the input.
Returns
- LVCVideoAudioInput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCVideoAudioInput with the specified ID;
nullif not found or the input is not a video/audio type.
Remarks
This is the preferred method for retrieving inputs as IDs are guaranteed to be unique and stable throughout the input's lifetime.
Input_VideoStream_Get(LVCInput)
Gets the video mixer stream configuration for a specific input.
public VideoMixerStream Input_VideoStream_Get(LVCInput input)Parameters
inputLVCInput-
The input to get the stream for.
Returns
- VideoMixerStream
-
The VisioForge.Core.Types.X.VideoEffects.VideoMixerStream containing position, size, and other properties;
nullif the input is not found or the video mixer is not initialized.
Remarks
Use this method to retrieve the current configuration of a video input stream, which can then be modified and updated using Input_VideoStream_Update().
Input_VideoStream_Update(VideoMixerStream)
Updates the configuration of a video input stream in the mixer.
public void Input_VideoStream_Update(VideoMixerStream stream)Parameters
streamVideoMixerStream-
The stream configuration to update.
Examples
var stream = compositor.Input_VideoStream_Get(input);
if (stream != null)
{
stream.Alpha = 0.5; // Set 50% transparency
stream.Rectangle = new Rect(100, 100, 640, 480); // Reposition
compositor.Input_VideoStream_Update(stream);
}
Remarks
Use this method to dynamically change properties of a video input during playback, such as position, size, opacity, or z-order. The stream object should be obtained from Input_VideoStream_Get() and modified before passing to this method.
Output_AddAsync(LVCVideoOutput, bool)
Adds a video-only output to the compositor.
public Task<bool> Output_AddAsync(LVCVideoOutput output, bool start = false)Parameters
outputLVCVideoOutput-
The video output to add.
startbool-
If
true, starts the output immediately; otherwise, it must be started manually. Default isfalse.
Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif the output was added successfully; otherwise,false.
Remarks
This method can be called before or after the compositor is started. If called after startup, the output is dynamically added to the running pipeline using a tee element. The start parameter overrides the output's AutoStart property for immediate activation.
Output_AddAsync(LVCAudioOutput, bool)
Adds an audio-only output to the compositor.
public Task<bool> Output_AddAsync(LVCAudioOutput output, bool start = false)Parameters
outputLVCAudioOutput-
The audio output to add.
startbool-
If
true, starts the output immediately; otherwise, it must be started manually. Default isfalse.
Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif the output was added successfully; otherwise,false.
Remarks
Audio outputs receive the mixed audio from all audio inputs. Multiple audio outputs can be active simultaneously, each receiving the same audio mix. This is useful for recording while streaming or monitoring.
Output_AddAsync(LVCVideoAudioOutput, bool)
Adds a combined video and audio output to the compositor.
public Task<bool> Output_AddAsync(LVCVideoAudioOutput output, bool start = false)Parameters
outputLVCVideoAudioOutput-
The video/audio output to add.
startbool-
If
true, starts the output immediately; otherwise, it must be started manually. Default isfalse.
Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif the output was added successfully; otherwise,false.
Remarks
This method creates separate bridge connections for video and audio streams to the output. Both streams remain synchronized through the output pipeline. Common uses include recording files with both video and audio or streaming to services that require both components.
Output_Audio_Get(int)
Gets an audio output by its index in the output list.
public LVCAudioOutput Output_Audio_Get(int index)Parameters
indexint-
The zero-based index of the output.
Returns
- LVCAudioOutput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCAudioOutput at the specified index;
nullif the index is out of range or the output is not an audio-only type.
Remarks
This method performs type checking and will return null if the output at the specified index is not an audio-only output.
Output_Audio_Get(Guid)
Gets an audio output by its unique identifier.
public LVCAudioOutput Output_Audio_Get(Guid id)Parameters
idGuid-
The unique identifier of the output.
Returns
- LVCAudioOutput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCAudioOutput with the specified ID;
nullif not found or the output is not an audio-only type.
Remarks
This is the preferred method for retrieving outputs as IDs are guaranteed to be unique and stable throughout the output's lifetime.
Output_Count()
Gets the total number of outputs currently added to the compositor.
public int Output_Count()Returns
- int
-
The number of outputs of all types (video, audio, and combined).
Remarks
This count includes all output types regardless of their current state (active or inactive).
Output_Get(int)
Gets an output by its index in the output list.
public LVCOutput Output_Get(int index)Parameters
indexint-
The zero-based index of the output.
Returns
- LVCOutput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCOutput at the specified index;
nullif the index is out of range.
Remarks
This method returns the base output type. Cast the result to the specific output type (LVCVideoOutput, LVCAudioOutput, or LVCVideoAudioOutput) as needed.
Output_Get(Guid)
Gets an output by its unique identifier.
public LVCOutput Output_Get(Guid id)Parameters
idGuid-
The unique identifier of the output.
Returns
- LVCOutput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCOutput with the specified ID;
nullif not found.
Remarks
This is the preferred method for retrieving outputs as IDs are guaranteed to be unique and stable throughout the output's lifetime. The returned base type can be cast to the specific output type as needed.
Output_Get(string) Deprecated
Use Output_Get(Guid id) instead for better performance and unique identification.
Gets an output by its name.
[Obsolete("Use Output_Get(Guid id) instead for better performance and unique identification.")]
public LVCOutput Output_Get(string name)Parameters
namestring-
The name of the output to find.
Returns
- LVCOutput
-
The first VisioForge.Core.LiveVideoCompositorV2.LVCOutput with the specified name;
nullif no output with the specified name exists.
Remarks
Output names are not required to be unique, so this method returns the first match found. This method is obsolete and may be removed in future versions.
Output_GetID(string)
Gets the unique identifier of an output by its name.
public Guid? Output_GetID(string name)Parameters
namestring-
The name of the output to find.
Returns
Remarks
Output names are not required to be unique, so this method returns the first match found. For reliable identification, use the output's ID directly.
Output_GetName(Guid)
Gets the name of an output by its unique identifier.
public string Output_GetName(Guid id)Parameters
idGuid-
The unique identifier of the output.
Returns
- string
-
The name of the output if found;
nullif no output with the specified ID exists.
Remarks
This method is useful for displaying output information in user interfaces or logs.
Output_RemoveAsync(Guid)
Removes an output from the compositor by its unique ID.
public Task<bool> Output_RemoveAsync(Guid id)Parameters
idGuid-
The unique identifier of the output to remove.
Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif the output was removed successfully; otherwise,false.
Remarks
This method stops the output pipeline gracefully and removes it from the compositor. For file outputs, this ensures proper file finalization. The output is disposed after removal.
Output_VideoAudio_Get(int)
Gets a video/audio output by its index in the output list.
public LVCVideoAudioOutput Output_VideoAudio_Get(int index)Parameters
indexint-
The zero-based index of the output.
Returns
- LVCVideoAudioOutput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCVideoAudioOutput at the specified index;
nullif the index is out of range or the output is not a video/audio type.
Remarks
This method performs type checking and will return null if the output at the specified index is not a combined video/audio output.
Output_VideoAudio_Get(Guid)
Gets a video/audio output by its unique identifier.
public LVCVideoAudioOutput Output_VideoAudio_Get(Guid id)Parameters
idGuid-
The unique identifier of the output.
Returns
- LVCVideoAudioOutput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCVideoAudioOutput with the specified ID;
nullif not found or the output is not a video/audio type.
Remarks
This is the preferred method for retrieving outputs as IDs are guaranteed to be unique and stable throughout the output's lifetime.
Output_Video_Get(int)
Gets a video output by its index in the output list.
public LVCVideoOutput Output_Video_Get(int index)Parameters
indexint-
The zero-based index of the output.
Returns
- LVCVideoOutput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCVideoOutput at the specified index;
nullif the index is out of range or the output is not a video-only type.
Remarks
This method performs type checking and will return null if the output at the specified index is not a video-only output.
Output_Video_Get(Guid)
Gets a video output by its unique identifier.
public LVCVideoOutput Output_Video_Get(Guid id)Parameters
idGuid-
The unique identifier of the output.
Returns
- LVCVideoOutput
-
The VisioForge.Core.LiveVideoCompositorV2.LVCVideoOutput with the specified ID;
nullif not found or the output is not a video-only type.
Remarks
This is the preferred method for retrieving outputs as IDs are guaranteed to be unique and stable throughout the output's lifetime.
SetLicenseKey(string, string, string)
Sets the license key for the Live Video Compositor SDK.
public void SetLicenseKey(string licenseKey, string userName, string email)Parameters
licenseKeystring-
The unique license key provided by VisioForge.
userNamestring-
The name of the user or organization associated with the license.
emailstring-
The email address associated with the license.
StartAsync()
Starts the compositor and all configured inputs and outputs.
public Task<bool> StartAsync()Returns
- Task<bool>
-
A Task<TResult> that completes with
trueif startup was successful; otherwise,false.
Examples
var compositor = new LiveVideoCompositor(settings);
// Add inputs and outputs...
if (await compositor.StartAsync())
{
Console.WriteLine("Compositor started successfully");
}
Remarks
This method performs the following operations:
- Applies license keys to all pipelines
- Builds the internal pipeline structure
- Preloads all inputs and outputs for synchronized startup
- Configures clock synchronization across all pipelines
- Starts all components in the correct order
Inputs and outputs with AutoStart=true will begin processing immediately. Others must be started manually after the compositor is running.
StopAsync()
Stops the compositor and all active inputs and outputs.
public Task StopAsync()Returns
Remarks
This method stops all components in the reverse order of startup:
- Stops all inputs
- Stops the main pipeline
- Stops all outputs
File outputs are properly finalized to ensure valid output files. After stopping, the compositor must be disposed and cannot be restarted.
Video_Effects_AddOrUpdateAsync(BaseVideoEffect, int)
Adds a new video effect or updates an existing one on the compositor output.
public Task Video_Effects_AddOrUpdateAsync(BaseVideoEffect effect, int channel = 0)Parameters
effectBaseVideoEffect-
The video effect to add or update. If an effect with the same name exists, it will be updated.
channelint-
The channel to apply the effect to. This parameter is reserved for future use and currently has no effect. Default is 0.
Returns
Remarks
This method can be called during playback to dynamically add or modify effects. If the video effect manager is not initialized, this method will return without doing anything.
Video_Effects_Clear(int)
Removes all video effects from the compositor output.
public void Video_Effects_Clear(int channel = 0)Parameters
channelint-
The channel to clear effects from. This parameter is reserved for future use and currently has no effect. Default is 0.
Remarks
This method immediately removes all active video effects without pausing the pipeline. Use this method when you need to reset the compositor to its default state without effects. If the video effect manager is not initialized, this method will return without doing anything.
Video_Effects_Get(string, int)
Retrieves a video effect by its name.
public IBaseVideoEffect Video_Effects_Get(string effectName, int channel = 0)Parameters
effectNamestring-
The unique name of the effect to retrieve.
channelint-
The channel to get the effect from. This parameter is reserved for future use and currently has no effect. Default is 0.
Returns
- IBaseVideoEffect
-
The VisioForge.Core.Types.X.VideoEffects.IBaseVideoEffect instance if found; otherwise,
null.
Remarks
Use this method to retrieve an effect instance for modification or inspection.
If the video effect manager is not initialized, this method will return null.
Video_Effects_RemoveAsync(BaseVideoEffect, int)
Removes a video effect from the compositor output.
public Task Video_Effects_RemoveAsync(BaseVideoEffect effect, int channel = 0)Parameters
effectBaseVideoEffect-
The video effect instance to remove.
channelint-
The channel to remove the effect from. This parameter is reserved for future use and currently has no effect. Default is 0.
Returns
Remarks
This method pauses the pipeline during effect removal to ensure smooth operation. The pipeline will automatically resume after the effect is removed. If the video effect manager or pipeline is not initialized, this method will return without doing anything.
Video_Effects_RemoveAsync(string, int)
Removes a video effect from the compositor output by its name.
public Task Video_Effects_RemoveAsync(string name, int channel = 0)Parameters
namestring-
The unique name of the effect to remove.
channelint-
The channel to remove the effect from. This parameter is reserved for future use and currently has no effect. Default is 0.
Returns
Remarks
This method first looks up the effect by name, then removes it if found. The pipeline is paused during removal and automatically resumed afterwards. If the effect is not found or the video effect manager is not initialized, this method will return without doing anything.
Video_Overlay_Add(IOverlayManagerElement, int)
Adds a new overlay element to the video stream.
public void Video_Overlay_Add(IOverlayManagerElement overlay, int channel = 0)Parameters
overlayIOverlayManagerElement-
The overlay element to add, such as text, image, or shape overlay.
channelint-
The channel number for multi-channel support. Currently not used but reserved for future use. Default is 0.
Remarks
The overlay will be rendered on top of the video according to its position and properties. Multiple overlays can be added and will be rendered in the order they were added.
Video_Overlay_Clear(int)
Removes all overlay elements from the video stream.
public void Video_Overlay_Clear(int channel = 0)Parameters
channelint-
The channel number for multi-channel support. Currently not used but reserved for future use. Default is 0.
Remarks
This method clears all overlays at once, leaving a clean video output without any overlays.
Video_Overlay_Remove(IOverlayManagerElement, int)
Removes a specific overlay element from the video stream.
public void Video_Overlay_Remove(IOverlayManagerElement overlay, int channel = 0)Parameters
overlayIOverlayManagerElement-
The overlay element to remove. Must be the same instance that was previously added.
channelint-
The channel number for multi-channel support. Currently not used but reserved for future use. Default is 0.
Remarks
If the specified overlay is not found in the current overlay list, no action is taken.
Video_Overlay_RemoveAt(int, int)
Removes an overlay element at the specified index from the overlay list.
public void Video_Overlay_RemoveAt(int index, int channel = 0)Parameters
indexint-
The zero-based index of the overlay to remove.
channelint-
The channel number for multi-channel support. Currently not used but reserved for future use. Default is 0.
Exceptions
- ArgumentOutOfRangeException
-
Thrown when the index is out of range of the overlay list.
Video_Overlay_Update(IOverlayManagerElement, int)
Updates an existing overlay element with new properties.
public void Video_Overlay_Update(IOverlayManagerElement overlay, int channel = 0)Parameters
overlayIOverlayManagerElement-
The overlay element with updated properties. Must be the same instance that was previously added.
channelint-
The channel number for multi-channel support. Currently not used but reserved for future use. Default is 0.
Remarks
This method removes the existing overlay and re-adds it with the updated properties. This ensures that any changes to the overlay's properties (position, text, color, etc.) are immediately reflected in the video output.
OnError
Occurs when an error happens during compositor operation.
public event EventHandler<ErrorsEventArgs> OnErrorEvent Type
Remarks
Subscribe to this event to receive notifications about errors in the compositor, inputs, outputs, or any processing pipelines. The event args contain details about the error source and description.