Table of Contents

Class VideoEditCoreX

Namespace
VisioForge.Core.VideoEditX
Assembly
VisioForge.Core.dll

Provides audio effects management for timeline-based video editing. This partial class exposes collections for configuring audio effects and transitions, and internal methods for applying them to timeline clips during the rendering or playback pipeline construction. Supports professional audio post-processing including equalization, amplification, panorama, and crossfade transitions for polished audio output. Implements the IDisposable. Implements the INotifyPropertyChanged.

public class VideoEditCoreX : IDisposable, INotifyPropertyChanged

Inheritance

Implements

Inherited Members

Remarks

VideoEditCoreX uses the timeline editing engine as its foundation, providing a powerful timeline-based editing model with support for clips, layers, tracks, effects, and transitions. It replaces the legacy DirectShow-based editing solutions and offers true cross-platform compatibility.

Constructors

VideoEditCoreX(IVideoView)

Initializes a new instance of the VisioForge.Core.VideoEditX.VideoEditCoreX class with a video view for timeline preview. Sets up the editing environment, configures logging, and prepares the video editing pipeline infrastructure.

public VideoEditCoreX(IVideoView videoView)

Parameters

videoView IVideoView

The video view control that will display the timeline preview and playback.

VideoEditCoreX()

Initializes a new instance of the VisioForge.Core.VideoEditX.VideoEditCoreX class.

public VideoEditCoreX()

Properties

Audio_Effects

Gets the collection of audio effects to apply to the timeline during rendering or playback.

public List<IVideoEditXAudioEffect> Audio_Effects { get; }

Property Value

List<IVideoEditXAudioEffect>

Remarks

Add audio effects to this collection to apply volume adjustments, equalization, normalization, reverb, echo, and other audio processing to your audio content. Effects are applied to all audio clips on the timeline. Common effects include amplify, panorama (stereo positioning), equalizer bands, and dynamic range compression.

Audio_Transitions

Gets the collection of audio transitions to apply between audio clips on the timeline.

public List<AudioTransition> Audio_Transitions { get; }

Property Value

List<AudioTransition>

Remarks

Audio transitions provide smooth crossfades between audio clips, preventing abrupt audio cuts. Each transition specifies a start time, duration, and crossfade characteristics. Transitions blend the outgoing and incoming audio during the transition period, creating professional audio mixes. Unlike video transitions which have many types, audio transitions typically use crossfade blending.

AutoTransitions

Gets or sets a value indicating whether automatic transitions will be created between adjacent clips on the timeline.

public bool AutoTransitions { get; set; }

Property Value

bool

Remarks

When enabled, the editing engine automatically creates smooth crossfade transitions between overlapping or adjacent clips in the same layer. This provides a professional look without manually adding transitions. The transition duration is determined by the overlap between clips. Disable for hard cuts between clips.

ConsoleUsage

Gets or sets a value indicating whether the SDK is being used in a console application without GUI components.

public bool ConsoleUsage { get; set; }

Property Value

bool

Remarks

When set to true, the VisioForge.Core.VideoEditX.VideoEditCoreX.Start method will block until the operation completes, allowing console applications to run without additional threading logic. For GUI applications, leave this false to prevent blocking the UI thread.

Debug_Dir

Gets or sets the directory where debug logs and pipeline graphs will be saved when VisioForge.Core.VideoEditX.VideoEditCoreX.Debug_Mode is enabled.

public string Debug_Dir { get; set; }

Property Value

string

Remarks

When debug mode is enabled, the SDK will write detailed log files and media pipeline visualization files (DOT format) to this directory. If not specified, files are written to the current directory. Changing this property reconfigures the logger.

Debug_DisableMessageDialogs

Gets or sets a value indicating whether to suppress error message dialogs when VisioForge.Core.VideoEditX.VideoEditCoreX.OnError is not handled.

public bool Debug_DisableMessageDialogs { get; set; }

Property Value

bool

Remarks

By default, if the OnError event is not subscribed, errors may be displayed through message dialogs. Set this to true to disable automatic error display and handle all errors programmatically through the OnError event.

Debug_Mode

Gets or sets a value indicating whether debug mode is enabled, which activates detailed logging and pipeline visualization.

