Table of Contents

Class LiveVideoCompositor

Namespace
VisioForge.Core.LiveVideoCompositorV2
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, IAsyncDisposable

Inheritance

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

settings LiveVideoCompositorSettings

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

SKColor

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

LiveVideoCompositorSettings

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

bool

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

disposing bool

true to release both managed and unmanaged resources; false to 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

ValueTask

A ValueTask that represents the asynchronous dispose operation.

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 null if 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

input LVCVideoInput

The video input to add.

Returns

Task<bool>

A Task<TResult> that completes with true if 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

input LVCAudioInput

The audio input to add.

Returns

Task<bool>

A Task<TResult> that completes with true if 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

input LVCVideoAudioInput

The video/audio input to add.

start bool

If true, starts the input after adding; otherwise uses the input's AutoStart property. Default is false.

Returns

Task<bool>

A Task<TResult> that completes with true if 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

index int

The zero-based index of the input.

Returns

LVCInput

The VisioForge.Core.LiveVideoCompositorV2.LVCInput at the specified index; null if 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

id Guid

The unique identifier of the input.

Returns

LVCInput

The VisioForge.Core.LiveVideoCompositorV2.LVCInput with the specified ID; null if 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

name string

The name of the input to find.

Returns

Guid?

The Guid of the input if found; null if no input with the specified name exists.

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

id Guid

The unique identifier of the input.

Returns

string

The name of the input if found; null if 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

id Guid

The unique identifier of the input to remove.

Returns

Task<bool>

A Task<TResult> that completes with true if 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

index int

The zero-based index of the input.

Returns

LVCVideoAudioInput

The VisioForge.Core.LiveVideoCompositorV2.LVCVideoAudioInput at the specified index; null if 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

id Guid

The unique identifier of the input.

Returns

LVCVideoAudioInput

The VisioForge.Core.LiveVideoCompositorV2.LVCVideoAudioInput with the specified ID; null if 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

input LVCInput

The input to get the stream for.

Returns

VideoMixerStream

The VisioForge.Core.Types.X.VideoEffects.VideoMixerStream containing position, size, and other properties; null if 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

stream VideoMixerStream

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

output LVCVideoOutput

The video output to add.

start bool

If true, starts the output immediately; otherwise, it must be started manually. Default is false.

Returns

Task<bool>

A Task<TResult> that completes with true if 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

output LVCAudioOutput

The audio output to add.

start bool

If true, starts the output immediately; otherwise, it must be started manually. Default is false.

Returns

Task<bool>

A Task<TResult> that completes with true if 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

output LVCVideoAudioOutput

The video/audio output to add.

start bool

If true, starts the output immediately; otherwise, it must be started manually. Default is false.

Returns

Task<bool>

A Task<TResult> that completes with true if 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

index int

The zero-based index of the output.

Returns

LVCAudioOutput

The VisioForge.Core.LiveVideoCompositorV2.LVCAudioOutput at the specified index; null if 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

id Guid

The unique identifier of the output.

Returns

LVCAudioOutput

The VisioForge.Core.LiveVideoCompositorV2.LVCAudioOutput with the specified ID; null if 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

index int

The zero-based index of the output.

Returns

LVCOutput

The VisioForge.Core.LiveVideoCompositorV2.LVCOutput at the specified index; null if 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

id Guid

The unique identifier of the output.

Returns

LVCOutput

The VisioForge.Core.LiveVideoCompositorV2.LVCOutput with the specified ID; null if 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

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

name string

The name of the output to find.

Returns

LVCOutput

The first VisioForge.Core.LiveVideoCompositorV2.LVCOutput with the specified name; null if 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

name string

The name of the output to find.

Returns

Guid?

The Guid of the output if found; null if no output with the specified name exists.

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

id Guid

The unique identifier of the output.

Returns

string

The name of the output if found; null if 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

id Guid

The unique identifier of the output to remove.

Returns

Task<bool>

A Task<TResult> that completes with true if 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

index int

The zero-based index of the output.

Returns

LVCVideoAudioOutput

The VisioForge.Core.LiveVideoCompositorV2.LVCVideoAudioOutput at the specified index; null if 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

id Guid

The unique identifier of the output.

Returns

LVCVideoAudioOutput

The VisioForge.Core.LiveVideoCompositorV2.LVCVideoAudioOutput with the specified ID; null if 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

index int

The zero-based index of the output.

Returns

LVCVideoOutput

The VisioForge.Core.LiveVideoCompositorV2.LVCVideoOutput at the specified index; null if 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

id Guid

The unique identifier of the output.

Returns

LVCVideoOutput

The VisioForge.Core.LiveVideoCompositorV2.LVCVideoOutput with the specified ID; null if 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

licenseKey string

The unique license key provided by VisioForge.

userName string

The name of the user or organization associated with the license.

email string

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 true if 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:

  1. Applies license keys to all pipelines
  2. Builds the internal pipeline structure
  3. Preloads all inputs and outputs for synchronized startup
  4. Configures clock synchronization across all pipelines
  5. 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

Task

A Task representing the asynchronous stop operation.

Remarks

This method stops all components in the reverse order of startup:

  1. Stops all inputs
  2. Stops the main pipeline
  3. 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

effect BaseVideoEffect

The video effect to add or update. If an effect with the same name exists, it will be updated.

channel int

The channel to apply the effect to. This parameter is reserved for future use and currently has no effect. Default is 0.

Returns

Task

A Task representing the asynchronous operation.

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

channel int

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

effectName string

The unique name of the effect to retrieve.

channel int

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

effect BaseVideoEffect

The video effect instance to remove.

channel int

The channel to remove the effect from. This parameter is reserved for future use and currently has no effect. Default is 0.

Returns

Task

A Task representing the asynchronous operation.

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

name string

The unique name of the effect to remove.

channel int

The channel to remove the effect from. This parameter is reserved for future use and currently has no effect. Default is 0.

Returns

Task

A Task representing the asynchronous operation.

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

overlay IOverlayManagerElement

The overlay element to add, such as text, image, or shape overlay.

channel int

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

channel int

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

overlay IOverlayManagerElement

The overlay element to remove. Must be the same instance that was previously added.

channel int

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

index int

The zero-based index of the overlay to remove.

channel int

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

overlay IOverlayManagerElement

The overlay element with updated properties. Must be the same instance that was previously added.

channel int

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> OnError

Event Type

EventHandler<ErrorsEventArgs>

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.

See Also