Class VideoEditCore
- Namespace
- VisioForge.Core.VideoEdit
- Assembly
- VisioForge.Core.dll
Windows DirectShow-based video editing SDK that provides timeline-based editing, transitions, effects, and multi-format output.
public class VideoEditCore : IDisposable, IVideoEditCore, IMPVCVECore, INotifyPropertyChanged, IAsyncDisposableInheritance
Implements
Inherited Members
Remarks
VideoEditCore is the main class for Windows video editing operations using DirectShow and DirectShow Editing Services (DES). This SDK is Windows-specific and provides professional video editing capabilities including:
- Timeline-based editing with multiple video and audio tracks
- Professional transitions and effects (SMPTE, custom GPU-accelerated effects)
- Fast editing without re-encoding (fast edit mode)
- Video encryption and content protection
- Multi-format output (AVI, MP4, WMV, WEBM, MKV, etc.)
- Network streaming (RTSP, RTMP, HLS, WMV streaming)
- Real-time preview and processing
- Audio and video effects processing
The class is implemented as a partial class split across multiple files for maintainability.
Constructors
VideoEditCore(IVideoView, bool)
Initializes a new instance of the VisioForge.Core.VideoEdit.VideoEditCore class with a video view.
public VideoEditCore(IVideoView videoView, bool initialize = true)Parameters
videoViewIVideoView-
The video view interface for rendering video output.
initializebool-
If set to
true, performs initialization immediately; otherwise, initialization must be done manually.
Remarks
This constructor attaches the provided video view and optionally initializes the video editor. Use initialize=false when you need to configure properties before initialization.
VideoEditCore(bool)
Initializes a new instance of the VisioForge.Core.VideoEdit.VideoEditCore class without a video view.
public VideoEditCore(bool initialize = true)Parameters
initializebool-
If set to
true, performs initialization immediately; otherwise, initialization must be done manually.
Remarks
Use this constructor for headless operation or when the video view will be set later. The VideoView property must be set before preview can be displayed.
Properties
Audio_Channel_Mapper
Gets or sets the audio channel mapper settings.
public AudioChannelMapperSettings Audio_Channel_Mapper { get; set; }Property Value
Remarks
Configures how audio channels are mapped from input to output. Useful for remapping stereo to mono, changing channel assignments, or mixing channels.
Audio_Effects_Enabled
Gets or sets a value indicating whether audio effects are enabled.
public bool Audio_Effects_Enabled { get; set; }Property Value
Remarks
When enabled, allows applying various audio effects to the audio stream. This includes effects like echo, reverb, pitch shift, and other DSP effects.
Audio_Enhancer_Enabled
Gets or sets a value indicating whether audio enhancer is enabled.
public bool Audio_Enhancer_Enabled { get; set; }Property Value
Remarks
When enabled, applies audio enhancement processing to improve audio quality. This may include noise reduction, normalization, and other audio improvements.
Audio_Preview_Enabled
Gets or sets a value indicating whether audio playback is enabled during preview.
public bool Audio_Preview_Enabled { get; set; }Property Value
Remarks
Controls whether audio is played during video preview mode. Set to false to mute audio during preview while still processing it for output.
Audio_VUMeter_Enabled
Gets or sets a value indicating whether the audio VU meter is enabled.
public bool Audio_VUMeter_Enabled { get; set; }Property Value
Remarks
When enabled, provides real-time audio level monitoring through VU meter events. The VU meter displays the amplitude of the audio signal.
Audio_VUMeter_Pro_Enabled
Gets or sets a value indicating whether the professional audio VU meter is enabled.
public bool Audio_VUMeter_Pro_Enabled { get; set; }Property Value
Remarks
Provides advanced VU meter functionality with enhanced audio visualization. Includes additional features like peak hold, stereo visualization, and frequency analysis. This is the newer, more feature-rich version of the VU meter.
Audio_VUMeter_Pro_Volume
Gets or sets the volume level used by the professional VU meter, in percentage (0-100).
[JsonIgnore]
public int Audio_VUMeter_Pro_Volume { get; set; }Property Value
Remarks
Controls the input sensitivity of the VU meter. Higher values make the meter more sensitive to quieter sounds.
Barcode_Reader_Enabled
Gets or sets a value indicating whether barcode detection is enabled.
public bool Barcode_Reader_Enabled { get; set; }Property Value
Remarks
When enabled, the system will attempt to detect and decode barcodes in the video stream. Detected barcodes will trigger events with the decoded data.
Barcode_Reader_Type
Gets or sets the type of barcode to detect.
public BarcodeType Barcode_Reader_Type { get; set; }Property Value
Remarks
Specifies which barcode symbologies to look for (QR Code, Code128, EAN, etc.). Can be set to detect multiple types or a specific type for better performance.
ChromaKey
Gets or sets the chroma key (green screen) configuration.
public ChromaKeySettings ChromaKey { get; set; }Property Value
Remarks
Configures color-based transparency for compositing. Commonly used for green screen or blue screen effects to replace backgrounds.
ConsoleUsage
Gets or sets a value indicating whether the SDK is being used in a console application.
public bool ConsoleUsage { get; set; }Property Value
Remarks
Enable this when using the SDK in a console application without a GUI. This adjusts internal behavior for headless operation.
CustomRedist_Auto
Gets or sets a value indicating whether custom redistributables are detected automatically.
public bool CustomRedist_Auto { get; set; }Property Value
Remarks
When enabled, the SDK automatically searches the application folder and platform-specific subfolders (x86/x64) for redistributable filter files. This simplifies deployment by not requiring explicit path configuration.
CustomRedist_DisableDialog
Gets or sets a value indicating whether the redistributable warning dialog is disabled.
public bool CustomRedist_DisableDialog { get; set; }Property Value
Remarks
During startup, the SDK checks for required redistributable components. If components are missing, a warning dialog is normally shown. Set to true to suppress this dialog in production environments.
CustomRedist_Path
Gets or sets the custom path for redistributable DirectShow filters.
public string CustomRedist_Path { get; set; }Property Value
Remarks
Specifies a directory containing required .ax (DirectShow filter) files. If not set, the application folder is searched for these files. Useful for deploying filters separately from the main application.
Custom_Audio_Decoder
Gets or sets the name of a custom audio decoder to use.
public string Custom_Audio_Decoder { get; set; }Property Value
Remarks
Allows specifying a custom DirectShow filter for audio decoding. Leave empty to use the default decoder selection mechanism.
Custom_Video_Decoder
Gets or sets the name of a custom video decoder to use.
public string Custom_Video_Decoder { get; set; }Property Value
Remarks
Allows specifying a custom DirectShow filter for video decoding. Leave empty to use the default decoder selection mechanism.
Debug_Dir
Gets or sets debug directory.
public string Debug_Dir { get; set; }Property Value
Debug_DisableMessageDialogs
Gets or sets a value indicating whether message dialog will be shown in case of error if OnError event is not implemented.
public bool Debug_DisableMessageDialogs { get; set; }Property Value
Debug_Mode
Gets or sets a value indicating whether debug mode enabled.
public bool Debug_Mode { get; set; }Property Value
Debug_Telemetry
Gets or sets a value indicating whether sending telemetry enabled (only during debugging in Visual Studio).
public bool Debug_Telemetry { get; set; }Property Value
Remarks
Only anonymous data will be send.
Decklink_Input_Capture_Timecode_Source
Gets or sets the timecode source for Decklink capture devices.
public DecklinkCaptureTimecodeSource Decklink_Input_Capture_Timecode_Source { get; set; }Property Value
Remarks
Specifies which timecode track to read from the Decklink input (VITC, LTC, etc.). Used for professional video production workflows requiring frame-accurate timecode.
Decklink_Output
Gets or sets the configuration for Decklink video output devices.
public DecklinkOutputSettings Decklink_Output { get; set; }Property Value
Remarks
Configures professional Blackmagic Decklink cards for video output. Includes settings for video mode, audio channels, and output routing.
Dynamic_Reconnection
Gets or sets a value indicating whether dynamic source reconnection is enabled.
public bool Dynamic_Reconnection { get; set; }Property Value
Remarks
By default, the basic render engine loads every source before rendering a project. This can result in a long start-up time. With dynamic reconnection, sources are loaded only when needed. This can shorten the start-up time, but possibly interfere with smooth playback. Generally, the more source clips that a project uses, the more you might benefit from dynamic reconnection. Best suited for projects with many short clips where not all sources are needed simultaneously.
Loop
Gets or sets a value indicating whether playback should loop continuously.
public bool Loop { get; set; }Property Value
Remarks
When enabled, playback will automatically restart from the beginning when reaching the end. Useful for continuous playback scenarios or demo displays.
Mode
Gets or sets the video editing operation mode.
public VideoEditMode Mode { get; set; }Property Value
Remarks
Determines the primary function of the video editor:
- Preview: Only preview without saving
- Convert: Convert between formats
- Edit: Full editing capabilities
Motion_Detection
Gets or sets the motion detection configuration.
public MotionDetectionSettings Motion_Detection { get; set; }Property Value
Remarks
Configures motion detection algorithms including sensitivity, detection zones, and motion highlighting options. Useful for security applications or activity monitoring.
Motion_DetectionEx
Gets or sets the advanced motion and object detection configuration.
public MotionDetectionExSettings Motion_DetectionEx { get; set; }Property Value
Remarks
Provides extended motion detection capabilities including object tracking, advanced algorithms, and more sophisticated detection parameters.
Network_Streaming_Audio_Enabled
Gets or sets a value indicating whether audio is included in network streaming.
public bool Network_Streaming_Audio_Enabled { get; set; }Property Value
Remarks
When disabled, only video will be streamed over the network. Useful for reducing bandwidth when audio is not needed.
Network_Streaming_Enabled
Gets or sets a value indicating whether network streaming is enabled.
public bool Network_Streaming_Enabled { get; set; }Property Value
Remarks
Enables streaming the video output over a network using various protocols. The stream can be accessed by network clients for remote viewing.
Network_Streaming_Format
Gets or sets the network streaming protocol format.
public NetworkStreamingFormat Network_Streaming_Format { get; set; }Property Value
Remarks
Determines the streaming protocol to use (RTSP, RTMP, HTTP, etc.). Different formats have different compatibility and feature sets.
Network_Streaming_Network_Port
Gets or sets the network port number for streaming server.
public int Network_Streaming_Network_Port { get; set; }Property Value
Remarks
The TCP/UDP port on which the streaming server will listen for connections. Ensure the port is not blocked by firewalls and is not in use by other applications.
Network_Streaming_Output
Gets or sets the detailed network streaming output configuration.
public INetworkStreamingOutput Network_Streaming_Output { get; set; }Property Value
Remarks
Contains protocol-specific settings for the network stream including encoding parameters, authentication, and advanced options.
Network_Streaming_URL
Gets or sets the streaming server URL or connection string.
public string Network_Streaming_URL { get; set; }Property Value
Remarks
Contains the server address (hostname or IP) and port number. Format depends on the streaming protocol being used. Example: "rtsp://192.168.1.100:554/stream"
Network_Streaming_WMV_Maximum_Clients
Gets or sets the maximum number of simultaneous streaming clients for WMV format.
public int Network_Streaming_WMV_Maximum_Clients { get; set; }Property Value
Remarks
Limits the number of clients that can connect to the WMV stream simultaneously. Set based on available bandwidth and server capacity.
Output_Filename
Gets or sets the full path and filename for the output file.
public string Output_Filename { get; set; }Property Value
Remarks
Specifies where the edited video will be saved. The file extension should match the selected output format.
Output_Format
Gets or sets the output file format configuration.
public IVideoEditBaseOutput Output_Format { get; set; }Property Value
Remarks
Defines the container format, codecs, and encoding settings for the output file. Different output format classes provide settings for MP4, AVI, WMV, etc.
Start_DelayEnabled
Gets or sets a value indicating whether delayed start mode is enabled.
public bool Start_DelayEnabled { get; set; }Property Value
Remarks
This feature allows preparing the video processing graph without immediately starting playback. Useful for synchronizing multiple video editors or reducing startup latency. When enabled:
- Call Start() to build the graph and prepare resources
- Call StartDelayed() to begin actual playback/processing This enables near-instantaneous start since all initialization is already complete.
Tags
Gets or sets the metadata tags to be written to the output file.
[JsonIgnore]
public MediaFileTags Tags { get; set; }Property Value
Remarks
Includes information like title, artist, album, copyright, etc. Support depends on the output format's metadata capabilities.
UseLibMediaInfo
Gets or sets a value indicating whether MediaInfo library is used for file analysis.
public bool UseLibMediaInfo { get; set; }Property Value
Remarks
When enabled, uses the MediaInfo library to extract detailed metadata from media files. Provides more comprehensive information but may increase loading time.
VideoHeight
Gets or sets video height.
public int VideoHeight { get; set; }Property Value
VideoView
Gets or sets the video view interface for rendering video output.
[JsonIgnore]
public IVideoView VideoView { get; set; }Property Value
Remarks
The video view provides the rendering surface for video playback. This can be a window handle, control, or other platform-specific view. Setting this property automatically attaches the view to the video editor.
VideoWidth
Gets or sets video width.
public int VideoWidth { get; set; }Property Value
Video_Crop
Gets or sets the video cropping configuration.
public VideoCropSettings Video_Crop { get; set; }Property Value
Remarks
Defines the area of the video to keep by specifying crop margins. Useful for removing black bars, unwanted edges, or focusing on a specific region.
Video_Custom_Resizer_CLSID
Gets or sets the CLSID of a custom video resizer filter.
public Guid Video_Custom_Resizer_CLSID { get; set; }Property Value
Remarks
Allows specifying a custom DirectShow filter for video resizing operations. The filter must implement the appropriate interfaces for video transformation. Reference: http://msdn.microsoft.com/en-us/library/windows/desktop/dd377478(v=vs.85).aspx
Video_Effects_AllowMultipleStreams
Gets or sets a value indicating whether video effects can use independent preview and output streams.
public bool Video_Effects_AllowMultipleStreams { get; set; }Property Value
Remarks
When enabled, different effects can be applied to preview and output streams independently. This allows showing a clean preview while applying effects only to the output, or vice versa.
Video_Effects_Enabled
Gets or sets a value indicating whether CPU-based video effects are enabled.
public bool Video_Effects_Enabled { get; set; }Property Value
Remarks
Enables processing of video effects using the CPU. These effects may have higher quality but lower performance compared to GPU effects.
Video_Effects_GPU_Enabled
Gets or sets a value indicating whether GPU-accelerated video effects are enabled.
public bool Video_Effects_GPU_Enabled { get; set; }Property Value
Remarks
Enables hardware-accelerated video effects using the GPU. Provides better performance but requires compatible graphics hardware.
Video_FrameRate
Gets or sets the output video frame rate.
public VideoFrameRate Video_FrameRate { get; set; }Property Value
Remarks
Determines the frames per second (FPS) of the output video. Common values include 25, 29.97, 30, 50, 59.94, and 60 FPS.
Video_Preview_Enabled
Gets or sets a value indicating whether video preview is enabled.
public bool Video_Preview_Enabled { get; set; }Property Value
Remarks
Controls whether the video is displayed in the preview window during editing. Set to false to process video without displaying it (headless mode).
Video_Renderer
Gets or sets the video renderer configuration.
public VideoRendererSettings Video_Renderer { get; set; }Property Value
Remarks
Configures how video is displayed, including renderer type (EVR, VMR9, etc.), aspect ratio handling, and display synchronization options.
Video_Resize
Gets or sets a value indicating whether video resizing is enabled.
public bool Video_Resize { get; set; }Property Value
Remarks
When enabled, the output video will be resized to the dimensions specified in Video_Resize_Width and Video_Resize_Height properties.
Video_Resize_Height
Gets or sets the target height for video resizing, in pixels.
public int Video_Resize_Height { get; set; }Property Value
Remarks
Only applied when Video_Resize is enabled. Should be set in conjunction with Video_Resize_Width to maintain aspect ratio if desired.
Video_Resize_Width
Gets or sets the target width for video resizing, in pixels.
public int Video_Resize_Width { get; set; }Property Value
Remarks
Only applied when Video_Resize is enabled. Should be set in conjunction with Video_Resize_Height to maintain aspect ratio if desired.
Video_Rotation
Gets or sets the video rotation angle.
public RotateMode Video_Rotation { get; set; }Property Value
Remarks
Rotates the video by the specified angle (0, 90, 180, or 270 degrees). Useful for correcting orientation of videos recorded on mobile devices.
Video_Subtitles
Gets or sets the subtitle overlay configuration.
public SubtitlesSettings Video_Subtitles { get; set; }Property Value
Remarks
Configures subtitle rendering including font, color, position, and timing. Supports various subtitle formats like SRT, ASS, and embedded subtitles.
Virtual_Camera_Output_AlternativeAudioFilterName
Gets or sets the name of an alternative audio filter for virtual camera output.
public string Virtual_Camera_Output_AlternativeAudioFilterName { get; set; }Property Value
Remarks
Specifies a custom audio filter to use with the virtual camera output. The filter can be from the common filters or audio renderer category. Leave empty to use the default audio handling.
Virtual_Camera_Output_Enabled
Gets or sets a value indicating whether virtual camera output is enabled.
public bool Virtual_Camera_Output_Enabled { get; set; }Property Value
Remarks
When enabled, the video output is available as a virtual camera device that can be selected as input in other applications (Skype, Zoom, etc.).
Virtual_Camera_Output_LicenseKey
Gets or sets the license key for Virtual Camera SDK functionality.
public string Virtual_Camera_Output_LicenseKey { get; set; }Property Value
Remarks
Required for enabling virtual camera output feature. Contact VisioForge for licensing information.
Methods
Audio_Codecs()
Gets the audio codecs list.
public ObservableCollection<string> Audio_Codecs()Returns
- ObservableCollection<string>
-
List<System.String>.
Audio_Effects_Add(int, AudioEffectType, string, bool, TimeSpan, TimeSpan)
Adds an audio effect to the specified audio stream.
public void Audio_Effects_Add(int streamIndex, AudioEffectType effectType, string name, bool enabled, TimeSpan startTime, TimeSpan stopTime)Parameters
streamIndexint-
The index of the audio stream (0-3), or -1 to apply to all streams.
effectTypeAudioEffectType-
The type of audio effect to add (e.g., Amplify, Echo, Reverb).
namestring-
A unique name identifier for this effect instance.
enabledbool-
True to enable the effect immediately, false to add it in disabled state.
startTimeTimeSpan-
The time position when the effect should start being applied.
stopTimeTimeSpan-
The time position when the effect should stop being applied.
Remarks
Effects can be added to individual audio streams or all streams simultaneously. The same effect type can be added multiple times with different names and parameters. Time-based effects allow for dynamic audio processing during playback.
Audio_Effects_Amplify(int, string, int, bool)
Configures parameters for an amplify audio effect.
public void Audio_Effects_Amplify(int streamIndex, string name, int volume, bool separate)Parameters
streamIndexint-
The index of the audio stream (0-3), or -1 to apply to all streams.
namestring-
The unique name of the amplify effect to configure.
volumeint-
The amplification level (10000 = no change, 20000 = 2x amplification, 5000 = 0.5x).
separatebool-
True to amplify each channel independently, false to use channel 0's value for all channels.
Remarks
The amplify effect allows volume adjustment of audio streams. Values below 10000 reduce volume, values above 10000 increase it. Be careful with high values as they may cause audio clipping. Separate channel control is useful for stereo balance adjustments.
Audio_Effects_BandPass(int, string, float, float, bool)
Sets the parameters for the Band Pass effect.
public void Audio_Effects_BandPass(int streamIndex, string name, float cutOffHigh, float cutOffLow, bool separate)Parameters
streamIndexint-
Stream index.
namestring-
The name.
cutOffHighfloat-
Specifies the high cutoff frequency for a specific channel.
cutOffLowfloat-
Specifies the low cutoff frequency for a specific channel.
separatebool-
Enables or Disables separate cutoff. If Enabled every channel will be processed by it's own cutoff value. If disabled every channel will be processed with the cutoff value of channel 0.
Remarks
Filter to cutoff a certain Frequency Range. Each Channel can separate cutoff the Frequency range.
Audio_Effects_ChannelOrderEx(int, string, byte[,])
Configures channel order remapping for audio streams.
public void Audio_Effects_ChannelOrderEx(int streamIndex, string name, byte[,] orders)Parameters
streamIndexint-
The audio stream index (0-3), or -1 to apply to all streams.
namestring-
The unique name of the channel order effect to configure.
ordersbyte[,]-
A 2-dimensional array defining channel mappings. Each row contains [target_channel, source_channel] pairs. For example, [[0,1],[1,0]] swaps left and right channels in stereo audio.
Remarks
This effect allows flexible remapping of audio channels for various purposes:
- Swapping left/right channels in stereo
- Routing surround sound channels
- Creating custom multi-channel configurations Channel numbers are zero-based (0 = first channel).
Audio_Effects_Clear(int)
Removes all audio effects from the specified audio stream.
public void Audio_Effects_Clear(int streamIndex)Parameters
streamIndexint-
The audio stream index (0-3), or -1 to clear effects from all streams.
Remarks
This method clears all effects that were added using Audio_Effects_Add. Use streamIndex=-1 to remove effects from all audio streams simultaneously. Any effect configuration will be lost and must be reapplied after clearing.
Audio_Effects_Count(int)
Gets the count of audio effects applied to the specified audio stream.
public int Audio_Effects_Count(int streamIndex)Parameters
streamIndexint-
The audio stream index (0-3) to query.
Returns
- int
-
The number of audio effects currently applied to the stream, or 0 if the stream index is invalid.
Remarks
Use this method to determine how many effects are active on a specific audio stream. Each audio stream can have multiple effects applied simultaneously.
Audio_Effects_DS_Chorus(int, string, float, float, float, float, DSChorusPhase, DSChorusWaveForm, float)
Sets the parameters for the DS Chorus effect.
public void Audio_Effects_DS_Chorus(int streamIndex, string name, float delay, float depth, float feedback, float frequency, DSChorusPhase phase, DSChorusWaveForm waveformTriangle, float wetDryMix)Parameters
streamIndexint-
Stream index.
namestring-
The name.
delayfloat-
Specifies the delay of the filter (0 - 20.0).
depthfloat-
Specifies the depth of the filter (0 - 100.0).
feedbackfloat-
Specifies the feedback of the filter (-99.0 - 99.0).
frequencyfloat-
Specifies the frequency of the filter (0 - 10.0).
phaseDSChorusPhase-
Specifies the phase angle.
waveformTriangleDSChorusWaveForm-
Specifies the waveform type of the filter.
wetDryMixfloat-
Specifies the wet and dry mix (0 - 100.0).
Remarks
Chorus is a voice-doubling effect created by echoing the original sound with a slight delay and slightly modulating the delay of the echo.
Audio_Effects_DS_Compressor(int, string, float, float, float, float, float, float)
Sets the parameters for the DS Compressor effect.
public void Audio_Effects_DS_Compressor(int streamIndex, string name, float attack, float gain, float preDelay, float ratio, float release, float threshold)Parameters
streamIndexint-
Stream index.
namestring-
The name.
attackfloat-
Specifies the attack time in ms (0.01 - 500).
gainfloat-
Specifies the gain of the filter (-60.0 - 60.0).
preDelayfloat-
Specifies the pre-delay of the filter (0.0 - 4.0).
ratiofloat-
Specifies the ratio of the filter (1.0 - 100.0).
releasefloat-
Specifies the release time in ms (50.0 - 3000.0).
thresholdfloat-
Specifies the threshold of the filter (-60.0 - 0.0).
Remarks
Compression is a reduction in the fluctuation of a signal above a certain amplitude.
Audio_Effects_DS_Distortion(int, string, float, float, float, float, float)
Sets the parameters for the DS Distortion effect.
public void Audio_Effects_DS_Distortion(int streamIndex, string name, float edge, float gain, float postEQBandwidth, float postEQCenterFrequency, float preLowpassCutOff)Parameters
streamIndexint-
Stream index.
namestring-
The name.
edgefloat-
Specifies the edge of the filter (0.0 - 100.0).
gainfloat-
Specifies the gain of the filter (-60.0 - 0).
postEQBandwidthfloat-
Specifies the bandwidth of the equalizer (100.0 - 8000.0).
postEQCenterFrequencyfloat-
Specifies the center frequency of the distortion equalizer (100.0 - 8000.0).
preLowpassCutOfffloat-
Specifies the low pass cutoff of the filter (100.0 - 8000.0).
Remarks
Distortion is achieved by adding harmonics to the signal in such a way that, as the level increases, the top of the waveform becomes squared off or clipped.
Audio_Effects_DS_Echo(int, string, float, float, float, int, float)
Sets the parameters for the DS Echo effect.
public void Audio_Effects_DS_Echo(int streamIndex, string name, float feedback, float leftDelay, float rightDelay, int panDelay, float wetDryMix)Parameters
streamIndexint-
Stream index.
namestring-
The name.
feedbackfloat-
Specifies the feedback of the filter (0 - 100.0).
leftDelayfloat-
Specifies the left delay of the filter (1.0 - 2000.0).
rightDelayfloat-
Specifies the right delay of the filter (1.0 - 2000.0).
panDelayint-
The pan delay.
wetDryMixfloat-
Specifies the wet and dry mix of the filter (0.0 - 100.0).
Remarks
An echo effect causes sounds to be repeated after a fixed delay, usually at a diminished volume. As the repeated sounds are fed back into the mix, they are repeated again.
Audio_Effects_DS_Flanger(int, string, float, float, float, float, int, DSFlangerWaveForm, float)
Sets the parameters for the DS Flanger effect.
public void Audio_Effects_DS_Flanger(int streamIndex, string name, float delay, float depth, float feedback, float frequency, int phase, DSFlangerWaveForm waveform, float wetDryMix)Parameters
streamIndexint-
Stream index.
namestring-
The name.
delayfloat-
Specifies the delay of the filter (0.0 - 4.0).
depthfloat-
Specifies the depth of the filter (0.0 - 100.0).
feedbackfloat-
Specifies the feedback of the filter (-99.0 - 99.0).
frequencyfloat-
Specifies the frequency of the filter (0.0 - 10.0).
phaseint-
Specifies the phase angle.
waveformDSFlangerWaveForm-
Specifies the waveform type of the filter.
wetDryMixfloat-
Specifies the wet and dry mix of the filter (0.0 - 100.0).
Remarks
Flange, also called flanger, is an echo effect in which the delay between the original signal and its echo is very short and varies over time. The result is sometimes referred to as a sweeping sound. The term flange originated with the practice of grabbing the flanges of a tape reel to change the speed.
Audio_Effects_DS_Gargle(int, string, int, DSGargleWaveForm)
Sets the parameters for the DS Gargle effect.
public void Audio_Effects_DS_Gargle(int streamIndex, string name, int rateHz, DSGargleWaveForm waveForm)Parameters
streamIndexint-
Stream index.
namestring-
The name.
rateHzint-
Specifies the frequency of the gargle filter (1 - 1000).
waveFormDSGargleWaveForm-
Specifies the waveform type of the filter.
Remarks
The gargle effect modulates the amplitude of the signal.
Audio_Effects_DS_ParamEQ(int, string, float, float, float)
Sets the parameters for the DS ParamEQ effect.
public void Audio_Effects_DS_ParamEQ(int streamIndex, string name, float bandwidth, float center, float gain)Parameters
streamIndexint-
Stream index.
namestring-
The name.
bandwidthfloat-
Specifies the bandwidth of the equalizer (1.0 - 36.0).
centerfloat-
Specifies the center frequency of the equalizer (80.0 - 16000.0).
gainfloat-
Specifies the gain of the equalizer (-15.0 - 15.0).
Remarks
A parametric equalizer amplifies or attenuates signals of a given frequency. Parametric equalizer effects for different pitches can be applied in parallel by setting multiple instances of the effect on the same buffer. In this way, the application can have tone control similar to that provided by a hardware equalizer.
Audio_Effects_DS_Reverb(int, string, float, float, float, float, float, DSI3DL2ReverbPreset, int, int, float, int, float, int, int, float)
Sets the parameters for the DS Reverb effect.
public void Audio_Effects_DS_Reverb(int streamIndex, string name, float decayHFRatio, float decayTime, float density, float diffusion, float HFReference, DSI3DL2ReverbPreset preset, int quality, int reflections, float reflectionsDelay, int reverbValue, float reverbDelay, int room, int roomHF, float roomRollOffFactor)Parameters
streamIndexint-
Stream index.
namestring-
The name.
decayHFRatiofloat-
Specifies the decay HF ratio for the filter (0.1 - 2.0, 0.83 by default).
decayTimefloat-
Specifies the decay time for the filter (0.1 - 20.0, 1.49 by default).
densityfloat-
Specifies the density value for the filter (0 - 100.0, 100.0 by default).
diffusionfloat-
Specifies the diffusion value for the filter (0 - 100.0, 100.0 by default).
HFReferencefloat-
Specifies the HF reference for the filter (20.0 - 20000.0, 5000.0 by default).
presetDSI3DL2ReverbPreset-
Specifies the preset name.
qualityint-
Specifies the quality of the filter (0 - 3, 2 by default).
reflectionsint-
Specifies the reflections value for the filter (-10000 - -1000, -2602 by default).
reflectionsDelayfloat-
Specifies the reflections delay for the filter (0.0 - 0.3, 0.007 by default).
reverbValueint-
Specifies the reverb value for the filter (-10000 - 2000, 200 by default).
reverbDelayfloat-
Specifies the reverb delay for the filter (0.0 - 0.1, 0.011 by default).
roomint-
Specifies the room value for the filter (-10000 - 0, -1000 by default).
roomHFint-
Specifies the room HF value of the filter (-10000 - 0, -100 by default).
roomRollOffFactorfloat-
Specifies the room roll off factor for the filter (0.0 - 10.0, 0.0 by default).
Remarks
Environmental Reverberation filter.
Audio_Effects_DS_WavesReverb(int, string, float, float, float, float)
Sets the parameters for the DS Waves Reverb effect.
public void Audio_Effects_DS_WavesReverb(int streamIndex, string name, float highFreqRTRatio, float inGain, float reverbMix, float reverbTime)Parameters
streamIndexint-
Stream index.
namestring-
The name.
highFreqRTRatiofloat-
Specifies the high frequency ratio (0.001 - 0.999, 0.001 by default).
inGainfloat-
Specifies in-gain of the filter (-96.0 - 0.0, 0.0 by default).
reverbMixfloat-
Specifies the reverb mix of the filter (-96.0 - 0.0, 0.0 by default).
reverbTimefloat-
Specifies the reverb time of the filter (0.001 - 3000.0, 1000.0 by default).
Remarks
The waves reverberation effect is intended for use with music. The waves reverberation DirectX Media Object (DMO) is based on the Waves MaxxVerb technology, which is licensed to Microsoft.
Audio_Effects_DynamicAmplify(int, string, int, int, int)
Sets the parameters for the Dynamic Amplify effect.
public void Audio_Effects_DynamicAmplify(int streamIndex, string name, int attackTime, int maxAmplification, int releaseTime)Parameters
streamIndexint-
Stream index.
namestring-
The name.
attackTimeint-
Specifies the amplification value than will be used when amplifying.
maxAmplificationint-
Sets the amplification for a channel. Default value is 10000, which means that no amplification occurs. A value of 20000 raises the amplification by 2.
releaseTimeint-
Specifies the time in milliseconds that the DSP will wait to continue amplification, after the maximum has been reached.
Remarks
DSP Filter to automatically keep the volume eat a specific maximum value.
Audio_Effects_DynamicAmplify_GetCurrentAmp(int, string)
Gets the value for the current amplification level.
public double Audio_Effects_DynamicAmplify_GetCurrentAmp(int streamIndex, string name)Parameters
Returns
- double
-
System.Double.
Audio_Effects_Enable(int, string, bool)
Enables selected audio effect.
public void Audio_Effects_Enable(int streamIndex, string name, bool enable)Parameters
Audio_Effects_Equalizer(int, string, bool, float)
Configures a multi-band equalizer effect with customizable frequency response.
public void Audio_Effects_Equalizer(int streamIndex, string name, bool separate, float maxGainDB = 20)Parameters
streamIndexint-
The audio stream index (0-3), or -1 to apply to all streams.
namestring-
The unique name of the equalizer effect to configure.
separatebool-
True to equalize each audio channel independently with its own amplification values, false to apply channel 0's values to all channels.
maxGainDBfloat-
Maximum gain adjustment in decibels (default is 20 dB). Controls the dynamic range of frequency adjustments.
Remarks
The equalizer supports 1 to 4096 frequency bands (using FFT sizes from 2 to 8192 points). Each channel can be equalized separately when the separate parameter is true. Use Audio_Effects_Equalizer_Preset_Set to apply pre-configured settings for common scenarios. Higher maxGainDB values allow more extreme frequency adjustments but may introduce distortion.
Audio_Effects_Equalizer_Band_Get(int, string, int)
Gets the current level of audio volume for the selected equalizer band (slider).
public int Audio_Effects_Equalizer_Band_Get(int streamIndex, string name, int index)Parameters
Returns
- int
-
System.Int32.
Audio_Effects_Equalizer_Band_Set(int, string, int, int)
Sets the current level of audio volume for the selected equalizer band (slider).
public void Audio_Effects_Equalizer_Band_Set(int streamIndex, string name, int index, int value)Parameters
streamIndexint-
Stream index.
namestring-
The name.
indexint-
Band index.
valueint-
Gain value (in dB).
Audio_Effects_Equalizer_Preset_Set(int, string, EqualizerPreset)
Applies a predefined equalizer preset to the audio stream.
public void Audio_Effects_Equalizer_Preset_Set(int streamIndex, string name, EqualizerPreset preset)Parameters
streamIndexint-
The audio stream index (0-3), or -1 to apply to all streams.
namestring-
The unique name of the equalizer effect to configure.
presetEqualizerPreset-
The equalizer preset to apply (e.g., Rock, Jazz, Classical).
Remarks
Presets apply professionally-tuned frequency adjustments for various music genres and listening scenarios. Use Audio_Effects_Equalizer_Presets to get a list of available preset names. The equalizer effect must already be added to the stream before applying a preset.
Audio_Effects_Equalizer_Presets()
Gets the list of available equalizer preset names.
public ObservableCollection<string> Audio_Effects_Equalizer_Presets()Returns
- ObservableCollection<string>
-
An observable collection containing all available equalizer preset names.
Remarks
Equalizer presets provide pre-configured frequency adjustments for common audio scenarios such as "Rock", "Jazz", "Classical", "Pop", etc. Use Audio_Effects_Equalizer_Preset_Set to apply a preset after adding an equalizer effect.
Audio_Effects_Fades(int, string, int, int, TimeSpan, TimeSpan, bool)
Configures fade-in and fade-out effects for audio volume control over time.
public void Audio_Effects_Fades(int streamIndex, string name, int startVolume, int stopVolume, TimeSpan startTime, TimeSpan stopTime, bool separate)Parameters
streamIndexint-
The audio stream index (0-3), or -1 to apply to all streams.
namestring-
The unique name of the fade effect to configure.
startVolumeint-
The initial volume level at the start time (0 to 10000, where 10000 = 100% volume).
stopVolumeint-
The final volume level at the stop time (0 to 10000, where 10000 = 100% volume).
startTimeTimeSpan-
The time position when the fade begins.
stopTimeTimeSpan-
The time position when the fade completes.
separatebool-
True to fade each channel independently with per-channel volume values, false to apply channel 0's settings to all channels.
Remarks
Use this effect to create smooth volume transitions:
- Fade-in: Set startVolume=0 and stopVolume=10000
- Fade-out: Set startVolume=10000 and stopVolume=0
- Cross-fade: Use overlapping fade effects on different streams The fade applies linearly between the start and stop times.
Audio_Effects_Flanger(int, string, float, float, bool, bool)
Sets the parameters for the Flanger effect.
public void Audio_Effects_Flanger(int streamIndex, string name, float delay, float frequency, bool phaseInvert, bool separate)Parameters
streamIndexint-
Stream index.
namestring-
The name.
delayfloat-
Specifies the delay time in seconds.
frequencyfloat-
Specifies the flanger frequency.
phaseInvertbool-
Specifies whether the added signal should be inverted.
separatebool-
Enables or Disables separate amplification. If Enabled every channel will be amplified by it's own amplification value. If Disabled every channel will be amplified with the amplification value of channel 0.
Remarks
Filter to flange audio data. Every channel can be controlled separately.
Audio_Effects_HighPass(int, string, int, bool)
Sets the parameters for the High Pass effect.
public void Audio_Effects_HighPass(int streamIndex, string name, int cutOff, bool separate)Parameters
streamIndexint-
Stream index.
namestring-
The name.
cutOffint-
The cut Off.
separatebool-
Enables or Disables separate cutoff. If Enabled every channel will be processed by it's own cutoff value. If Disabled every channel will be processed with the cutoff value of channel 0.
Remarks
Filter that cuts Frequencies from a specified frequency to half of the sampling rate. Each channel can be separate processed with different cutoff values.
Audio_Effects_LowPass(int, string, int, bool)
Sets the parameters for the Low Pass effect.
public void Audio_Effects_LowPass(int streamIndex, string name, int cutOff, bool separate)Parameters
streamIndexint-
The stream Index.
namestring-
The name.
cutOffint-
Specifies the cutoff frequency for a specific channel at which the cutoff will end.
separatebool-
Enables or Disables separate cutoff. If Enabled every channel will be processed by it's own cutoff value. If Disabled every channel will be processed with the cutoff value of channel 0.
Remarks
Filter that cuts frequencies from 0 to a specified frequency. Each channel can be separate processed with different cutoff values.
Audio_Effects_Notch(int, string, int, bool)
Sets the parameters for the Notch effect.
public void Audio_Effects_Notch(int streamIndex, string name, int cutOff, bool separate)Parameters
streamIndexint-
Stream index.
namestring-
The name.
cutOffint-
Specifies the cutoff frequency for a specific channel at which the cutoff will have it's maximum amplification.
separatebool-
Enables or Disables separate cutoff. If Enabled every channel will be processed by it's own cutoff value. If Disabled every channel will be processed with the cutoff value of channel 0.
Remarks
Filter that cuts frequency's in a wide range of specified frequency. Each channel can be separate processed with different cutoff values.
Audio_Effects_ParametricEQ(int, string, float, float, float, bool)
Configures a parametric equalizer effect for precise frequency control.
public void Audio_Effects_ParametricEQ(int streamIndex, string name, float frequency, float gain, float q, bool separate)Parameters
streamIndexint-
The audio stream index (0-3), or -1 to apply to all streams.
namestring-
The unique name of the parametric EQ effect to configure.
frequencyfloat-
The center frequency in Hz to boost or cut (typically 20 Hz to 20000 Hz).
gainfloat-
The gain adjustment in decibels (-15 dB to +15 dB). Positive values boost, negative values cut.
qfloat-
The Q factor (bandwidth) of the filter. Higher values create narrower frequency bands (typically 0.1 to 10).
separatebool-
True to apply independent settings to each channel using per-channel values, false to use channel 0's values for all channels.
Remarks
A parametric equalizer provides surgical frequency control, allowing precise adjustment of specific frequency ranges. Unlike graphic equalizers, parametric EQs let you choose both the center frequency and bandwidth. Use Q values around 1.0 for musical adjustments, higher values (5-10) for notching out specific frequencies. Each channel can be controlled separately for stereo or multi-channel fine-tuning.
Audio_Effects_PhaseInvert(int, string, bool, bool)
Sets the parameters for the Phase Invert effect.
public void Audio_Effects_PhaseInvert(int streamIndex, string name, bool invert, bool separate)Parameters
streamIndexint-
Stream index.
namestring-
The name.
invertbool-
Enables and Disables phase invert for a specific channel.
separatebool-
Enables or Disables separate invert. If Enabled every channel will be inverted by it's own invert value. If Disabled every channel will be inverted by the value of channel 0.
Remarks
Phase invert component that inverts specific channels.
Audio_Effects_Phaser(int, string, byte, byte, byte, float, bool, byte, float)
Sets the parameters for the Phaser effect.
public void Audio_Effects_Phaser(int streamIndex, string name, byte depth, byte dryWetRatio, byte feedback, float frequency, bool separate, byte stages, float startPhase)Parameters
streamIndexint-
Stream index.
namestring-
The name.
depthbyte-
Sets Phaser depth (0 - 255).
dryWetRatiobyte-
Sets dry-wet mix ratio. 0 - dry, 255 - wet (0 - 255).
feedbackbyte-
Sets phaser feedback. 0 - no feedback, 100 = 100% feedback, -100 = -100% feedback (-100 - 100).
frequencyfloat-
Sets phaser's LFO frequency.
separatebool-
Enables or Disables separate phasing. If Enabled every channel will be phased by it's own phasing value. If Disabled every channel will be phased with the phasing value of channel 0.
stagesbyte-
Sets phaser stages. Recommended from 2 to 24.
startPhasefloat-
Sets phaser's LFO start phase in radians. Needed for stereo phasers.
Remarks
Class for phasing amplify audio data. Phasing can be done separate on each channel.
Audio_Effects_PitchShift(int, string, float)
Configures pitch shifting effect to change audio pitch without affecting playback speed.
public void Audio_Effects_PitchShift(int streamIndex, string name, float pitch)Parameters
streamIndexint-
The audio stream index (0-3), or -1 to apply to all streams.
namestring-
The unique name of the pitch shift effect to configure.
pitchfloat-
The pitch multiplier. 1.0 = no change (original pitch). Values < 1.0 lower the pitch (e.g., 0.5 = one octave down). Values > 1.0 raise the pitch (e.g., 2.0 = one octave up). Typical range: 0.5 to 2.0 for musical adjustments.
Remarks
This effect changes the frequency (pitch) of audio while maintaining the same duration and tempo. Common use cases:
- Correcting slightly out-of-tune recordings
- Creating vocal harmonies
- Matching keys between different audio sources Extreme pitch changes (e.g., 0.1 or 10.0) may introduce audio artifacts.
Audio_Effects_SetCurrentChannel(int, string, sbyte)
Sets the active audio channel for subsequent effect parameter changes.
public void Audio_Effects_SetCurrentChannel(int streamIndex, string name, sbyte channel)Parameters
streamIndexint-
The audio stream index (0-3), or -1 to apply to all streams.
namestring-
The unique name of the effect to configure.
channelsbyte-
The channel index to process (0 = first channel, 1 = second channel, etc.). Use -1 to process all channels simultaneously.
Remarks
This method determines which audio channel is affected by effect parameter changes. It's useful when you want to apply different effect settings to different channels (e.g., different EQ settings for left and right in stereo). The channel setting persists until changed or the effect is removed.
Audio_Effects_Sound3D(int, string, int)
Sets the parameters for the Sound3D effect.
public void Audio_Effects_Sound3D(int streamIndex, string name, int volume)Parameters
streamIndexint-
Stream index.
namestring-
The name.
volumeint-
Sets the 3D amplification value. A value of 1000 is the same as disabling the filter. Values smaller then 1000 is the same as doing a downmix (mono) of the 2 channels. Values higher then 10000 will distort the sound.
Remarks
3D Sound amplification filter that works on 2 channels only. The difference between left and right channel is calculated and added to the main signal.
Audio_Effects_TrebleEnhancer(int, string, int, bool, int)
Sets the parameters for the Treble Enhancer effect.
public void Audio_Effects_TrebleEnhancer(int streamIndex, string name, int frequency, bool separate, int volume)Parameters
streamIndexint-
Stream index.
namestring-
The name.
frequencyint-
Specifies the frequency range that will be used to amplify. Range is frequency to (sample rate div 2).
separatebool-
Enables or Disables separate amplification. If Enabled every channel will be amplified by it's own amplification value. If Disabled every channel will be amplified with the amplification value of channel 0.
volumeint-
Sets the amplification for a channel. Default value is 0, which means that no amplification occurs. The value shouldn't go over 10000. If separate is True, then every channel will be amplified by its own channel amplification value. If separate is False, then every channel is amplified with the value of channel 0.
Remarks
Filter to amplify high frequency's of audio data. The frequency range can be adjusted.
Audio_Effects_TrueBass(int, string, int, bool, int)
Sets the parameters for the True Bass effect.
public void Audio_Effects_TrueBass(int streamIndex, string name, int frequency, bool separate, int volume)Parameters
streamIndexint-
Stream index.
namestring-
The name.
frequencyint-
Specifies the frequency range that will be used to amplify. Range is 0 to frequency.
separatebool-
Enables or Disables separate amplification. If Enabled every channel will be amplified by it's own amplification value. If Disabled every channel will be amplified with the amplification value of channel 0.
volumeint-
Sets the amplification for a channel. Default value is 0, which means that no amplification occurs. The value shouldn't go over 10000. If separate is True, then every channel will be amplified by its own channel amplification value. If separate is False, then every channel is amplified with the value of channel 0.
Remarks
Filter to amplify low frequency's of audio data. The frequency range can be adjusted.
Audio_Enhancer_AutoGain(int, bool)
Applies audio auto gain enhancement.
public void Audio_Enhancer_AutoGain(int streamIndex, bool enabled)Parameters
Audio_Enhancer_AutoGainAsync(int, bool)
Applies audio auto gain enhancement (async).
public Task Audio_Enhancer_AutoGainAsync(int streamIndex, bool enabled)Parameters
Returns
- Task
-
Task.
Audio_Enhancer_InputGains(int, AudioEnhancerGains)
Applies audio input gains enhancement.
public void Audio_Enhancer_InputGains(int streamIndex, AudioEnhancerGains gains)Parameters
streamIndexint-
Stream index. -1 for all streams.
gainsAudioEnhancerGains-
Gains.
Audio_Enhancer_InputGainsAsync(int, AudioEnhancerGains)
Applies audio input gains enhancement (async).
public Task Audio_Enhancer_InputGainsAsync(int streamIndex, AudioEnhancerGains gains)Parameters
streamIndexint-
Stream index. -1 for all streams.
gainsAudioEnhancerGains-
Gains.
Returns
- Task
-
Task.
Audio_Enhancer_Normalize(int, bool)
Applies audio normalize enhancement.
public void Audio_Enhancer_Normalize(int streamIndex, bool enabled)Parameters
Audio_Enhancer_NormalizeAsync(int, bool)
Applies audio normalize enhancement (async).
public Task Audio_Enhancer_NormalizeAsync(int streamIndex, bool enabled)Parameters
Returns
- Task
-
Task.
Audio_Enhancer_OutputGains(int, AudioEnhancerGains)
Applies audio output gains enhancement.
public void Audio_Enhancer_OutputGains(int streamIndex, AudioEnhancerGains gains)Parameters
streamIndexint-
Stream index. -1 for all streams.
gainsAudioEnhancerGains-
Gains.
Audio_Enhancer_OutputGainsAsync(int, AudioEnhancerGains)
Applies audio output gains enhancement (async).
public Task Audio_Enhancer_OutputGainsAsync(int streamIndex, AudioEnhancerGains gains)Parameters
streamIndexint-
Stream index. -1 for all streams.
gainsAudioEnhancerGains-
Gains.
Returns
- Task
-
Task.
Audio_Enhancer_Timeshift(int, int)
Applies audio delay.
public void Audio_Enhancer_Timeshift(int streamIndex, int timeshift)Parameters
streamIndexint-
Stream index. -1 for all streams.
timeshiftint-
Time shift delay (milliseconds). Range is [-2000; 2000].
Audio_Enhancer_TimeshiftAsync(int, int)
Applies audio delay (async).
public Task Audio_Enhancer_TimeshiftAsync(int streamIndex, int timeshift)Parameters
streamIndexint-
Stream index. -1 for all streams.
timeshiftint-
Time shift delay (milliseconds). Range is [-2000; 2000].
Returns
- Task
-
Task.
Audio_OutputDevice_Balance_Get(int)
Returns current balance value for selected audio output device (in percents).
public int Audio_OutputDevice_Balance_Get(int streamIndex)Parameters
streamIndexint-
Stream index.
Returns
- int
-
System.Int32.
Audio_OutputDevice_Balance_Set(int, int)
Sets current balance value for selected audio output device (in percents).
public void Audio_OutputDevice_Balance_Set(int streamIndex, int balance)Parameters
Audio_OutputDevice_Volume_Get(int)
Gets current volume value for selected audio output device (in percents).
public int Audio_OutputDevice_Volume_Get(int streamIndex)Parameters
streamIndexint-
Stream index.
Returns
- int
-
System.Int32.
Audio_OutputDevice_Volume_Set(int, int)
Sets audio volume (in percents).
public void Audio_OutputDevice_Volume_Set(int streamIndex, int volume)Parameters
Audio_OutputDevices()
Gets audio output device list.
public ObservableCollection<string> Audio_OutputDevices()Returns
- ObservableCollection<string>
-
ObservableCollection<System.String>.
CallVideoRendererUpdate(int, int, bool)
Calls the video renderer update.
public void CallVideoRendererUpdate(int width, int height, bool updateHandle)Parameters
ConvertHexStringToByteArray(string)
Converts HEX string to byte array.
public byte[] ConvertHexStringToByteArray(string hexString)Parameters
hexStringstring-
HEX string.
Returns
- byte[]
-
System.Byte[].
Exceptions
- Exception
-
Hex string is null.
CreateAsync(IVideoView)
Creates a new instance of VideoEditCore asynchronously with a video view.
public static Task<VideoEditCore> CreateAsync(IVideoView videoView)Parameters
videoViewIVideoView-
The video view interface for rendering video output.
Returns
- Task<VideoEditCore>
-
A Task<VideoEditCore> representing the asynchronous creation operation.
Remarks
Use this method to avoid blocking the UI thread during initialization. The returned instance is fully initialized and ready for use.
CreateAsync()
Creates a new instance of VideoEditCore asynchronously without a video view.
public static Task<VideoEditCore> CreateAsync()Returns
- Task<VideoEditCore>
-
A Task<VideoEditCore> representing the asynchronous creation operation.
Remarks
Use this method for headless operation or when the video view will be set later. The initialization is performed on a background thread to avoid blocking.
CustomRedist_Enable(bool)
Enables or disables the use of custom redistributable filters.
public void CustomRedist_Enable(bool enabled)Parameters
enabledbool-
True to enable custom redistributable path usage, false to use system-installed filters.
CustomRedist_IsEnabled()
Gets the current status of custom redistributable usage.
public bool CustomRedist_IsEnabled()Returns
- bool
-
True if custom redistributables are enabled, false otherwise.
Decklink_Output_AudioRenderers()
Gets a collection of available Decklink audio output devices.
public ObservableCollection<string> Decklink_Output_AudioRenderers()Returns
- ObservableCollection<string>
-
An observable collection containing the names of all available Decklink audio renderers.
Remarks
Enumerates all Blackmagic Decklink cards installed on the system that support audio output. Professional audio output supports multiple channels and embedded audio.
Decklink_Output_GetAudioProps()
Gets real-time audio rendering statistics from the active Decklink output.
public DecklinkRendererProps Decklink_Output_GetAudioProps()Returns
- DecklinkRendererProps
-
A DecklinkRendererProps object containing audio rendering metrics, or null if no Decklink output is active.
Remarks
Provides performance metrics including:
- Sample rate accuracy
- Buffer underruns/overruns
- Audio synchronization timing Essential for monitoring professional audio output quality.
Decklink_Output_GetVideoProps()
Gets real-time video rendering statistics from the active Decklink output.
public DecklinkRendererProps Decklink_Output_GetVideoProps()Returns
- DecklinkRendererProps
-
A DecklinkRendererProps object containing video rendering metrics, or null if no Decklink output is active.
Remarks
Provides performance metrics including:
- Frame rate and dropped frames
- Buffer utilization
- Output timing information Useful for monitoring professional video output quality.
Decklink_Output_VideoRenderers()
Gets a collection of available Decklink video output devices.
public ObservableCollection<string> Decklink_Output_VideoRenderers()Returns
- ObservableCollection<string>
-
An observable collection containing the names of all available Decklink video renderers.
Remarks
Enumerates all Blackmagic Decklink cards installed on the system that support video output. These professional video cards are used for broadcast-quality video output.
DirectShow_Filters()
Gets DirectShow filter list.
public ObservableCollection<string> DirectShow_Filters()Returns
- ObservableCollection<string>
-
ObservableCollection<System.String>.
DirectShow_Filters_Blacklist_Add(string)
Adds the DirectShow filter to the black list.
public void DirectShow_Filters_Blacklist_Add(string filter)Parameters
filterstring-
Filter name.
DirectShow_Filters_Blacklist_Clear()
Clears the filters black list.
public void DirectShow_Filters_Blacklist_Clear()Remarks
All available filters will be available for use.
DirectShow_Filters_EventWatcher_Add(string)
Adds "watcher" for specified filter.
public void DirectShow_Filters_EventWatcher_Add(string name)Parameters
namestring-
Filter name.
DirectShow_Filters_EventWatcher_Clear()
Clears "watchers".
public void DirectShow_Filters_EventWatcher_Clear()DirectShow_Filters_ProblemFilters()
Gets the list of the filters, which are not functional right with Video Edit SDK.
public ObservableCollection<string> DirectShow_Filters_ProblemFilters()Returns
- ObservableCollection<string>
-
ObservableCollection<System.String>.
DirectShow_Filters_ProblemFilters_Fill()
Fills the list of the filters, which are not functional right with Video Capture SDK.
public void DirectShow_Filters_ProblemFilters_Fill()Dispose()
Dispose method.
public void Dispose()Dispose(bool)
Dispose method.
protected virtual void Dispose(bool disposing)Parameters
disposingbool-
Disposing parameter.
DisposeAsync()
Dispose as an asynchronous operation.
public ValueTask DisposeAsync()Returns
- ValueTask
-
A Task<ValueTask> representing the asynchronous operation.
Duration()
Returns duration.
public TimeSpan Duration()Returns
FastEdit_CutFileAsync(string, TimeSpan, TimeSpan, string)
Cuts a segment from a video file without re-encoding.
public Task<bool> FastEdit_CutFileAsync(string inputFile, TimeSpan startTime, TimeSpan stopTime, string outputFile)Parameters
inputFilestring-
Path to the input video file to cut from.
startTimeTimeSpan-
The time position to start the cut from.
stopTimeTimeSpan-
The time position to end the cut at.
outputFilestring-
Path where the cut video segment will be saved.
Returns
- Task<bool>
-
A task that represents the asynchronous operation. The task result contains true if successful.
Remarks
This method performs fast cutting without re-encoding, preserving original quality. The cut may not be frame-accurate for some codecs due to keyframe limitations. Requires FFMPEG executable files to be deployed with your application. Premium Edition license required for production use.
FastEdit_ExtractAudioStreamAsync(string, TimeSpan, TimeSpan, string)
Extracts the audio stream from a video file without re-encoding.
public Task<bool> FastEdit_ExtractAudioStreamAsync(string inputFile, TimeSpan startTime, TimeSpan stopTime, string outputFile)Parameters
inputFilestring-
Path to the input video file containing audio.
startTimeTimeSpan-
The time position to start extraction from.
stopTimeTimeSpan-
The time position to stop extraction at.
outputFilestring-
Path where the extracted audio file will be saved.
Returns
- Task<bool>
-
A task that represents the asynchronous operation. The task result contains true if successful.
Remarks
This method performs fast audio extraction without re-encoding, preserving the original audio quality. The output format is determined by the file extension of outputFile. Requires FFMPEG executable files to be deployed with your application. Premium Edition license required for production use.
FastEdit_JoinFilesAsync(string[], string)
Joins multiple video files into a single output file without re-encoding.
public Task<bool> FastEdit_JoinFilesAsync(string[] inputFiles, string outputFile)Parameters
inputFilesstring[]-
Array of input file paths to join together.
outputFilestring-
Path where the joined output file will be saved.
Returns
- Task<bool>
-
A task that represents the asynchronous operation. The task result contains true if successful.
Remarks
This method performs fast concatenation without re-encoding. IMPORTANT: All input files must have identical format parameters:
- Same video codec
- Same resolution
- Same frame rate
- Same audio codec and sample rate If files have different formats, use the standard editing mode with re-encoding. Requires FFMPEG executable files to be deployed with your application. Premium Edition license required for production use.
FastEdit_MuxStreamsAsync(List<FFMPEGStream>, bool, string)
Multiplexes (combines) audio and video streams from multiple files into a single output file.
public Task<bool> FastEdit_MuxStreamsAsync(List<FFMPEGStream> sourceStreams, bool shortest, string outputFile)Parameters
sourceStreamsList<FFMPEGStream>-
List of source streams to multiplex, each specifying file path and stream type.
shortestbool-
If true, cuts all streams to match the duration of the shortest stream.
outputFilestring-
Path where the multiplexed output file will be saved.
Returns
- Task<bool>
-
A task that represents the asynchronous operation. The task result contains true if successful.
Remarks
This method combines streams without re-encoding, making it very fast. Commonly used to add audio tracks to video files or combine separate audio/video streams. The streams must be compatible with the output container format. Premium Edition license required for production use.
FastEdit_StopAsync()
Stops the currently running fast edit operation.
public Task<bool> FastEdit_StopAsync()Returns
- Task<bool>
-
A task that represents the asynchronous operation. The task result contains true if the operation was stopped successfully.
Remarks
Call this method to abort any running fast edit operation (cut, join, extract, or mux). The operation will be terminated and partial output files may be left incomplete.
FastEncrypt_GetProgress()
Gets fast encrypt progress.
public int FastEncrypt_GetProgress()Returns
- int
-
int.
FastEncrypt_Pause()
Pauses encryption.
public void FastEncrypt_Pause()FastEncrypt_Resume()
Resumes encryption.
public void FastEncrypt_Resume()FastEncrypt_Start(string, string, EncryptionKeyType, object, bool, string, bool, string, Guid)
Encrypts the file without reencoding. H264 / AAC files are supported.
public bool FastEncrypt_Start(string sourceFile, string outputFile, EncryptionKeyType keyType, object key, bool v9, string licenseKey = null, bool consoleUsage = false, string debugFolder = null, Guid customSplitterSource = default)Parameters
sourceFilestring-
Source file.
outputFilestring-
Output file.
keyTypeEncryptionKeyType-
Key type.
keyobject-
Key.
v9bool-
True to use v9 AES-256 encryption SDK engine.
licenseKeystring-
Encryption SDK license key.
consoleUsagebool-
Console usage.
debugFolderstring-
Debug directory.
customSplitterSourceGuid-
Custom source splitter filter GUID, must support IFileSourceFilter interface.
Returns
Remarks
Source file must contain H264 video and / or AAC / PCM audio.
FastEncrypt_Start(string[], string, EncryptionKeyType, object, bool, string, bool, string, Guid)
Encrypts the file without reencoding. H264 / AAC are files supported.
public bool FastEncrypt_Start(string[] sourceFiles, string outputFile, EncryptionKeyType keyType, object key, bool v9, string licenseKey = null, bool consoleUsage = false, string debugFolder = null, Guid customSplitterSource = default)Parameters
sourceFilesstring[]-
Source files.
outputFilestring-
Output file.
keyTypeEncryptionKeyType-
Key type.
keyobject-
Key.
v9bool-
True to use v9 encryption SDK engine (AES-256).
licenseKeystring-
Encryption SDK license key.
consoleUsagebool-
Console usage.
debugFolderstring-
Debug directory.
customSplitterSourceGuid-
Custom source splitter filter GUID, must support IFileSourceFilter interface.
Returns
Remarks
Source file must contain H264 video and / or AAC / PCM audio.
FastEncrypt_Stop()
Stops encryption.
public void FastEncrypt_Stop()~VideoEditCore()
Finalizes an instance of the VisioForge.Core.VideoEdit.VideoEditCore class.
protected ~VideoEditCore()Frame_GetCurrent()
Gets the current video frame.
public Bitmap Frame_GetCurrent()Returns
- Bitmap
-
Bitmap.
Frame_GetCurrentAsBuffer(out int, out int)
Gets the current video frame.
public byte[] Frame_GetCurrentAsBuffer(out int width, out int height)Parameters
Returns
- byte[]
-
System.Byte[].
Frame_GetCurrentFromRenderer(out TimeSpan)
Gets the current video frame from video renderer. EVR and VMR-9 are supported.
public Bitmap Frame_GetCurrentFromRenderer(out TimeSpan timestamp)Parameters
timestampTimeSpan-
Timestamp in milliseconds.
Returns
Remarks
Timestamp supported for EVR renderer.
Frame_Save(string, ImageFormat, int, int, int)
Saves the current frame in one of the available formats.
public bool Frame_Save(string filename, ImageFormat format, int quality, int customWidth, int customHeight)Parameters
filenamestring-
Output file name.
formatImageFormat-
Image format.
qualityint-
JPEG quality.
customWidthint-
Custom width.
customHeightint-
Custom height.
Returns
Frame_SaveAsync(string, ImageFormat, int, int, int)
Saves the current frame in one of the available formats (async).
public Task<bool> Frame_SaveAsync(string filename, ImageFormat format, int quality, int customWidth, int customHeight)Parameters
filenamestring-
Output file name.
formatImageFormat-
Image format.
qualityint-
JPEG quality.
customWidthint-
Custom width.
customHeightint-
Custom height.
Returns
GetCore()
Gets core.
public VideoEditCore GetCore()Returns
- VideoEditCore
-
The VisioForge.Core.VideoEdit.VideoEditCore.
GetFileLength(string, out TimeSpan, out TimeSpan, out TimeSpan, out TimeSpan, out TimeSpan, out TimeSpan)
Returns each stream duration (in milliseconds).
public void GetFileLength(string filename, out TimeSpan video, out TimeSpan audio1, out TimeSpan audio2, out TimeSpan audio3, out TimeSpan audio4, out TimeSpan audio5)Parameters
filenamestring-
File name.
videoTimeSpan-
Video stream duration.
audio1TimeSpan-
Audio stream 1 duration.
audio2TimeSpan-
Audio stream 2 duration.
audio3TimeSpan-
Audio stream 3 duration.
audio4TimeSpan-
Audio stream 4 duration.
audio5TimeSpan-
Audio stream 5 duration.
GetLogger()
Gets the current logger instance for this video editor.
public ILogger GetLogger()Returns
- ILogger
-
The Serilog.ILogger instance used for logging operations.
Remarks
The logger configuration depends on the debug mode and other settings. Use this to log custom messages or errors in your application.
GetProgress()
Gets the progress. Should be called from the same thread as the Start method was called.
public int GetProgress()Returns
- int
-
int.
GetVersion()
Gets the version of the VisioForge SDK (static method).
public static Version GetVersion()Returns
- Version
-
The SDK version number.
GetVideoRenderer()
Gets video renderer.
public object GetVideoRenderer()Returns
- object
-
Returns VisioForge.Core.DirectShow.Classes.DSVideoRendererBase.
GetVideoRendererCore()
Gets the video renderer core.
public IVideoRendererBase GetVideoRendererCore()Returns
- IVideoRendererBase
-
IVideoRendererBase.
GetVideoResolution()
Gets the video resolution.
public Size GetVideoResolution()Returns
- Size
-
Types.Size.
HWEncodersAvailable()
Gets information about installed VisioForge filters and codecs that we can use.
public static HWEncodersAvailableInfo HWEncodersAvailable()Returns
- HWEncodersAvailableInfo
-
HWEncodersAvailableInfo.
Helpful_GetFrameFromFile(string, TimeSpan, bool, MediaPlayerSourceMode)
Gets frame from the file.
public Bitmap Helpful_GetFrameFromFile(string filename, TimeSpan timestamp, bool oldWay, MediaPlayerSourceMode engine)Parameters
filenamestring-
File name.
timestampTimeSpan-
Timestamp.
oldWaybool-
If true - old way (using IMediaDet interface), if false - Sample Grabber will be used.
engineMediaPlayerSourceMode-
Engine. LAV and DirectShow are supported.
Returns
- Bitmap
-
Bitmap.
Helpful_GetFrameFromFileAsync(string, TimeSpan, bool, MediaPlayerSourceMode)
Gets frame from the file (async).
public Task<Bitmap> Helpful_GetFrameFromFileAsync(string filename, TimeSpan timestamp, bool oldWay, MediaPlayerSourceMode engine)Parameters
filenamestring-
File name.
timestampTimeSpan-
Timestamp.
oldWaybool-
If true - old way (using IMediaDet interface), if false - Sample Grabber will be used.
engineMediaPlayerSourceMode-
Engine. LAV and DirectShow are supported.
Returns
Input_AddAudioFile(string, string)
Add audio stream from a specified file. Use ConnectedVideoFile to get synchronized sound.
public bool Input_AddAudioFile(string filename, string connectedVideoFile = null)Parameters
filenamestring-
File name.
connectedVideoFilestring-
Video file name to synchronize audio and video streams. Can be empty string.
Returns
Input_AddAudioFile(AudioSource, TimeSpan?, int, AudioTrackEffect[], TimelineAudioTrackCustomSettings)
Add audio stream from a specified file.
public bool Input_AddAudioFile(AudioSource fileSource, TimeSpan? timelineInsertTime = null, int targetStreamIndex = 0, AudioTrackEffect[] effects = null, TimelineAudioTrackCustomSettings customTimelineSettings = null)Parameters
fileSourceAudioSource-
File source.
timelineInsertTimeTimeSpan?-
Timeline insert position.
targetStreamIndexint-
Target stream index.
effectsAudioTrackEffect[]-
Audio effects (applied only to a track).
customTimelineSettingsTimelineAudioTrackCustomSettings-
Custom timeline audio track settings.
Returns
Input_AddAudioFileAsync(string, string)
Adds audio stream from a specified file. Use ConnectedVideoFile property to get synchronized sound.
public Task<bool> Input_AddAudioFileAsync(string filename, string connectedVideoFile = null)Parameters
filenamestring-
File name.
connectedVideoFilestring-
Video file name to synchronize audio and video streams. Can be empty string.
Returns
Input_AddAudioFileAsync(AudioSource, TimeSpan?, int, AudioTrackEffect[], TimelineAudioTrackCustomSettings)
Add audio stream from a specified file (async.).
public Task<bool> Input_AddAudioFileAsync(AudioSource fileSource, TimeSpan? timelineInsertTime = null, int targetStreamIndex = 0, AudioTrackEffect[] effects = null, TimelineAudioTrackCustomSettings customTimelineSettings = null)Parameters
fileSourceAudioSource-
File source.
timelineInsertTimeTimeSpan?-
Timeline insert position.
targetStreamIndexint-
Target stream index.
effectsAudioTrackEffect[]-
Audio effects (applied only to a track).
customTimelineSettingsTimelineAudioTrackCustomSettings-
Custom timeline audio track settings.
Returns
Input_AddImageFile(string, TimeSpan, TimeSpan?, VideoEditStretchMode, int, int, int)
Add image file.
public bool Input_AddImageFile(string filename, TimeSpan duration, TimeSpan? timelineInsertTime, VideoEditStretchMode stretchMode, int targetVideoStream, int customWidth, int customHeight)Parameters
filenamestring-
File name.
durationTimeSpan-
Fragment duration.
timelineInsertTimeTimeSpan?-
Timeline insert time.
stretchModeVideoEditStretchMode-
Stretch mode.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
customWidthint-
Custom width.
customHeightint-
Custom height.
Returns
Input_AddImageFile(List<ImageSource>, TimeSpan?, VideoEditStretchMode, int, int, int)
Adds image file(s).
public bool Input_AddImageFile(List<ImageSource> images, TimeSpan? timelineInsertTime, VideoEditStretchMode stretchMode, int targetVideoStream, int customWidth, int customHeight)Parameters
imagesList<ImageSource>-
Images.
timelineInsertTimeTimeSpan?-
Timeline insert time.
stretchModeVideoEditStretchMode-
Stretch mode.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
customWidthint-
Custom width.
customHeightint-
Custom height.
Returns
Input_AddImageFileAsync(string, TimeSpan, TimeSpan?, VideoEditStretchMode, int, int, int)
Add image file (async.).
public Task<bool> Input_AddImageFileAsync(string filename, TimeSpan duration, TimeSpan? timelineInsertTime, VideoEditStretchMode stretchMode, int targetVideoStream = 0, int customWidth = 0, int customHeight = 0)Parameters
filenamestring-
File name.
durationTimeSpan-
Fragment duration.
timelineInsertTimeTimeSpan?-
Timeline insert time.
stretchModeVideoEditStretchMode-
Stretch mode.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
customWidthint-
Custom width.
customHeightint-
Custom height.
Returns
Input_AddImageFileAsync(List<ImageSource>, TimeSpan?, VideoEditStretchMode, int, int, int)
Adds image file(s) (async.).
public Task<bool> Input_AddImageFileAsync(List<ImageSource> images, TimeSpan? timelineInsertTime, VideoEditStretchMode stretchMode, int targetVideoStream, int customWidth, int customHeight)Parameters
imagesList<ImageSource>-
Images.
timelineInsertTimeTimeSpan?-
Timeline insert time.
stretchModeVideoEditStretchMode-
Stretch mode.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
customWidthint-
Custom width.
customHeightint-
Custom height.
Returns
Input_AddVideoBlank(TimeSpan, TimeSpan?, int, int, Color, int)
Adds blank video. You can use it to add custom images from memory in OnVideoFrameBitmap or OnVideoFrameBuffer event.
public bool Input_AddVideoBlank(TimeSpan duration, TimeSpan? timelineInsertTime, int videoWidth, int videoHeight, Color color, int targetVideoStream)Parameters
durationTimeSpan-
Fragment duration.
timelineInsertTimeTimeSpan?-
Timeline insert time.
videoWidthint-
Video width.
videoHeightint-
Video height.
colorColor-
Color.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
Returns
Input_AddVideoBlankAsync(TimeSpan, TimeSpan?, int, int, Color, int)
Adds blank video. You can use it to add custom images from memory in OnVideoFrameBitmap or OnVideoFrameBuffer event (async.).
public Task<bool> Input_AddVideoBlankAsync(TimeSpan duration, TimeSpan? timelineInsertTime, int videoWidth, int videoHeight, Color color, int targetVideoStream = 0)Parameters
durationTimeSpan-
Fragment duration.
timelineInsertTimeTimeSpan?-
Timeline insert time.
videoWidthint-
Video width.
videoHeightint-
Video height.
colorColor-
Color.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
Returns
Input_AddVideoFile(string)
Adds video stream from a specified file.
public bool Input_AddVideoFile(string filename)Parameters
filenamestring-
File name.
Returns
Input_AddVideoFile(VideoSource, TimeSpan?, int, int, int)
Add video stream from a specified file.
public bool Input_AddVideoFile(VideoSource fileSource, TimeSpan? timelineInsertTime = null, int targetVideoStream = 0, int customWidth = 0, int customHeight = 0)Parameters
fileSourceVideoSource-
File source.
timelineInsertTimeTimeSpan?-
Timeline insert time.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
customWidthint-
Custom stream width. Can be used for PIP or to resize.
customHeightint-
Custom stream height. Can be used for PIP or to resize.
Returns
Remarks
Specify FileBeginTime and FileEndTime to insert part of the file (-1 for the full file). Specify TimelineInsertTime to insert audio on the insert position (-1 to insert after previous).
Input_AddVideoFileAsync(string)
Adds video stream from a specified file (async.).
public Task<bool> Input_AddVideoFileAsync(string filename)Parameters
filenamestring-
File name.
Returns
Input_AddVideoFileAsync(VideoSource, TimeSpan?, int, int, int)
Add video stream from a specified file (async.).
public Task<bool> Input_AddVideoFileAsync(VideoSource fileSource, TimeSpan? timelineInsertTime = null, int targetVideoStream = 0, int customWidth = 0, int customHeight = 0)Parameters
fileSourceVideoSource-
File source.
timelineInsertTimeTimeSpan?-
Timeline insert time.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
customWidthint-
Custom stream width. Can be used for PIP or to resize.
customHeightint-
Custom stream height. Can be used for PIP or to resize.
Returns
Remarks
Specify FileBeginTime and FileEndTime to insert part of the file (-1 for the full file). Specify TimelineInsertTime to insert audio on the insert position (-1 to insert after previous).
Input_AddVideoFile_PIP(VideoSource, VideoSource, TimeSpan?, TimeSpan, VideoEditPIPMode, bool, int, int, int, Rectangle?, Rectangle?)
Add PIP video pair from a specified files.
public bool Input_AddVideoFile_PIP(VideoSource fileSource1, VideoSource fileSource2, TimeSpan? timelineInsertTime, TimeSpan duration, VideoEditPIPMode mode, bool letterbox, int customWidth = 0, int customHeight = 0, int targetVideoStream = 0, Rectangle? rectangle1 = null, Rectangle? rectangle2 = null)Parameters
fileSource1VideoSource-
First source file.
fileSource2VideoSource-
Second source file.
timelineInsertTimeTimeSpan?-
Timeline insert time.
durationTimeSpan-
Transition duration.
modeVideoEditPIPMode-
Mode.
letterboxbool-
Letterbox usage for horizontal/vertical mode.
customWidthint-
Custom output width.
customHeightint-
Custom output height.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
rectangle1Rectangle?-
Rectangle for a first file using custom PIP mode.
rectangle2Rectangle?-
Rectangle for a second file using custom PIP mode.
Returns
Remarks
Specify TimelineInsertTime to insert video on the insert position (-1 to insert after previous).
Input_AddVideoFile_PIPAsync(VideoSource, VideoSource, TimeSpan?, TimeSpan, VideoEditPIPMode, bool, int, int, int, Rectangle?, Rectangle?)
Add PIP video pair from a specified files (async.).
public Task<bool> Input_AddVideoFile_PIPAsync(VideoSource fileSource1, VideoSource fileSource2, TimeSpan? timelineInsertTime, TimeSpan duration, VideoEditPIPMode mode, bool letterbox, int customWidth = 0, int customHeight = 0, int targetVideoStream = 0, Rectangle? rectangle1 = null, Rectangle? rectangle2 = null)Parameters
fileSource1VideoSource-
First source file.
fileSource2VideoSource-
Second source file.
timelineInsertTimeTimeSpan?-
Timeline insert time.
durationTimeSpan-
Transition duration.
modeVideoEditPIPMode-
Mode.
letterboxbool-
Letterbox usage for horizontal/vertical mode.
customWidthint-
Custom output width.
customHeightint-
Custom output height.
targetVideoStreamint-
Target video stream. Some formats support several video streams. Also required for PIP mode.
rectangle1Rectangle?-
Rectangle for a first file using custom PIP mode.
rectangle2Rectangle?-
Rectangle for a second file using custom PIP mode.
Returns
Remarks
Specify TimelineInsertTime to insert video on the insert position (-1 to insert after previous).
Input_Clear_List()
Clears a list of the input files.
public void Input_Clear_List()Input_Timeline_Load(string)
Adds timeline from a specified XML file.
public bool Input_Timeline_Load(string filename)Parameters
filenamestring-
File name.
Returns
Remarks
Check IXml2Dex interface - https://msdn.microsoft.com/en-us/library/windows/desktop/dd390609(v=vs.85).aspx .
Input_Timeline_Save(string)
Saves timeline to a specified XML file.
public bool Input_Timeline_Save(string filename)Parameters
filenamestring-
File name.
Returns
Remarks
Check IXml2Dex interface - https://msdn.microsoft.com/en-us/library/windows/desktop/dd390609(v=vs.85).aspx .
IsAsync()
Determines whether this instance is asynchronous.
public bool IsAsync()Returns
- bool
-
trueif this instance is asynchronous; otherwise,false.
IsSourceConnected()
Always returns true: a video editor has no capture source to wait on, so
consumers (such as VideoView) must not draw a "no signal" overlay over it.
Implements VisioForge.Core.Types.IMPVCVECore.IsSourceConnected.
public bool IsSourceConnected()Returns
MotionDetection_Update()
Updates motion detection settings.
public void MotionDetection_Update()Network_Streaming_WMV_Access_AddItem(string, string, bool)
Adds network address to the list of allowed/disallowed addresses for network streaming.
public bool Network_Streaming_WMV_Access_AddItem(string ip, string mask, bool blocked)Parameters
Returns
- bool
-
trueif successful,falseotherwise.
Network_Streaming_WMV_Access_DeleteItem(int, bool)
Deletes network address from the list of allowed/disallowed addresses for network streaming.
public bool Network_Streaming_WMV_Access_DeleteItem(int index, bool blocked)Parameters
Returns
- bool
-
trueif successful,falseotherwise.
Network_Streaming_WMV_Access_GetCount(bool)
Gets item count of allowed/disallowed addresses list.
public int Network_Streaming_WMV_Access_GetCount(bool blocked)Parameters
blockedbool-
True to get count of items of blocked IP list.
Returns
- int
-
System.Int32.
Network_Streaming_WMV_Clients_GetCount()
Gets current connected clients count.
public int Network_Streaming_WMV_Clients_GetCount()Returns
- int
-
System.Int32.
Network_Streaming_WMV_Clients_GetInfo(int, out int, out string, out string)
Gets information about selected client.
public void Network_Streaming_WMV_Clients_GetInfo(int index, out int port, out string networkAddress, out string dnsName)Parameters
Object_Detection_Update()
Updates object detection settings.
public void Object_Detection_Update()OnPropertyChanged(string)
OnPropertyChanged API.
protected virtual void OnPropertyChanged(string propertyName = null)Parameters
propertyNamestring-
Property name.
Pause()
Pauses the video editing playback or conversion process.
public void Pause()Remarks
When paused, the DirectShow graph enters the PAUSED state:
- Video playback or conversion is suspended
- The current position is preserved
- All filters remain loaded and ready
- Resources are not released (use Stop() to release resources)
Use Resume() to continue from the paused position. For async operation, use PauseAsync().
PauseAsync()
Pauses the video editing playback or conversion process asynchronously.
public Task PauseAsync()Returns
Remarks
When paused, the DirectShow graph enters the PAUSED state:
- Video playback or conversion is suspended
- The current position is preserved
- All filters remain loaded and ready
- Resources are not released (use Stop() to release resources)
Use Resume() or ResumeAsync() to continue from the paused position. This is the async version to use when the editor was started with StartAsync().
Position_Get()
Gets current position in milliseconds.
public TimeSpan Position_Get()Returns
- TimeSpan
-
TimeSpan.
Position_Set(TimeSpan)
Sets current position.
public void Position_Set(TimeSpan position)Parameters
positionTimeSpan-
The position.
Progress()
Gets progress.
public int Progress()Returns
- int
-
System.Int32.
RefreshLists(bool, bool)
Refreshes the lists of codecs, devices or DirectShow filters.
public void RefreshLists(bool codecs, bool filters)Parameters
Resume()
Resumes video editing playback or conversion after being paused.
public void Resume()Remarks
Transitions the DirectShow graph from PAUSED to RUNNING state:
- Playback continues from the paused position
- All filters resume processing
- Progress events resume firing
- No re-initialization is required
Call after Pause() to continue processing. For async operation, use ResumeAsync().
ResumeAsync()
Resumes video editing playback or conversion after being paused (async version).
public Task ResumeAsync()Returns
Remarks
Transitions the DirectShow graph from PAUSED to RUNNING state:
- Playback continues from the paused position
- All filters resume processing
- Progress events resume firing
- No re-initialization is required
This is the async version for use with StartAsync(). Call after Pause() or PauseAsync() to continue processing.
SDK_BuildDate()
Gets the build date of the VisioForge SDK.
public DateTime SDK_BuildDate()Returns
- DateTime
-
The date and time when this SDK version was built.
SDK_Version()
Gets the version of the VisioForge SDK.
public Version SDK_Version()Returns
- Version
-
The SDK version number.
SetLicenseCertificateAsync(byte[])
Loads a license certificate into this instance and activates it if the certificate requires activation.
public Task SetLicenseCertificateAsync(byte[] certificateData)Parameters
certificateDatabyte[]-
The bytes of a
.vflicensecertificate file issued by VisioForge.
Returns
- Task
-
A task that completes once the certificate has been loaded and any required activation has run.
Remarks
This is the only public licensing API. The file-path and stream overloads and every license-key method were
removed in 2026.5.2, so an application reads the .vflicense file itself and passes the bytes here.
The certificate belongs to this instance: call it on every instance you create, before starting it --
licensing one instance does not license another. Without a certificate the instance runs in the 30-day trial.
Settings_Load(string)
Loads SDK settings from JSON file.
public bool Settings_Load(string jsonFilename)Parameters
jsonFilenamestring-
JSON settings file.
Returns
- bool
-
trueif successful,falseotherwise.
Settings_Save(string, string)
Saves current SDK control settings to file (XML).
public bool Settings_Save(string jsonFilename, string infoFilename)Parameters
Returns
- bool
-
trueif successful,falseotherwise.
Start()
Starts the video editing process, building the DirectShow graph and beginning playback or conversion.
public bool Start()Returns
- bool
-
trueif the graph was successfully built and started;falseif an error occurred.
Remarks
This method performs the following operations:
- Validates configuration and timeline setup
- Configures redistributable components and codecs
- Builds the DirectShow Editing Services (DES) render graph
- Creates and connects all filters (sources, effects, encoders, renderers)
- Sets the graph to PLAYING state
- Starts progress monitoring and event handling
The behavior depends on the Mode property: - Preview: Displays video without saving - Convert: Processes and saves to Output_Filename - Edit: Full editing with timeline support
This method is synchronous and may take several seconds to complete depending on the timeline complexity. For async operation, use StartAsync().
Exceptions
- Exception
-
Thrown if graph building fails or required components are missing.
StartAsync()
Starts the capture or preview. (async).
public Task<bool> StartAsync()Returns
StartDelayed()
Starts delayed graph. Start_DelayEnabled must be true to use this method.
public void StartDelayed()StartDelayedAsync()
Starts delayed graph. Start_DelayEnabled must be true to use this method.
public Task StartDelayedAsync()Returns
State()
Gets the current playback state of the video editor.
public PlaybackState State()Returns
- PlaybackState
-
The current playback state (Stopped, Playing, Paused, etc.).
Stop()
Stops the video editing process synchronously, releasing all resources and closing the DirectShow graph.
public void Stop()Remarks
This method performs the following cleanup operations:
- Stops the DirectShow graph and sets filters to NULL state
- Releases all COM objects and DirectShow filters
- Stops progress monitoring and event handling
- Finalizes output file (if converting)
- Clears the timeline and temporary resources
This is the synchronous version of StopAsync(). The method blocks until the stop operation is complete. For async operation, use StopAsync().
StopAsync()
Stops the video editing process asynchronously, releasing all resources and closing the DirectShow graph.
public Task StopAsync()Returns
Remarks
This method performs the following cleanup operations:
- Stops the DirectShow graph and sets filters to NULL state
- Releases all COM objects and DirectShow filters
- Stops progress monitoring and event handling
- Finalizes output file (if converting)
- Clears the timeline and temporary resources
This is the async version of Stop(). Use this method when the video editor was started with StartAsync(). The method returns immediately and completes the stop operation on a background thread.
Tags_GetDefaultAudioGenres()
Gets a collection of standard audio genre tags for media metadata.
public ObservableCollection<string> Tags_GetDefaultAudioGenres()Returns
- ObservableCollection<string>
-
An observable collection of audio genre names commonly used in audio classification.
Remarks
Audio genres include categories like Rock, Pop, Jazz, Classical, Electronic, etc. These genres follow the ID3v1 standard and are recognized by most media players. Use these values when setting the Tags.Genre property for output files.
Tags_GetDefaultVideoGenres()
Gets a collection of standard video genre tags for media metadata.
public ObservableCollection<string> Tags_GetDefaultVideoGenres()Returns
- ObservableCollection<string>
-
An observable collection of video genre names commonly used in video classification.
Remarks
Video genres include categories like Action, Comedy, Drama, Documentary, etc. These genres are standard values from the TagLib library that are recognized by most media players and organizing software. Use these values when setting the Tags.Genre property for output files.
Test()
Internal testing method. Do not use in production code.
public void Test()Remarks
This method is reserved for internal SDK testing and debugging purposes. It should not be called by client applications.
Video_Codecs()
Gets a collection of available video codecs on the system.
public ObservableCollection<string> Video_Codecs()Returns
- ObservableCollection<string>
-
An observable collection containing the names of all available video codecs.
Remarks
Returns codecs registered in the system that can be used for video compression. The list includes both system codecs and third-party codecs installed on the machine.
Video_Effects_Add(IVideoEffect)
Adds a video effect to the processing pipeline.
public void Video_Effects_Add(IVideoEffect effect)Parameters
effectIVideoEffect-
The video effect to add, implementing IVideoEffect interface.
Remarks
Effects are processed in the order they are added. Multiple effects of the same or different types can be added. Effects can include:
- Color adjustments (brightness, contrast, saturation)
- Image overlays and logos
- Text overlays
- Geometric transformations
- Various filters and artistic effects Thread-safe operation.
Video_Effects_Clear()
Removes all video effects from the processing pipeline.
public void Video_Effects_Clear()Remarks
This method:
- Properly disposes of effects that hold resources (ImageLogo, TextLogo, ScrollingTextLogo)
- Clears the entire effects collection
- Is thread-safe Call this method when switching projects or cleaning up resources.
Video_Effects_GPU_Add(IGPUVideoEffect)
Adds a GPU-accelerated video effect to the processing pipeline.
public void Video_Effects_GPU_Add(IGPUVideoEffect effect)Parameters
effectIGPUVideoEffect-
The GPU video effect to add, implementing IGPUVideoEffect interface.
Remarks
GPU effects provide hardware-accelerated video processing using DirectX 11. Benefits include:
- Significantly faster processing compared to CPU effects
- Real-time performance for complex effects
- Lower CPU usage Requires a DirectX 11 compatible graphics card. Effects are processed in the order they are added.
Video_Effects_GPU_Clear()
Removes all GPU video effects from the processing pipeline.
public void Video_Effects_GPU_Clear()Remarks
This method clears all GPU-accelerated effects. GPU resources are properly released. Use this when switching projects or cleaning up GPU resources.
Video_Effects_GPU_Get(string)
Retrieves a GPU video effect by its unique name.
public IGPUVideoEffect Video_Effects_GPU_Get(string name)Parameters
namestring-
The name of the GPU effect to retrieve.
Returns
- IGPUVideoEffect
-
The GPU video effect with the specified name, or null if not found.
Remarks
Use this method to access and modify GPU effect parameters during runtime. GPU effects can be adjusted in real-time without rebuilding the pipeline.
Video_Effects_GPU_Remove(string)
Removes a specific GPU video effect from the processing pipeline.
public void Video_Effects_GPU_Remove(string name)Parameters
namestring-
The name of the GPU effect to remove.
Remarks
Removes the specified GPU effect and releases its resources. If the effect is not found, no action is taken. The remaining effects continue processing in order.
Video_Effects_Get(string)
Retrieves a video effect by its unique name.
public IVideoEffect Video_Effects_Get(string name)Parameters
namestring-
The name of the effect to retrieve (case-insensitive).
Returns
- IVideoEffect
-
The video effect with the specified name, or null if not found.
Remarks
Effect names are case-insensitive for convenience. Use this method to modify effect parameters during runtime. Thread-safe operation.
Video_Effects_Remove(string)
Removes a specific video effect from the processing pipeline.
public void Video_Effects_Remove(string name)Parameters
namestring-
The name of the effect to remove (case-sensitive).
Remarks
This method:
- Finds the effect by exact name match
- Properly disposes of effects that hold resources
- Removes the effect from the collection
- Is thread-safe If the effect is not found, no action is taken.
Video_Filters_Add(CustomProcessingFilter)
Adds a custom DirectShow filter to the video processing pipeline.
public void Video_Filters_Add(CustomProcessingFilter filter)Parameters
filterCustomProcessingFilter-
The custom processing filter to add.
Remarks
Custom filters can be used to apply additional video processing effects or transformations that are not built into the SDK. Filters are applied in the order they are added.
Video_Filters_Clear()
Removes all custom DirectShow filters from the video processing pipeline.
public void Video_Filters_Clear()Remarks
Call this method to remove all previously added custom processing filters. This does not affect built-in video effects or filters.
Video_Renderer_Deinterlace_Modes()
Gets deinterlace modes list.
public ObservableCollection<string> Video_Renderer_Deinterlace_Modes()Returns
- ObservableCollection<string>
-
ObservableCollection<System.String>.
Video_Renderer_SetAuto()
Sets most suitable video renderer. Usually EVR or VMR-9.
public void Video_Renderer_SetAuto()Video_Renderer_Update()
Updates the screen settings.
public void Video_Renderer_Update()Video_Renderer_UpdateAsync()
Update screen settings (async).
public Task Video_Renderer_UpdateAsync()Returns
Video_Renderer_VideoAdjust_GetRanges(VideoRendererAdjustment)
Gets video adjustment ranges.
public VideoRendererVideoAdjustRanges Video_Renderer_VideoAdjust_GetRanges(VideoRendererAdjustment adjustment)Parameters
adjustmentVideoRendererAdjustment-
Adjustment type.
Returns
- VideoRendererVideoAdjustRanges
-
The VisioForge.Core.Types.VideoRendererVideoAdjustRanges.
Video_Renderer_VideoAdjust_GetRangesAsync(VideoRendererAdjustment)
Gets video adjustment ranges (async).
public Task<VideoRendererVideoAdjustRanges> Video_Renderer_VideoAdjust_GetRangesAsync(VideoRendererAdjustment adjustment)Parameters
adjustmentVideoRendererAdjustment-
Adjustment type.
Returns
- Task<VideoRendererVideoAdjustRanges>
-
Task<VideoRendererVideoAdjustRanges>.
Video_Renderer_VideoAdjust_GetSupported()
Gets video adjustment supported values.
public VideoRendererAdjustmentSupported Video_Renderer_VideoAdjust_GetSupported()Returns
- VideoRendererAdjustmentSupported
-
The VisioForge.Core.Types.VideoRendererAdjustmentSupported.
Video_Renderer_VideoAdjust_GetSupportedAsync()
Gets video adjustment supported values (async).
public Task<VideoRendererAdjustmentSupported> Video_Renderer_VideoAdjust_GetSupportedAsync()Returns
- Task<VideoRendererAdjustmentSupported>
-
Task<VideoRendererAdjustmentSupported>.
Video_Renderer_VideoAdjust_GetValues(VideoRendererAdjustment)
Gets video adjustment value.
public float? Video_Renderer_VideoAdjust_GetValues(VideoRendererAdjustment adjustment)Parameters
adjustmentVideoRendererAdjustment-
Adjustment type.
Returns
Video_Renderer_VideoAdjust_GetValuesAsync(VideoRendererAdjustment)
Gets video adjustment value (async).
public Task<float?> Video_Renderer_VideoAdjust_GetValuesAsync(VideoRendererAdjustment adjustment)Parameters
adjustmentVideoRendererAdjustment-
Adjustment type.
Returns
Video_Renderer_VideoAdjust_SetValue(VideoRendererAdjustment, float)
Sets video adjustment value.
public bool Video_Renderer_VideoAdjust_SetValue(VideoRendererAdjustment adjustment, float value)Parameters
adjustmentVideoRendererAdjustment-
Adjustment type.
valuefloat-
Value.
Returns
Video_Renderer_VideoAdjust_SetValueAsync(VideoRendererAdjustment, float)
Sets video adjustment value (async).
public Task<bool> Video_Renderer_VideoAdjust_SetValueAsync(VideoRendererAdjustment adjustment, float value)Parameters
adjustmentVideoRendererAdjustment-
Adjustment type.
valuefloat-
Value.
Returns
Video_Transition_Add(TimeSpan, TimeSpan, int)
Add transition between tracks.
public void Video_Transition_Add(TimeSpan startTime, TimeSpan stopTime, int id)Parameters
Video_Transition_Add(TimeSpan, TimeSpan, int, bool)
Add transition between tracks.
public void Video_Transition_Add(TimeSpan startTime, TimeSpan stopTime, int id, bool reverse)Parameters
startTimeTimeSpan-
Start time.
stopTimeTimeSpan-
Stop time.
idint-
Transition id.
reversebool-
Reverse transition.
Video_Transition_Add(TimeSpan, TimeSpan, int, Color, int, int, int, int, int, int, int, int)
Add transition between tracks.
public void Video_Transition_Add(TimeSpan startTime, TimeSpan stopTime, int id, Color borderColor, int borderSoftness, int borderWidth, int offsetX, int offsetY, int replicateX, int replicateY, int scaleX, int scaleY)Parameters
startTimeTimeSpan-
Start time.
stopTimeTimeSpan-
Stop time.
idint-
Transition id.
borderColorColor-
Border color.
borderSoftnessint-
Border softness.
borderWidthint-
Border width.
offsetXint-
Offset X value.
offsetYint-
Offset Y value.
replicateXint-
Replicate X value.
replicateYint-
Replicate Y value.
scaleXint-
Scale X value.
scaleYint-
Scale Y value.
Video_Transition_Add(TimeSpan, TimeSpan, int, Color, int, int, int, int, int, int, int, int, bool)
Add transition between tracks.
public void Video_Transition_Add(TimeSpan startTime, TimeSpan stopTime, int id, Color borderColor, int borderSoftness, int borderWidth, int offsetX, int offsetY, int replicateX, int replicateY, int scaleX, int scaleY, bool reverse)Parameters
startTimeTimeSpan-
Start time.
stopTimeTimeSpan-
Stop time.
idint-
Transition id.
borderColorColor-
Border color.
borderSoftnessint-
Border softness.
borderWidthint-
Border width.
offsetXint-
Offset X value.
offsetYint-
Offset Y value.
replicateXint-
Replicate X value.
replicateYint-
Replicate Y value.
scaleXint-
Scale X value.
scaleYint-
Scale Y value.
reversebool-
Reverse transition.
Video_Transition_Add_FadeIn(TimeSpan, TimeSpan, Color, int, int)
Adds fade-in transition.
public void Video_Transition_Add_FadeIn(TimeSpan startTime, TimeSpan stopTime, Color color, int startPerc = 0, int stopPerc = 100)Parameters
startTimeTimeSpan-
Start time.
stopTimeTimeSpan-
Stop time.
colorColor-
Fade color.
startPercint-
Start %. 0 by default.
stopPercint-
Stop %. 100 by default.
Video_Transition_Add_FadeOut(TimeSpan, TimeSpan, Color, int, int)
Adds fade-out transition.
public void Video_Transition_Add_FadeOut(TimeSpan startTime, TimeSpan stopTime, Color color, int startPerc = 100, int stopPerc = 0)Parameters
startTimeTimeSpan-
Start time.
stopTimeTimeSpan-
Stop time.
colorColor-
Fade color.
startPercint-
Start %. 100 by default.
stopPercint-
Stop %. 0 by default.
Video_Transition_Clear()
Clears transitions.
public void Video_Transition_Clear()Video_Transition_GetIDFromName(string)
Gets the numeric identifier for a video transition effect from its name.
public int Video_Transition_GetIDFromName(string name)Parameters
namestring-
The name of the transition effect.
Returns
- int
-
The numeric ID of the transition, or 0 if not found.
Remarks
This method maps transition names to their internal numeric identifiers. The IDs are used when configuring transitions in the video editing timeline.
Video_Transition_Names()
Gets a collection of available video transition effect names.
public ObservableCollection<string> Video_Transition_Names()Returns
- ObservableCollection<string>
-
An observable collection containing the names of all available video transitions.
Remarks
These transitions can be applied between video clips to create smooth visual effects. Use Video_Transition_GetIDFromName to convert a name to its corresponding ID.
IMPVCVECore.GetVideoRenderer()
Gets the video renderer.
VideoRendererSettings IMPVCVECore.GetVideoRenderer()Returns
- VideoRendererSettings
-
VideoRendererSettings.
WMV_CustomProfile_AudioCodecs(WMVStreamMode)
Gets a collection of available WMV audio codecs for the specified streaming mode.
public ObservableCollection<string> WMV_CustomProfile_AudioCodecs(WMVStreamMode mode)Parameters
modeWMVStreamMode-
The WMV streaming mode (CBR, VBR_Peak, VBR_Quality, etc.).
Returns
- ObservableCollection<string>
-
An observable collection containing the names of compatible audio codecs.
Remarks
This method enumerates Windows Media audio codecs that support the specified mode. Only codecs with at least one compatible format for the mode are included. Common codecs include Windows Media Audio 9, 9.1, 9.2, and Professional.
WMV_CustomProfile_AudioFormats(string, WMVStreamMode)
Gets a collection of audio formats available for a specific WMV codec and streaming mode.
public ObservableCollection<string> WMV_CustomProfile_AudioFormats(string codecName, WMVStreamMode mode)Parameters
codecNamestring-
The name of the audio codec to query formats for.
modeWMVStreamMode-
The WMV streaming mode (CBR, VBR, etc.).
Returns
- ObservableCollection<string>
-
An observable collection containing format descriptions (e.g., "44100 Hz, Stereo, 128 kbps").
Remarks
Audio formats include combinations of:
- Sample rate (8000 Hz to 48000 Hz)
- Channels (Mono/Stereo)
- Bitrate (varies by codec and mode) The available formats depend on the selected codec and streaming mode.
WMV_CustomProfile_SaveToFile(string, WMVOutput)
Saves a custom WMV profile configuration to a file.
public void WMV_CustomProfile_SaveToFile(string filename, WMVOutput wmvOutput)Parameters
filenamestring-
The path where the profile file (.prx) will be saved.
wmvOutputWMVOutput-
The WMV output settings containing the profile configuration.
Remarks
Creates a Windows Media profile file that can be:
- Shared between applications
- Loaded later for consistent encoding settings
- Used with Windows Media Encoder The profile includes all audio/video codec settings, bitrates, and quality parameters.
Exceptions
- NullReferenceException
-
Thrown when wmvOutput is null.
WMV_CustomProfile_VideoCodecs(WMVStreamMode)
Gets a collection of available WMV video codecs for the specified streaming mode.
public ObservableCollection<string> WMV_CustomProfile_VideoCodecs(WMVStreamMode mode)Parameters
modeWMVStreamMode-
The WMV streaming mode (CBR, VBR_Peak, VBR_Quality, etc.).
Returns
- ObservableCollection<string>
-
An observable collection containing the names of compatible video codecs.
Remarks
This method enumerates Windows Media video codecs that support the specified mode. Common codecs include:
- Windows Media Video 9
- Windows Media Video 9 Advanced Profile
- Windows Media Video 9 Screen The availability depends on the Windows Media components installed.
WMV_Internal_Profiles()
Gets a collection of built-in Windows Media profile names.
public ObservableCollection<string> WMV_Internal_Profiles()Returns
- ObservableCollection<string>
-
An observable collection containing the names of all internal WMV profiles.
Remarks
Internal profiles are predefined configurations provided by Windows Media Format SDK. These include optimized settings for various scenarios:
- Dial-up, broadband, and LAN streaming
- Different quality levels (low, medium, high)
- Specific devices (portable players, etc.) Using internal profiles ensures compatibility and optimal performance.
WMV_Remux(List<WMVSourceStream>, string)
Remuxes WMV file without reencoding.
public bool WMV_Remux(List<WMVSourceStream> sourceStreams, string outputFile)Parameters
sourceStreamsList<WMVSourceStream>-
Source streams.
outputFilestring-
Output file.
Returns
- bool
-
trueif successful,falseotherwise.
WMV_V8_Profiles(out List<string>, out List<string>)
Gets lists of Windows Media Version 8 profile names and their descriptions.
public void WMV_V8_Profiles(out List<string> names, out List<string> descriptions)Parameters
namesList<string>-
Output list that will contain profile names.
descriptionsList<string>-
Output list that will contain profile descriptions.
Remarks
WMV V8 profiles are legacy profiles from Windows Media 8. Each profile has:
- A short name for selection
- A detailed description of its purpose and settings These profiles maintain compatibility with older Windows Media players. The lists are parallel - names[i] corresponds to descriptions[i].
OnAudioFrameBuffer
This event occurs whenever each new audio frame is received.
public event EventHandler<AudioFrameBufferEventArgs> OnAudioFrameBufferEvent Type
OnAudioVUMeter
This event occurs whenever each new video VU meter data is received.
public event EventHandler<VUMeterEventArgs> OnAudioVUMeterEvent Type
OnAudioVUMeterProFFTCalculated
This event occurs whenever each new audio VU meter Pro FFT value is received.
public event EventHandler<VUMeterFFTEventArgs> OnAudioVUMeterProFFTCalculatedEvent Type
OnAudioVUMeterProMaximumCalculated
This event occurs whenever each new audio VU meter Pro min/max level is received.
public event EventHandler<VUMeterMaxSampleEventArgs> OnAudioVUMeterProMaximumCalculatedEvent Type
OnAudioVUMeterProVolume
This event occurs whenever each new audio VU meter Pro volume level is received.
public event EventHandler<AudioLevelEventArgs> OnAudioVUMeterProVolumeEvent Type
OnBarcodeDetected
This event occurs whenever each new barcode detected. Event args contain barcode data.
public event EventHandler<BarcodeEventArgs> OnBarcodeDetectedEvent Type
OnError
This event occurs in a case of an error.
public event EventHandler<ErrorsEventArgs> OnErrorEvent Type
OnFFMPEGInfo
This event occurs in a case of a new FFMPEG info available. FFMPEG errors can be handled using OnError event.
public event EventHandler<FFMPEGInfoEventArgs> OnFFMPEGInfoEvent Type
OnFilterAdded
Event occurring when each new DirectShow filter added.
public event EventHandler<FilterEventArgs> OnFilterAddedEvent Type
OnLicenseRequired
Occurs when the current editing configuration requires a specific SDK edition. The event data identifies the required Standard, Professional or Premium edition and the feature that asks for it. This is not a trial-expiry notification.
public event EventHandler<LicenseEventArgs> OnLicenseRequiredEvent Type
OnMotionDetection
This event occurs whenever a new frame is received and motion is detected.
public event EventHandler<MotionDetectionEventArgs> OnMotionDetectionEvent Type
OnMotionDetectionEx
This event occurs whenever each new video frame is received. Event args contain motion data.
public event EventHandler<MotionDetectionExEventArgs> OnMotionDetectionExEvent Type
OnProgress
Event occurring when new progress value available.
public event EventHandler<ProgressEventArgs> OnProgressEvent Type
OnStart
This event occurs whenever the capture / preview starts.
public event EventHandler<EventArgs> OnStartEvent Type
OnStop
This event occurs whenever the convert / preview stops.
public event EventHandler<StopEventArgs> OnStopEvent Type
OnSubtitlesSettings
Subtitles settings event.
public event EventHandler<SubtitlesSettingsEventArgs> OnSubtitlesSettingsEvent Type
OnVideoFrameBitmap
This event occurs whenever each new video frame is received.
public event EventHandler<VideoFrameBitmapEventArgs> OnVideoFrameBitmapEvent Type
OnVideoFrameBuffer
This event occurs whenever each new video frame is received.
public event EventHandler<VideoFrameBufferEventArgs> OnVideoFrameBufferEvent Type
OnVideoFrameBufferOriginal
This event occurs whenever each new video frame is received (RGB24). Original frame without video effects or another processing.
public event EventHandler<VideoFrameBufferEventArgs> OnVideoFrameBufferOriginalEvent Type
OnVideoFrameBufferWPF
This event occurs whenever each new video frame is received (for WPF).
public event EventHandler<VideoFrameBufferEventArgs> OnVideoFrameBufferWPFEvent Type
OnWPFFillParameters
This event occurs whenever WPF screen parameters must be filled.
public event EventHandler<EventArgs> OnWPFFillParametersEvent Type
PropertyChanged
Property changed event.
public event PropertyChangedEventHandler PropertyChangedEvent Type
WPFClose
This event occurs whenever WPF closed.
public event EventHandler<EventArgs> WPFCloseEvent Type
WPFPropertiesChanged
This event occurs whenever WPF properties changed.
public event EventHandler<EventArgs> WPFPropertiesChanged