public bool Debug_Mode { get; set; }

Property Value

bool

Remarks

When enabled, the SDK generates detailed log files, saves media pipeline graphs, and provides extensive diagnostic information useful for troubleshooting. This increases disk I/O and should typically be disabled in production. Changing this property reconfigures the logger.

Debug_Telemetry

Gets or sets a value indicating whether to send anonymous telemetry data to Sentry during debugging sessions in Visual Studio.

public bool Debug_Telemetry { get; set; }

Property Value

bool

Remarks

Telemetry helps improve the SDK by reporting crashes and errors during development. Only anonymous diagnostic data is collected, and only when debugging in Visual Studio with a debugger attached. Telemetry is never active in release builds or production environments. Changing this property reconfigures the logger.

Fonts

Gets a collection of available system fonts that can be used for text overlays in video editing.

public ObservableCollection<FontDescriptionX> Fonts { get; }

Property Value

ObservableCollection<FontDescriptionX>

Remarks

This property enumerates all fonts available on the system that can be used with the text overlay feature. Each FontDescriptionX contains the font family name and style information required for rendering text.

Output_AudioChannels

Gets or sets the number of audio channels in the output audio stream.

public int Output_AudioChannels { get; set; }

Property Value

int

Remarks

This property defines the channel configuration of the output audio. If not explicitly set, it defaults to the channel count of the first audio clip added to the timeline. All source audio will be mixed or downmixed to match this channel configuration. Setting this property updates the audio track restrictions immediately.

Output_AudioSampleRate

Gets or sets the sample rate of the output audio stream in Hertz (Hz).

public int Output_AudioSampleRate { get; set; }

Property Value

int

Remarks

This property defines the sampling frequency of the output audio. If not explicitly set, it defaults to the sample rate of the first audio clip added to the timeline. All source audio will be resampled to match this rate. Higher sample rates provide better quality but larger file sizes. Setting this property updates the audio track restrictions immediately.

Output_Format

Gets or sets the output format and destination settings for the rendered video.

public IVideoEditXBaseOutput Output_Format { get; set; }

Property Value

IVideoEditXBaseOutput

Remarks

Set this property to configure where and how the final video will be saved. Available output formats include MP4, WebM, MOV, AVI, MKV, MPEG-TS, and various audio-only formats. If null, the SDK operates in preview-only mode without rendering to file. Each output format has specific codec and container requirements.

Output_VideoCrop

Gets or sets the video crop settings to apply to all video content during output rendering.

public CropVideoEffect Output_VideoCrop { get; set; }

Property Value

CropVideoEffect

Remarks

Use this property to crop all video content to a specific region during rendering. This is useful for removing black bars, focusing on a particular area, or adjusting aspect ratios. The crop is applied globally to all video clips before any other effects. Set to null to disable cropping.

Output_VideoFrameRate

Gets or sets the frame rate of the output video.

public VideoFrameRate Output_VideoFrameRate { get; set; }

Property Value

VideoFrameRate

Remarks

This property defines the playback frame rate of the rendered video. If not explicitly set, it defaults to the frame rate of the first video clip added to the timeline. Common values include 24fps (film), 25fps (PAL), 30fps (NTSC), 60fps (high frame rate). Frame rate is expressed as a rational number (numerator/denominator). Setting this property updates the video track restrictions immediately.

Output_VideoRotateFlip

Gets or sets the video rotation and flip settings to apply to all video content during output rendering.

public FlipRotateVideoEffect Output_VideoRotateFlip { get; set; }

Property Value

FlipRotateVideoEffect

Remarks

Use this property to rotate or flip all video content during rendering. This is useful for correcting orientation issues from mobile devices or creating mirror effects. The transformation is applied globally to all video clips before other effects. Set to null to disable rotation/flip.

Output_VideoSize

Gets or sets the resolution (width and height) of the output video in pixels.

public Size Output_VideoSize { get; set; }

Property Value

Size

Remarks

This property defines the dimensions of the rendered video. If not explicitly set, it defaults to the resolution of the first video clip added to the timeline. All source media will be scaled to match this resolution. Common values include 1920x1080 (Full HD), 1280x720 (HD), 3840x2160 (4K UHD). Setting this property updates the video track restrictions immediately.

