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, INotifyPropertyChangedInheritance
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
videoViewIVideoView-
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
disposingbool-
trueto release both managed and unmanaged resources;falseto 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
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
filenamestring-
The path to the audio file to add.
insertTimeTimeSpan?-
Optional timeline position where the audio should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
sourceAudioFileSource-
An VisioForge.Core.Types.X.VideoEdit.AudioFileSource object containing the audio file path, optional segments, and effects configuration.
insertTimeTimeSpan?-
Optional timeline position where the audio should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
filenamestring-
The path to the audio file to add.
startTimeTimeSpan-
The start time within the source audio from which to begin the clip.
stopTimeTimeSpan-
The end time within the source audio at which to end the clip.
insertTimeTimeSpan?-
Optional timeline position where the audio segment should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
streamStream-
A seekable stream containing the audio data.
startTimeTimeSpan?-
Optional start time within the source audio. If null, starts from the beginning.
stopTimeTimeSpan?-
Optional end time within the source audio. If null, includes until the end.
insertTimeTimeSpan?-
Optional timeline position where the audio segment should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
filenamestring-
The path to the media file to add.
startTimeTimeSpan?-
Optional start time within the source file. If null, starts from the beginning of the file.
stopTimeTimeSpan?-
Optional end time within the source file. If null, includes until the end of the file.
insertTimeTimeSpan?-
Optional timeline position where the media should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
streamStream-
A seekable stream containing the media data.
startTimeTimeSpan?-
Optional start time within the source media. If null, starts from the beginning.
stopTimeTimeSpan?-
Optional end time within the source media. If null, includes until the end.
insertTimeTimeSpan?-
Optional timeline position where the media should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
filenamestring-
The path to the image file to add.
durationTimeSpan-
The duration for which the image should be displayed in the timeline.
insertTimeTimeSpan?-
Optional timeline position where the image should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
sourceImageFileSource-
An VisioForge.Core.Types.X.VideoEdit.ImageFileSource object containing the image file path, duration, and optional effects.
insertTimeTimeSpan?-
Optional timeline position where the image should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
streamStream-
A seekable stream containing the image data.
durationTimeSpan-
The duration for which the image should be displayed in the timeline.
insertTimeTimeSpan?-
Optional timeline position where the image should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
startTimeTimeSpan-
The start time in the timeline where the test clip begins.
stopTimeTimeSpan-
The end time in the timeline where the test clip ends.
insertTimeTimeSpan-
The in-point time within the test pattern itself.
idstring-
The test pattern identifier (e.g., "blue", "smpte", "snow", "black"). Default is "blue".
Returns
- bool
-
trueif 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
filenamestring-
The path to the video file to add.
insertTimeTimeSpan?-
Optional timeline position where the video should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
sourceVideoFileSource-
A VisioForge.Core.Types.X.VideoEdit.VideoFileSource object containing the video file path, optional segments, and effects configuration.
insertTimeTimeSpan?-
Optional timeline position where the video should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
filenamestring-
The path to the video file to add.
startTimeTimeSpan-
The start time within the source video from which to begin the clip.
stopTimeTimeSpan-
The end time within the source video at which to end the clip.
insertTimeTimeSpan?-
Optional timeline position where the video segment should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
streamStream-
A seekable stream containing the video data.
startTimeTimeSpan-
The start time within the source video from which to begin the clip.
stopTimeTimeSpan-
The end time within the source video at which to end the clip.
insertTimeTimeSpan?-
Optional timeline position where the video segment should be inserted. If null, appends to the end of the timeline.
Returns
- bool
-
trueif 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
propertyNamestring-
The name of the property that changed.
Position_Get()
Gets the current playback or rendering position within the timeline.
public TimeSpan Position_Get()Returns
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
positionTimeSpan-
The target position in the timeline to seek to.
seekToKeyframebool-
If
true, seeks to the nearest keyframe for faster seeking; iffalse, 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
-
trueif 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
licenseKeystring-
The license key provided after purchase.
usernamestring-
The username used during the purchase process.
emailstring-
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
jsonFilenamestring-
The full path to the JSON settings file to load.
Returns
- bool
-
trueif settings were successfully loaded;falseif 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
jsonFilenamestring-
The full path where the main settings JSON file will be saved.
infoFilenamestring-
Optional path for saving SDK version information. Can be null or empty to skip.
Returns
- bool
-
trueif settings were successfully saved;falseif 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
-
trueif 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
-
trueif 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
startTimeTimeSpan-
The timeline position where the fade-in effect begins.
stopTimeTimeSpan-
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
startTimeTimeSpan-
The timeline position where the fade-out effect begins at full opacity.
stopTimeTimeSpan-
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> OnErrorEvent Type
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> OnPauseEvent Type
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> OnProgressEvent Type
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> OnResumeEvent Type
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> OnStartEvent Type
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> OnStopEvent Type
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