SDK_BuildDate

Gets the build date of the VideoEditCoreX SDK assembly.

public static DateTime SDK_BuildDate { get; }

Property Value

DateTime

Remarks

This property is useful for determining the exact build of the SDK being used, particularly when troubleshooting or verifying SDK updates.

SDK_Version

Gets the version number of the VideoEditCoreX SDK.

public static Version SDK_Version { get; }

Property Value

Version

Remarks

Use this property to check the SDK version at runtime for compatibility checks or feature detection.

SmartRender

Gets or sets a value indicating whether to use smart render mode, which avoids re-encoding when possible.

public bool SmartRender { get; set; }

Property Value

bool

Remarks

Smart rendering examines the source media and output format. When they match or are compatible, it copies streams directly without re-encoding, significantly improving rendering speed and quality. However, this limits the ability to apply certain effects and transitions. Use this for simple cutting and concatenation operations where quality preservation is critical.

State

Gets the current playback or rendering state of the video editing pipeline.

public PlaybackState State { get; }

Property Value

PlaybackState

Remarks

The state reflects the underlying media pipeline state. Check this property to determine if the media pipeline is ready for configuration (Free) or actively processing (Play).

Video_Effects

Gets the collection of video effects to apply to the timeline during rendering or playback.

public ObservableCollection<IVideoEditXVideoEffect> Video_Effects { get; }

Property Value

ObservableCollection<IVideoEditXVideoEffect>

Remarks

Add video effects to this collection to apply color correction, filters, deinterlacing, and other transformations to your video content. Effects are applied in the order they appear in the collection. Each effect can specify its own start and stop times to apply the effect to specific portions of the timeline. Common effects include brightness, contrast, saturation, blur, sharpen, and color balance adjustments.

Video_TextOverlays

Gets the collection of text overlays to render on top of the video during playback or rendering.

public List<TextOverlay> Video_TextOverlays { get; }

Property Value

List<TextOverlay>

Remarks

Text overlays enable adding titles, subtitles, credits, watermarks, and other text elements to your video. Each TextOverlay specifies the text content, position, font, color, size, duration, and timing. Overlays are rendered on top of the video content during the specified time range. The text supports various fonts (see VisioForge.Core.VideoEditX.VideoEditCoreX.Fonts property), colors, and positioning options.

Video_Transitions

Gets the collection of video transitions to apply between clips on the timeline.

public ObservableCollection<VideoTransition> Video_Transitions { get; }

Property Value

ObservableCollection<VideoTransition>

Remarks

Video transitions provide smooth visual effects between clips, such as fades, wipes, and dissolves. Each transition specifies a type, start time, and duration. Transitions are rendered during the transition period between clips. Use VisioForge.Core.VideoEditX.VideoEditCoreX.Video_Transition_Add_FadeIn(System.TimeSpan,System.TimeSpan) and VisioForge.Core.VideoEditX.VideoEditCoreX.Video_Transition_Add_FadeOut(System.TimeSpan,System.TimeSpan) helper methods to easily add common transition types.

Methods

Dispose(bool)

Releases unmanaged and optionally managed resources used by the VideoEditCoreX instance. This implementation properly disposes the media pipeline, timeline objects, layers, assets, clips, encoding profiles, and progress timer to ensure complete cleanup and prevent memory leaks.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

true to release both managed and unmanaged resources; false to release only unmanaged resources.

Remarks

This method follows the standard IDisposable pattern. When disposing is true, all managed resources including the timeline editing pipeline, asset cache, and clip cache are properly released. The pipeline is set to null state before disposal, and appropriate delays are inserted to ensure clean shutdown.

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. This method releases the editing pipeline, timeline, layers, asset cache, clip cache, and all associated media resources. Call this method when you're finished using the VideoEditCoreX instance to ensure proper cleanup.

public void Dispose()

Remarks

This is the public entry point for disposing the VideoEditCoreX instance. After calling Dispose, the instance should not be used again. The method is safe to call multiple times. Following disposal, the object is removed from the finalization queue for improved garbage collection performance.

Duration()

Gets the total duration of the timeline based on all clips, effects, and transitions currently in the project.

public TimeSpan Duration()

Returns

TimeSpan

A TimeSpan representing the total timeline duration.

Remarks

The duration reflects the combined length of all media on the timeline, including any transitions. Returns TimeSpan.Zero if the pipeline is not initialized or no clips have been added.

~VideoEditCoreX()

Finalizes an instance of the VisioForge.Core.VideoEditX.VideoEditCoreX class, performing cleanup if Dispose was not called. This destructor ensures that unmanaged resources are released even if the object is not explicitly disposed, though explicit disposal through Dispose() is strongly recommended for predictable resource cleanup.

protected ~VideoEditCoreX()

GetLogger()

Gets the Serilog logger instance used by the VideoEditCoreX SDK for structured logging.

public ILogger GetLogger()

Returns

ILogger

The Serilog.ILogger instance configured for this SDK instance.

Remarks

Use this logger for consistent, structured logging throughout your application when working with VideoEditCoreX. The logger is automatically configured based on the VisioForge.Core.VideoEditX.VideoEditCoreX.Debug_Mode and VisioForge.Core.VideoEditX.VideoEditCoreX.Debug_Telemetry settings, with different verbosity levels and output targets depending on the mode.

Input_AddAudioFile(string, TimeSpan?)

Adds an audio file's audio stream to the timeline, including the entire duration of the audio.

public bool Input_AddAudioFile(string filename, TimeSpan? insertTime = null)

Parameters

filename string

The path to the audio file to add.

insertTime TimeSpan?

Optional timeline position where the audio should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the audio was successfully added; otherwise, false.

Remarks

Only the audio stream is added to the audio track. Supports all commonly used audio formats (MP3, AAC, WAV, FLAC, Vorbis, Opus, etc.). The audio will be mixed with any other audio on the timeline.

Input_AddAudioFile(AudioFileSource, TimeSpan?)

Adds an audio file's audio stream to the timeline using advanced source configuration options.

public bool Input_AddAudioFile(AudioFileSource source, TimeSpan? insertTime = null)

Parameters

source AudioFileSource

An VisioForge.Core.Types.X.VideoEdit.AudioFileSource object containing the audio file path, optional segments, and effects configuration.

insertTime TimeSpan?

Optional timeline position where the audio should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the audio was successfully added; otherwise, false.

Remarks

This overload provides access to advanced features like multi-segment editing and per-clip audio effects through the AudioFileSource object.

Input_AddAudioFile(string, TimeSpan, TimeSpan, TimeSpan?)

Adds a specific segment of an audio file's audio stream to the timeline, from startTime to stopTime.

public bool Input_AddAudioFile(string filename, TimeSpan startTime, TimeSpan stopTime, TimeSpan? insertTime = null)

Parameters

filename string

The path to the audio file to add.

startTime TimeSpan

The start time within the source audio from which to begin the clip.

stopTime TimeSpan

The end time within the source audio at which to end the clip.

insertTime TimeSpan?

Optional timeline position where the audio segment should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the audio segment was successfully added; otherwise, false.

Remarks

This method enables precise trimming of source audio files. Only the portion between startTime and stopTime is added to the timeline and mixed with other audio tracks.

Input_AddAudioFromStream(Stream, TimeSpan?, TimeSpan?, TimeSpan?)

Adds a specific segment of audio data from a seekable stream to the timeline, from startTime to stopTime.

public bool Input_AddAudioFromStream(Stream stream, TimeSpan? startTime, TimeSpan? stopTime, TimeSpan? insertTime = null)

Parameters

stream Stream

A seekable stream containing the audio data.

startTime TimeSpan?

Optional start time within the source audio. If null, starts from the beginning.

stopTime TimeSpan?

Optional end time within the source audio. If null, includes until the end.

insertTime TimeSpan?

Optional timeline position where the audio segment should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the audio segment was successfully added; otherwise, false.

Remarks

The stream must support seeking. The audio data is copied to a temporary file for processing. This enables precise trimming when loading audio from streams rather than files.

Input_AddAudioVideoFile(string, TimeSpan?, TimeSpan?, TimeSpan?)

Adds both audio and video streams from a media file to the timeline.

public bool Input_AddAudioVideoFile(string filename, TimeSpan? startTime = null, TimeSpan? stopTime = null, TimeSpan? insertTime = null)

Parameters

filename string

The path to the media file to add.

startTime TimeSpan?

Optional start time within the source file. If null, starts from the beginning of the file.

stopTime TimeSpan?

Optional end time within the source file. If null, includes until the end of the file.

insertTime TimeSpan?

Optional timeline position where the media should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the audio and video streams were successfully added; otherwise, false.

Remarks

This method adds both audio and video tracks from the source file. If the file contains only audio or only video, only the available stream will be added. Supports all commonly used media formats.

Input_AddAudioVideoFromStream(Stream, TimeSpan?, TimeSpan?, TimeSpan?)

Adds both audio and video streams from a seekable stream containing media data to the timeline.

public bool Input_AddAudioVideoFromStream(Stream stream, TimeSpan? startTime = null, TimeSpan? stopTime = null, TimeSpan? insertTime = null)

Parameters

stream Stream

A seekable stream containing the media data.

startTime TimeSpan?

Optional start time within the source media. If null, starts from the beginning.

stopTime TimeSpan?

Optional end time within the source media. If null, includes until the end.

insertTime TimeSpan?

Optional timeline position where the media should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the audio and video streams were successfully added; otherwise, false.

Remarks

The stream must support seeking. The media data is copied to a temporary file for processing. Both audio and video tracks are added if present in the stream.

Input_AddImageFile(string, TimeSpan, TimeSpan?)

Adds a static image to the timeline with the specified duration, creating a video clip from the image file.

public bool Input_AddImageFile(string filename, TimeSpan duration, TimeSpan? insertTime = null)

Parameters

filename string

The path to the image file to add.

duration TimeSpan

The duration for which the image should be displayed in the timeline.

insertTime TimeSpan?

Optional timeline position where the image should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the image was successfully added; otherwise, false.

Remarks

Supported image formats include JPEG, PNG, BMP, GIF, and other formats supported by SkiaSharp. The image will be scaled to match the output video resolution while maintaining aspect ratio.

Input_AddImageFile(ImageFileSource, TimeSpan?)

Adds a static image to the timeline using advanced source configuration options.

public bool Input_AddImageFile(ImageFileSource source, TimeSpan? insertTime = null)

Parameters

source ImageFileSource

An VisioForge.Core.Types.X.VideoEdit.ImageFileSource object containing the image file path, duration, and optional effects.

insertTime TimeSpan?

Optional timeline position where the image should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the image was successfully added; otherwise, false.

Remarks

This overload allows specifying additional properties through the ImageFileSource object, such as layer assignment and per-clip video effects.

Input_AddImageFromStream(Stream, TimeSpan, TimeSpan?)

Adds a static image to the timeline from a seekable stream with the specified duration.

public bool Input_AddImageFromStream(Stream stream, TimeSpan duration, TimeSpan? insertTime = null)

Parameters

stream Stream

A seekable stream containing the image data.

duration TimeSpan

The duration for which the image should be displayed in the timeline.

insertTime TimeSpan?

Optional timeline position where the image should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the image was successfully added; otherwise, false.

Remarks

The stream must support seeking. The image data is copied to a temporary file for processing. Supported formats are the same as VisioForge.Core.VideoEditX.VideoEditCoreX.Input_AddImageFile(System.String,System.TimeSpan,System.Nullable{System.TimeSpan}).

Input_AddTestClip(TimeSpan, TimeSpan, TimeSpan, string)

Adds a test clip to the timeline for debugging and testing purposes, generating synthetic video content.

public bool Input_AddTestClip(TimeSpan startTime, TimeSpan stopTime, TimeSpan insertTime, string id = "blue")

Parameters

startTime TimeSpan

The start time in the timeline where the test clip begins.

stopTime TimeSpan

The end time in the timeline where the test clip ends.

insertTime TimeSpan

The in-point time within the test pattern itself.

id string

The test pattern identifier (e.g., "blue", "smpte", "snow", "black"). Default is "blue".

Returns

bool

true if the test clip was successfully added; otherwise, false.

Remarks

Test clips are useful for debugging pipelines, testing effects, and creating placeholder content. Available patterns include solid colors, SMPTE color bars, snow, and various test patterns.

Input_AddVideoFile(string, TimeSpan?)

Adds a video file's video stream to the timeline, including the entire duration of the video.

public bool Input_AddVideoFile(string filename, TimeSpan? insertTime = null)

Parameters

filename string

The path to the video file to add.

insertTime TimeSpan?

Optional timeline position where the video should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the video was successfully added; otherwise, false.

Remarks

Only the video stream is added; audio is not included. Use VisioForge.Core.VideoEditX.VideoEditCoreX.Input_AddAudioVideoFile(System.String,System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan}) to add both. Supports all commonly used video formats (MP4, AVI, MKV, WebM, MOV, etc.).

Input_AddVideoFile(VideoFileSource, TimeSpan?)

Adds a video file's video stream to the timeline using advanced source configuration options.

public bool Input_AddVideoFile(VideoFileSource source, TimeSpan? insertTime = null)

Parameters

source VideoFileSource

A VisioForge.Core.Types.X.VideoEdit.VideoFileSource object containing the video file path, optional segments, and effects configuration.

insertTime TimeSpan?

Optional timeline position where the video should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the video was successfully added; otherwise, false.

Remarks

This overload provides access to advanced features like multi-segment editing, layer assignment, and per-clip video effects through the VideoFileSource object.

Input_AddVideoFile(string, TimeSpan, TimeSpan, TimeSpan?)

Adds a specific segment of a video file's video stream to the timeline, from startTime to stopTime.

public bool Input_AddVideoFile(string filename, TimeSpan startTime, TimeSpan stopTime, TimeSpan? insertTime = null)

Parameters

filename string

The path to the video file to add.

startTime TimeSpan

The start time within the source video from which to begin the clip.

stopTime TimeSpan

The end time within the source video at which to end the clip.

insertTime TimeSpan?

Optional timeline position where the video segment should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the video segment was successfully added; otherwise, false.

Remarks

This method enables precise trimming of source video files. Only the portion between startTime and stopTime is added to the timeline. Only the video stream is included; use VisioForge.Core.VideoEditX.VideoEditCoreX.Input_AddAudioVideoFile(System.String,System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan}) for both audio and video.

Input_AddVideoFromStream(Stream, TimeSpan, TimeSpan, TimeSpan?)

Adds a specific segment of video data from a seekable stream to the timeline, from startTime to stopTime.

public bool Input_AddVideoFromStream(Stream stream, TimeSpan startTime, TimeSpan stopTime, TimeSpan? insertTime = null)

Parameters

stream Stream

A seekable stream containing the video data.

startTime TimeSpan

The start time within the source video from which to begin the clip.

stopTime TimeSpan

The end time within the source video at which to end the clip.

insertTime TimeSpan?

Optional timeline position where the video segment should be inserted. If null, appends to the end of the timeline.

Returns

bool

true if the video segment was successfully added; otherwise, false.

Remarks

The stream must support seeking. The video data is copied to a temporary file for processing. This enables precise trimming when loading video from streams rather than files.

Input_AddVideoLayer()

Creates a new video layer in the timeline for advanced multi-layer composition.

public int Input_AddVideoLayer()

Returns

int

The zero-based index of the newly created layer.

Remarks

Video layers enable picture-in-picture effects, watermarks, and complex compositions. Layers are composited from bottom to top, with higher-numbered layers appearing on top. Use the layer ID when adding clips with VisioForge.Core.Types.X.VideoEdit.VideoFileSource or VisioForge.Core.Types.X.VideoEdit.ImageFileSource to specify which layer the clip should be added to.

Input_Clear_List()

Removes all input clips from the timeline, clearing all audio and video content.

public void Input_Clear_List()

Remarks

This method removes all media clips that have been added to the main layer. Effects and transitions are not removed by this operation. After clearing, you can add new clips to build a different timeline composition.

OnPropertyChanged(string)

Raises the PropertyChanged event for the specified property.

protected virtual void OnPropertyChanged(string propertyName = null)

Parameters

propertyName string

The name of the property that changed.

Position_Get()

Gets the current playback or rendering position within the timeline.

public TimeSpan Position_Get()

Returns

TimeSpan

A TimeSpan representing the current position in the timeline.

Remarks

During preview playback, this indicates the current viewing position. During rendering, this reflects the progress of the rendering operation. Returns TimeSpan.Zero if the pipeline is not initialized.

Position_Set(TimeSpan, bool)

Sets the current playback position within the timeline, allowing you to jump to a specific time during preview.

public void Position_Set(TimeSpan position, bool seekToKeyframe = false)

Parameters

position TimeSpan

The target position in the timeline to seek to.

seekToKeyframe bool

If true, seeks to the nearest keyframe for faster seeking; if false, seeks to the exact frame (slower but more accurate).

Remarks

Seeking to keyframes is faster but less precise. For frame-accurate positioning during editing, set seekToKeyframe to false. This method only works during preview playback, not during rendering.

SDKInit()

Initializes the media framework subsystems required for video editing operations. Must be called once before creating any VideoEditCoreX instances.

public static bool SDKInit()

Returns

bool

true if initialization was successful; otherwise, false.

Remarks

This method initializes the core media framework and timeline editing services. Call this early in your application startup before using any video editing functionality.

SetLicenseKey(string, string, string)

Activates the VideoEditCoreX SDK with your purchased license credentials, removing trial limitations.

public void SetLicenseKey(string licenseKey, string username, string email)

Parameters

licenseKey string

The license key provided after purchase.

username string

The username used during the purchase process.

email string

The email address used during the purchase process.

Remarks

Call this method early in your application initialization, before creating any VideoEditCoreX instances. After activation, the SDK will operate without trial restrictions. License credentials are validated against the purchase information. Keep your license key secure and do not distribute it with your application. For subscription licenses, ensure your subscription is active for the license to remain valid.

Settings_Load(string)

Loads SDK configuration settings from a JSON file, restoring all properties to their saved values.

public bool Settings_Load(string jsonFilename)

Parameters

jsonFilename string

The full path to the JSON settings file to load.

Returns

bool

true if settings were successfully loaded; false if the file doesn't exist or loading failed.

Remarks

This method deserializes the JSON file and copies all property values to the current instance. The settings file should have been previously created using VisioForge.Core.VideoEditX.VideoEditCoreX.Settings_Save(System.String,System.String). This is useful for persisting user configurations or restoring complex editing setups. Verify the file exists before calling to avoid errors.

Settings_Save(string, string)

Saves the current SDK configuration settings to JSON files for later restoration.

public bool Settings_Save(string jsonFilename, string infoFilename)

Parameters

jsonFilename string

The full path where the main settings JSON file will be saved.

infoFilename string

Optional path for saving SDK version information. Can be null or empty to skip.

Returns

bool

true if settings were successfully saved; false if an error occurred during saving.

Remarks

This method serializes the current VideoEditCoreX configuration to JSON format, including all properties, effects, and transitions. Video effects are saved to a separate "_video_effects.json" file in the same directory. Use VisioForge.Core.VideoEditX.VideoEditCoreX.Settings_Load(System.String) to restore these settings later. The directory is created if it doesn't exist. Settings can be used to persist user preferences or save complex editing projects for later resumption.

Start()

Starts the video editing operation, either beginning timeline playback for preview or initiating rendering to the output file. Validates license, builds the pipeline with all configured clips, effects, and transitions, and begins processing.

public bool Start()

Returns

bool

true if the operation started successfully; otherwise, false.

Remarks

This method performs license validation, constructs the complete editing pipeline including all input clips, effects, transitions, and output settings, then starts either preview playback or file rendering depending on the configuration. Progress can be monitored through the OnProgress event.

Stop()

Stops the current video editing operation, whether it's timeline preview playback or rendering to file. Gracefully shuts down the pipeline and releases associated resources.

public bool Stop()

Returns

bool

true if the stop operation completed successfully; otherwise, false.

Remarks

This method sends an end-of-stream event to the pipeline, waits for proper shutdown, and cleans up all pipeline resources. After stopping, the pipeline can be reconfigured and started again.

Video_Transition_Add_FadeIn(TimeSpan, TimeSpan)

Adds a fade-in transition effect to the video timeline, creating a smooth transition from black to full opacity. This is a convenience method that creates a FadeIn VideoTransition and adds it to the VisioForge.Core.VideoEditX.VideoEditCoreX.Video_Transitions collection.

public void Video_Transition_Add_FadeIn(TimeSpan startTime, TimeSpan stopTime)

Parameters

startTime TimeSpan

The timeline position where the fade-in effect begins.

stopTime TimeSpan

The timeline position where the fade-in effect completes, reaching full opacity.

Remarks

The duration of the fade is determined by the difference between stopTime and startTime. Typical fade durations range from 0.5 to 2 seconds for professional video production.

Video_Transition_Add_FadeOut(TimeSpan, TimeSpan)

Adds a fade-out transition effect to the video timeline, creating a smooth transition from full opacity to black. This is a convenience method that creates a FadeOut VideoTransition and adds it to the VisioForge.Core.VideoEditX.VideoEditCoreX.Video_Transitions collection.

public void Video_Transition_Add_FadeOut(TimeSpan startTime, TimeSpan stopTime)

Parameters

startTime TimeSpan

The timeline position where the fade-out effect begins at full opacity.

stopTime TimeSpan

The timeline position where the fade-out effect completes, reaching complete black.

Remarks

The duration of the fade is determined by the difference between stopTime and startTime. Fade-out transitions are commonly used at the end of videos or scenes for professional finishing.

Video_Transition_Clear()

Removes all video transitions from the timeline.

public void Video_Transition_Clear()

Remarks

Clears the VisioForge.Core.VideoEditX.VideoEditCoreX.Video_Transitions collection, removing all fade-in, fade-out, and other transition effects. This results in hard cuts between all clips. Call this before reconfiguring transitions to start fresh.

Video_Transitions_Names()

Gets a list of all available video transition type names that can be used in the timeline.

public ObservableCollection<string> Video_Transitions_Names()

Returns

ObservableCollection<string>

An observable collection of strings containing the names of all supported transition types.

Remarks

This method returns the names from the VisioForge.Core.Types.X.VideoEdit.VideoTransitionType enumeration, excluding the "None" value. Use these names to discover available transition effects. Common transitions include crossfade, wipe variations, clock wipes, and iris effects.

OnError

Occurs when an error is detected in the video editing pipeline.

public event EventHandler<ErrorsEventArgs> OnError

Event Type

EventHandler<ErrorsEventArgs>

Remarks

This event provides detailed error information including error level and message. Subscribe to this event to handle errors gracefully and provide user feedback. If not handled, errors may be displayed through the video view if available.

OnPause

Occurs when playback or rendering is paused.

public event EventHandler<EventArgs> OnPause

Event Type

EventHandler<EventArgs>

Remarks

This event fires when the media pipeline transitions from playing to paused state. Preview playback can be paused, but rendering operations typically run to completion without pause support.

OnProgress

Occurs periodically during rendering to report the progress of the output operation.

public event EventHandler<ProgressEventArgs> OnProgress

Event Type

EventHandler<ProgressEventArgs>

Remarks

Progress events are raised approximately every 100 milliseconds during rendering operations. The event args include a percentage (0-100) indicating how much of the timeline has been processed. This event is primarily useful when rendering to file, not during preview playback.

OnResume

Occurs when paused playback resumes.

public event EventHandler<EventArgs> OnResume

Event Type

EventHandler<EventArgs>

Remarks

This event fires when the media pipeline transitions from paused back to playing state during preview playback.

OnStart

Occurs when playback or rendering starts successfully.

public event EventHandler<EventArgs> OnStart

Event Type

EventHandler<EventArgs>

Remarks

This event fires after the media pipeline transitions to the playing state and begins processing the timeline. It indicates that preview playback or rendering to file has begun.

OnStop

Occurs when playback or rendering stops, either by reaching the end of the timeline or by calling VisioForge.Core.VideoEditX.VideoEditCoreX.Stop.

public event EventHandler<StopEventArgs> OnStop

Event Type

EventHandler<StopEventArgs>

Remarks

This event fires when the operation completes normally or is stopped manually. The event args include the final position in the timeline. After this event, the media pipeline is ready to be reconfigured and restarted.

PropertyChanged

Property changed event.

public event PropertyChangedEventHandler PropertyChanged

Event Type

PropertyChangedEventHandler

See Also