Table of Contents

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, IAsyncDisposable

Inheritance

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

videoView IVideoView

The video view interface for rendering video output.

initialize bool

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

initialize bool

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

AudioChannelMapperSettings

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

bool

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

bool

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

bool

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

bool

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

bool

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

int

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

bool

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

BarcodeType

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

ChromaKeySettings

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

bool

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

bool

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

bool

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

string

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

string

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

string

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

string

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

bool

Debug_Mode

Gets or sets a value indicating whether debug mode enabled.

public bool Debug_Mode { get; set; }

Property Value

bool

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

bool

Remarks

Only anonymous data will be send.

Gets or sets the timecode source for Decklink capture devices.

public DecklinkCaptureTimecodeSource Decklink_Input_Capture_Timecode_Source { get; set; }

Property Value

DecklinkCaptureTimecodeSource

Remarks

Specifies which timecode track to read from the Decklink input (VITC, LTC, etc.). Used for professional video production workflows requiring frame-accurate timecode.

Gets or sets the configuration for Decklink video output devices.

public DecklinkOutputSettings Decklink_Output { get; set; }

Property Value

DecklinkOutputSettings

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

bool

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

bool

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

VideoEditMode

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

MotionDetectionSettings

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

MotionDetectionExSettings

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

bool

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

bool

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

NetworkStreamingFormat

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

int

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

INetworkStreamingOutput

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

string

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

int

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

string

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

IVideoEditBaseOutput

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

bool

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:

  1. Call Start() to build the graph and prepare resources
  2. 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

MediaFileTags

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

bool

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

int

VideoView

Gets or sets the video view interface for rendering video output.

[JsonIgnore]
public IVideoView VideoView { get; set; }

Property Value

IVideoView

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

int

Video_Crop

Gets or sets the video cropping configuration.

public VideoCropSettings Video_Crop { get; set; }

Property Value

VideoCropSettings

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

Guid

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

bool

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

bool

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

bool

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

VideoFrameRate

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

bool

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

VideoRendererSettings

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

bool

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

int

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

int

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

RotateMode

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

SubtitlesSettings

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

string

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

bool

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

string

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

streamIndex int

The index of the audio stream (0-3), or -1 to apply to all streams.

effectType AudioEffectType

The type of audio effect to add (e.g., Amplify, Echo, Reverb).

name string

A unique name identifier for this effect instance.

enabled bool

True to enable the effect immediately, false to add it in disabled state.

startTime TimeSpan

The time position when the effect should start being applied.

stopTime TimeSpan

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

streamIndex int

The index of the audio stream (0-3), or -1 to apply to all streams.

name string

The unique name of the amplify effect to configure.

volume int

The amplification level (10000 = no change, 20000 = 2x amplification, 5000 = 0.5x).

separate bool

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

streamIndex int

Stream index.

name string

The name.

cutOffHigh float

Specifies the high cutoff frequency for a specific channel.

cutOffLow float

Specifies the low cutoff frequency for a specific channel.

separate bool

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

streamIndex int

The audio stream index (0-3), or -1 to apply to all streams.

name string

The unique name of the channel order effect to configure.

orders byte[,]

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

streamIndex int

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

streamIndex int

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

streamIndex int

Stream index.

name string

The name.

delay float

Specifies the delay of the filter (0 - 20.0).

depth float

Specifies the depth of the filter (0 - 100.0).

feedback float

Specifies the feedback of the filter (-99.0 - 99.0).

frequency float

Specifies the frequency of the filter (0 - 10.0).

phase DSChorusPhase

Specifies the phase angle.

waveformTriangle DSChorusWaveForm

Specifies the waveform type of the filter.

wetDryMix float

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

streamIndex int

Stream index.

name string

The name.

attack float

Specifies the attack time in ms (0.01 - 500).

gain float

Specifies the gain of the filter (-60.0 - 60.0).

preDelay float

Specifies the pre-delay of the filter (0.0 - 4.0).

ratio float

Specifies the ratio of the filter (1.0 - 100.0).

release float

Specifies the release time in ms (50.0 - 3000.0).

threshold float

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

streamIndex int

Stream index.

name string

The name.

edge float

Specifies the edge of the filter (0.0 - 100.0).

gain float

Specifies the gain of the filter (-60.0 - 0).

postEQBandwidth float

Specifies the bandwidth of the equalizer (100.0 - 8000.0).

postEQCenterFrequency float

Specifies the center frequency of the distortion equalizer (100.0 - 8000.0).

preLowpassCutOff float

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

streamIndex int

Stream index.

name string

The name.

feedback float

Specifies the feedback of the filter (0 - 100.0).

leftDelay float

Specifies the left delay of the filter (1.0 - 2000.0).

rightDelay float

Specifies the right delay of the filter (1.0 - 2000.0).

panDelay int

The pan delay.

wetDryMix float

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

streamIndex int

Stream index.

name string

The name.

delay float

Specifies the delay of the filter (0.0 - 4.0).

depth float

Specifies the depth of the filter (0.0 - 100.0).

feedback float

Specifies the feedback of the filter (-99.0 - 99.0).

frequency float

Specifies the frequency of the filter (0.0 - 10.0).

phase int

Specifies the phase angle.

waveform DSFlangerWaveForm

Specifies the waveform type of the filter.

wetDryMix float

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

streamIndex int

Stream index.

name string

The name.

rateHz int

Specifies the frequency of the gargle filter (1 - 1000).

waveForm DSGargleWaveForm

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

streamIndex int

Stream index.

name string

The name.

bandwidth float

Specifies the bandwidth of the equalizer (1.0 - 36.0).

center float

Specifies the center frequency of the equalizer (80.0 - 16000.0).

gain float

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

streamIndex int

Stream index.

name string

The name.

decayHFRatio float

Specifies the decay HF ratio for the filter (0.1 - 2.0, 0.83 by default).

decayTime float

Specifies the decay time for the filter (0.1 - 20.0, 1.49 by default).

density float

Specifies the density value for the filter (0 - 100.0, 100.0 by default).

diffusion float

Specifies the diffusion value for the filter (0 - 100.0, 100.0 by default).

HFReference float

Specifies the HF reference for the filter (20.0 - 20000.0, 5000.0 by default).

preset DSI3DL2ReverbPreset

Specifies the preset name.

quality int

Specifies the quality of the filter (0 - 3, 2 by default).

reflections int

Specifies the reflections value for the filter (-10000 - -1000, -2602 by default).

reflectionsDelay float

Specifies the reflections delay for the filter (0.0 - 0.3, 0.007 by default).

reverbValue int

Specifies the reverb value for the filter (-10000 - 2000, 200 by default).

reverbDelay float

Specifies the reverb delay for the filter (0.0 - 0.1, 0.011 by default).

room int

Specifies the room value for the filter (-10000 - 0, -1000 by default).

roomHF int

Specifies the room HF value of the filter (-10000 - 0, -100 by default).

roomRollOffFactor float

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

streamIndex int

Stream index.

name string

The name.

highFreqRTRatio float

Specifies the high frequency ratio (0.001 - 0.999, 0.001 by default).

inGain float

Specifies in-gain of the filter (-96.0 - 0.0, 0.0 by default).

reverbMix float

Specifies the reverb mix of the filter (-96.0 - 0.0, 0.0 by default).

reverbTime float

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

streamIndex int

Stream index.

name string

The name.

attackTime int

Specifies the amplification value than will be used when amplifying.

maxAmplification int

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.

releaseTime int

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

streamIndex int

Stream index.

name string

The name.

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

streamIndex int

Stream index.

name string

The name.

enable bool

true if enabled, false if disabled.

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

streamIndex int

The audio stream index (0-3), or -1 to apply to all streams.

name string

The unique name of the equalizer effect to configure.

separate bool

True to equalize each audio channel independently with its own amplification values, false to apply channel 0's values to all channels.

maxGainDB float

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

streamIndex int

Stream index.

name string

The name.

index int

Band index.

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

streamIndex int

Stream index.

name string

The name.

index int

Band index.

value int

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

streamIndex int

The audio stream index (0-3), or -1 to apply to all streams.

name string

The unique name of the equalizer effect to configure.

preset EqualizerPreset

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

streamIndex int

The audio stream index (0-3), or -1 to apply to all streams.

name string

The unique name of the fade effect to configure.

startVolume int

The initial volume level at the start time (0 to 10000, where 10000 = 100% volume).

stopVolume int

The final volume level at the stop time (0 to 10000, where 10000 = 100% volume).

startTime TimeSpan

The time position when the fade begins.

stopTime TimeSpan

The time position when the fade completes.

separate bool

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

streamIndex int

Stream index.

name string

The name.

delay float

Specifies the delay time in seconds.

frequency float

Specifies the flanger frequency.

phaseInvert bool

Specifies whether the added signal should be inverted.

separate bool

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

streamIndex int

Stream index.

name string

The name.

cutOff int

The cut Off.

separate bool

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

streamIndex int

The stream Index.

name string

The name.

cutOff int

Specifies the cutoff frequency for a specific channel at which the cutoff will end.

separate bool

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

streamIndex int

Stream index.

name string

The name.

cutOff int

Specifies the cutoff frequency for a specific channel at which the cutoff will have it's maximum amplification.

separate bool

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

streamIndex int

The audio stream index (0-3), or -1 to apply to all streams.

name string

The unique name of the parametric EQ effect to configure.

frequency float

The center frequency in Hz to boost or cut (typically 20 Hz to 20000 Hz).

gain float

The gain adjustment in decibels (-15 dB to +15 dB). Positive values boost, negative values cut.

q float

The Q factor (bandwidth) of the filter. Higher values create narrower frequency bands (typically 0.1 to 10).

separate bool

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

streamIndex int

Stream index.

name string

The name.

invert bool

Enables and Disables phase invert for a specific channel.

separate bool

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

streamIndex int

Stream index.

name string

The name.

depth byte

Sets Phaser depth (0 - 255).

dryWetRatio byte

Sets dry-wet mix ratio. 0 - dry, 255 - wet (0 - 255).

feedback byte

Sets phaser feedback. 0 - no feedback, 100 = 100% feedback, -100 = -100% feedback (-100 - 100).

frequency float

Sets phaser's LFO frequency.

separate bool

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.

stages byte

Sets phaser stages. Recommended from 2 to 24.

startPhase float

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

streamIndex int

The audio stream index (0-3), or -1 to apply to all streams.

name string

The unique name of the pitch shift effect to configure.

pitch float

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

streamIndex int

The audio stream index (0-3), or -1 to apply to all streams.

name string

The unique name of the effect to configure.

channel sbyte

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

streamIndex int

Stream index.

name string

The name.

volume int

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

streamIndex int

Stream index.

name string

The name.

frequency int

Specifies the frequency range that will be used to amplify. Range is frequency to (sample rate div 2).

separate bool

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.

volume int

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

streamIndex int

Stream index.

name string

The name.

frequency int

Specifies the frequency range that will be used to amplify. Range is 0 to frequency.

separate bool

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.

volume int

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

streamIndex int

Stream index. -1 for all streams.

enabled bool

Enabled.

Audio_Enhancer_AutoGainAsync(int, bool)

Applies audio auto gain enhancement (async).

public Task Audio_Enhancer_AutoGainAsync(int streamIndex, bool enabled)

Parameters

streamIndex int

Stream index. -1 for all streams.

enabled bool

Enabled.

Returns

Task

Task.

Audio_Enhancer_InputGains(int, AudioEnhancerGains)

Applies audio input gains enhancement.

public void Audio_Enhancer_InputGains(int streamIndex, AudioEnhancerGains gains)

Parameters

streamIndex int

Stream index. -1 for all streams.

gains AudioEnhancerGains

Gains.

Audio_Enhancer_InputGainsAsync(int, AudioEnhancerGains)

Applies audio input gains enhancement (async).

public Task Audio_Enhancer_InputGainsAsync(int streamIndex, AudioEnhancerGains gains)

Parameters

streamIndex int

Stream index. -1 for all streams.

gains AudioEnhancerGains

Gains.

Returns

Task

Task.

Audio_Enhancer_Normalize(int, bool)

Applies audio normalize enhancement.

public void Audio_Enhancer_Normalize(int streamIndex, bool enabled)

Parameters

streamIndex int

The stream index. -1 for all streams.

enabled bool

Enabled.

Audio_Enhancer_NormalizeAsync(int, bool)

Applies audio normalize enhancement (async).

public Task Audio_Enhancer_NormalizeAsync(int streamIndex, bool enabled)

Parameters

streamIndex int

The stream index. -1 for all streams.

enabled bool

Enabled.

Returns

Task

Task.

Audio_Enhancer_OutputGains(int, AudioEnhancerGains)

Applies audio output gains enhancement.

public void Audio_Enhancer_OutputGains(int streamIndex, AudioEnhancerGains gains)

Parameters

streamIndex int

Stream index. -1 for all streams.

gains AudioEnhancerGains

Gains.

Audio_Enhancer_OutputGainsAsync(int, AudioEnhancerGains)

Applies audio output gains enhancement (async).

public Task Audio_Enhancer_OutputGainsAsync(int streamIndex, AudioEnhancerGains gains)

Parameters

streamIndex int

Stream index. -1 for all streams.

gains AudioEnhancerGains

Gains.

Returns

Task

Task.

Audio_Enhancer_Timeshift(int, int)

Applies audio delay.

public void Audio_Enhancer_Timeshift(int streamIndex, int timeshift)

Parameters

streamIndex int

Stream index. -1 for all streams.

timeshift int

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

streamIndex int

Stream index. -1 for all streams.

timeshift int

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

streamIndex int

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

streamIndex int

Stream index.

balance int

Balance value.

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

streamIndex int

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

streamIndex int

Stream index.

volume int

Volume level.

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

width int

The width.

height int

The height.

updateHandle bool

if set to true update handle.

ConvertHexStringToByteArray(string)

Converts HEX string to byte array.

public byte[] ConvertHexStringToByteArray(string hexString)

Parameters

hexString string

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

videoView IVideoView

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

enabled bool

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.

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.

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.

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.

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

filter string

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

name string

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

disposing bool

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

TimeSpan

The TimeSpan.

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

inputFile string

Path to the input video file to cut from.

startTime TimeSpan

The time position to start the cut from.

stopTime TimeSpan

The time position to end the cut at.

outputFile string

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

inputFile string

Path to the input video file containing audio.

startTime TimeSpan

The time position to start extraction from.

stopTime TimeSpan

The time position to stop extraction at.

outputFile string

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

inputFiles string[]

Array of input file paths to join together.

outputFile string

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

sourceStreams List<FFMPEGStream>

List of source streams to multiplex, each specifying file path and stream type.

shortest bool

If true, cuts all streams to match the duration of the shortest stream.

outputFile string

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

sourceFile string

Source file.

outputFile string

Output file.

keyType EncryptionKeyType

Key type.

key object

Key.

v9 bool

True to use v9 AES-256 encryption SDK engine.

licenseKey string

Encryption SDK license key.

consoleUsage bool

Console usage.

debugFolder string

Debug directory.

customSplitterSource Guid

Custom source splitter filter GUID, must support IFileSourceFilter interface.

Returns

bool

Returns Boolean.

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

sourceFiles string[]

Source files.

outputFile string

Output file.

keyType EncryptionKeyType

Key type.

key object

Key.

v9 bool

True to use v9 encryption SDK engine (AES-256).

licenseKey string

Encryption SDK license key.

consoleUsage bool

Console usage.

debugFolder string

Debug directory.

customSplitterSource Guid

Custom source splitter filter GUID, must support IFileSourceFilter interface.

Returns

bool

Returns Boolean.

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

width int

Frame width.

height int

Frame height.

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

timestamp TimeSpan

Timestamp in milliseconds.

Returns

Bitmap

The Bitmap.

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

filename string

Output file name.

format ImageFormat

Image format.

quality int

JPEG quality.

customWidth int

Custom width.

customHeight int

Custom height.

Returns

bool

Return Boolean.

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

filename string

Output file name.

format ImageFormat

Image format.

quality int

JPEG quality.

customWidth int

Custom width.

customHeight int

Custom height.

Returns

Task<bool>

Task<System.Boolean>.

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

filename string

File name.

video TimeSpan

Video stream duration.

audio1 TimeSpan

Audio stream 1 duration.

audio2 TimeSpan

Audio stream 2 duration.

audio3 TimeSpan

Audio stream 3 duration.

audio4 TimeSpan

Audio stream 4 duration.

audio5 TimeSpan

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

filename string

File name.

timestamp TimeSpan

Timestamp.

oldWay bool

If true - old way (using IMediaDet interface), if false - Sample Grabber will be used.

engine MediaPlayerSourceMode

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

filename string

File name.

timestamp TimeSpan

Timestamp.

oldWay bool

If true - old way (using IMediaDet interface), if false - Sample Grabber will be used.

engine MediaPlayerSourceMode

Engine. LAV and DirectShow are supported.

Returns

Task<Bitmap>

Task<Bitmap>.

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

filename string

File name.

connectedVideoFile string

Video file name to synchronize audio and video streams. Can be empty string.

Returns

bool

The Boolean.

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

fileSource AudioSource

File source.

timelineInsertTime TimeSpan?

Timeline insert position.

targetStreamIndex int

Target stream index.

effects AudioTrackEffect[]

Audio effects (applied only to a track).

customTimelineSettings TimelineAudioTrackCustomSettings

Custom timeline audio track settings.

Returns

bool

The Boolean.

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

filename string

File name.

connectedVideoFile string

Video file name to synchronize audio and video streams. Can be empty string.

Returns

Task<bool>

Task<System.Boolean>.

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

fileSource AudioSource

File source.

timelineInsertTime TimeSpan?

Timeline insert position.

targetStreamIndex int

Target stream index.

effects AudioTrackEffect[]

Audio effects (applied only to a track).

customTimelineSettings TimelineAudioTrackCustomSettings

Custom timeline audio track settings.

Returns

Task<bool>

Task<System.Boolean>.

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

filename string

File name.

duration TimeSpan

Fragment duration.

timelineInsertTime TimeSpan?

Timeline insert time.

stretchMode VideoEditStretchMode

Stretch mode.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

customWidth int

Custom width.

customHeight int

Custom height.

Returns

bool

The Boolean.

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

images List<ImageSource>

Images.

timelineInsertTime TimeSpan?

Timeline insert time.

stretchMode VideoEditStretchMode

Stretch mode.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

customWidth int

Custom width.

customHeight int

Custom height.

Returns

bool

The Boolean.

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

filename string

File name.

duration TimeSpan

Fragment duration.

timelineInsertTime TimeSpan?

Timeline insert time.

stretchMode VideoEditStretchMode

Stretch mode.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

customWidth int

Custom width.

customHeight int

Custom height.

Returns

Task<bool>

Task<System.Boolean>.

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

images List<ImageSource>

Images.

timelineInsertTime TimeSpan?

Timeline insert time.

stretchMode VideoEditStretchMode

Stretch mode.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

customWidth int

Custom width.

customHeight int

Custom height.

Returns

Task<bool>

Task<System.Boolean>.

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

duration TimeSpan

Fragment duration.

timelineInsertTime TimeSpan?

Timeline insert time.

videoWidth int

Video width.

videoHeight int

Video height.

color Color

Color.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

Returns

bool

The Boolean.

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

duration TimeSpan

Fragment duration.

timelineInsertTime TimeSpan?

Timeline insert time.

videoWidth int

Video width.

videoHeight int

Video height.

color Color

Color.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

Returns

Task<bool>

Task<System.Boolean>.

Input_AddVideoFile(string)

Adds video stream from a specified file.

public bool Input_AddVideoFile(string filename)

Parameters

filename string

File name.

Returns

bool

The Boolean.

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

fileSource VideoSource

File source.

timelineInsertTime TimeSpan?

Timeline insert time.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

customWidth int

Custom stream width. Can be used for PIP or to resize.

customHeight int

Custom stream height. Can be used for PIP or to resize.

Returns

bool

The Boolean.

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

filename string

File name.

Returns

Task<bool>

Task<System.Boolean>.

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

fileSource VideoSource

File source.

timelineInsertTime TimeSpan?

Timeline insert time.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

customWidth int

Custom stream width. Can be used for PIP or to resize.

customHeight int

Custom stream height. Can be used for PIP or to resize.

Returns

Task<bool>

Task<System.Boolean>.

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

fileSource1 VideoSource

First source file.

fileSource2 VideoSource

Second source file.

timelineInsertTime TimeSpan?

Timeline insert time.

duration TimeSpan

Transition duration.

mode VideoEditPIPMode

Mode.

letterbox bool

Letterbox usage for horizontal/vertical mode.

customWidth int

Custom output width.

customHeight int

Custom output height.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

rectangle1 Rectangle?

Rectangle for a first file using custom PIP mode.

rectangle2 Rectangle?

Rectangle for a second file using custom PIP mode.

Returns

bool

The Boolean.

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

fileSource1 VideoSource

First source file.

fileSource2 VideoSource

Second source file.

timelineInsertTime TimeSpan?

Timeline insert time.

duration TimeSpan

Transition duration.

mode VideoEditPIPMode

Mode.

letterbox bool

Letterbox usage for horizontal/vertical mode.

customWidth int

Custom output width.

customHeight int

Custom output height.

targetVideoStream int

Target video stream. Some formats support several video streams. Also required for PIP mode.

rectangle1 Rectangle?

Rectangle for a first file using custom PIP mode.

rectangle2 Rectangle?

Rectangle for a second file using custom PIP mode.

Returns

Task<bool>

Task<System.Boolean>.

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

filename string

File name.

Returns

bool

The Boolean.

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

filename string

File name.

Returns

bool

The Boolean.

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

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

bool

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

ip string

IP address.

mask string

Mask.

blocked bool

true to block IP.

Returns

bool

true if successful, false otherwise.

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

index int

Item index.

blocked bool

True to delete item from blocked IP list.

Returns

bool

true if successful, false otherwise.

Network_Streaming_WMV_Access_GetCount(bool)

Gets item count of allowed/disallowed addresses list.

public int Network_Streaming_WMV_Access_GetCount(bool blocked)

Parameters

blocked bool

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

index int

Client index.

port int

Port.

networkAddress string

IP address.

dnsName string

DNS name.

Object_Detection_Update()

Updates object detection settings.

public void Object_Detection_Update()

OnPropertyChanged(string)

OnPropertyChanged API.

protected virtual void OnPropertyChanged(string propertyName = null)

Parameters

propertyName string

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

Task

A Task representing the asynchronous pause operation.

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

position TimeSpan

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

codecs bool

Enumerate video and audio codecs.

filters bool

Enumerate DirectShow filters.

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

Task

A Task representing the asynchronous resume operation.

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

certificateData byte[]

The bytes of a .vflicense certificate 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

jsonFilename string

JSON settings file.

Returns

bool

true if successful, false otherwise.

Settings_Save(string, string)

Saves current SDK control settings to file (XML).

public bool Settings_Save(string jsonFilename, string infoFilename)

Parameters

jsonFilename string

JSON file name.

infoFilename string

SDK info fil ename.

Returns

bool

true if successful, false otherwise.

Start()

Starts the video editing process, building the DirectShow graph and beginning playback or conversion.

public bool Start()

Returns

bool

true if the graph was successfully built and started; false if an error occurred.

Remarks

This method performs the following operations:

  1. Validates configuration and timeline setup
  2. Configures redistributable components and codecs
  3. Builds the DirectShow Editing Services (DES) render graph
  4. Creates and connects all filters (sources, effects, encoders, renderers)
  5. Sets the graph to PLAYING state
  6. 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

Task<bool>

Task<System.Boolean>.

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

Task

The Task.

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

Task

A Task representing the asynchronous stop operation.

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

effect IVideoEffect

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

effect IGPUVideoEffect

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

name string

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

name string

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

name string

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

name string

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

filter CustomProcessingFilter

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

Task

The Task.

Video_Renderer_VideoAdjust_GetRanges(VideoRendererAdjustment)

Gets video adjustment ranges.

public VideoRendererVideoAdjustRanges Video_Renderer_VideoAdjust_GetRanges(VideoRendererAdjustment adjustment)

Parameters

adjustment VideoRendererAdjustment

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

adjustment VideoRendererAdjustment

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

adjustment VideoRendererAdjustment

Adjustment type.

Returns

float?

The Single.

Video_Renderer_VideoAdjust_GetValuesAsync(VideoRendererAdjustment)

Gets video adjustment value (async).

public Task<float?> Video_Renderer_VideoAdjust_GetValuesAsync(VideoRendererAdjustment adjustment)

Parameters

adjustment VideoRendererAdjustment

Adjustment type.

Returns

Task<float?>

The Task.

Video_Renderer_VideoAdjust_SetValue(VideoRendererAdjustment, float)

Sets video adjustment value.

public bool Video_Renderer_VideoAdjust_SetValue(VideoRendererAdjustment adjustment, float value)

Parameters

adjustment VideoRendererAdjustment

Adjustment type.

value float

Value.

Returns

bool

The Boolean.

Video_Renderer_VideoAdjust_SetValueAsync(VideoRendererAdjustment, float)

Sets video adjustment value (async).

public Task<bool> Video_Renderer_VideoAdjust_SetValueAsync(VideoRendererAdjustment adjustment, float value)

Parameters

adjustment VideoRendererAdjustment

Adjustment type.

value float

Value.

Returns

Task<bool>

Task<System.Boolean>.

Video_Transition_Add(TimeSpan, TimeSpan, int)

Add transition between tracks.

public void Video_Transition_Add(TimeSpan startTime, TimeSpan stopTime, int id)

Parameters

startTime TimeSpan

Start time.

stopTime TimeSpan

Stop time.

id int

Transition id.

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

startTime TimeSpan

Start time.

stopTime TimeSpan

Stop time.

id int

Transition id.

reverse bool

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

startTime TimeSpan

Start time.

stopTime TimeSpan

Stop time.

id int

Transition id.

borderColor Color

Border color.

borderSoftness int

Border softness.

borderWidth int

Border width.

offsetX int

Offset X value.

offsetY int

Offset Y value.

replicateX int

Replicate X value.

replicateY int

Replicate Y value.

scaleX int

Scale X value.

scaleY int

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

startTime TimeSpan

Start time.

stopTime TimeSpan

Stop time.

id int

Transition id.

borderColor Color

Border color.

borderSoftness int

Border softness.

borderWidth int

Border width.

offsetX int

Offset X value.

offsetY int

Offset Y value.

replicateX int

Replicate X value.

replicateY int

Replicate Y value.

scaleX int

Scale X value.

scaleY int

Scale Y value.

reverse bool

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

startTime TimeSpan

Start time.

stopTime TimeSpan

Stop time.

color Color

Fade color.

startPerc int

Start %. 0 by default.

stopPerc int

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

startTime TimeSpan

Start time.

stopTime TimeSpan

Stop time.

color Color

Fade color.

startPerc int

Start %. 100 by default.

stopPerc int

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

name string

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

mode WMVStreamMode

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

codecName string

The name of the audio codec to query formats for.

mode WMVStreamMode

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

filename string

The path where the profile file (.prx) will be saved.

wmvOutput WMVOutput

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

mode WMVStreamMode

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

sourceStreams List<WMVSourceStream>

Source streams.

outputFile string

Output file.

Returns

bool

true if successful, false otherwise.

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

names List<string>

Output list that will contain profile names.

descriptions List<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> OnAudioFrameBuffer

Event Type

EventHandler<AudioFrameBufferEventArgs>

OnAudioVUMeter

This event occurs whenever each new video VU meter data is received.

public event EventHandler<VUMeterEventArgs> OnAudioVUMeter

Event Type

EventHandler<VUMeterEventArgs>

OnAudioVUMeterProFFTCalculated

This event occurs whenever each new audio VU meter Pro FFT value is received.

public event EventHandler<VUMeterFFTEventArgs> OnAudioVUMeterProFFTCalculated

Event Type

EventHandler<VUMeterFFTEventArgs>

OnAudioVUMeterProMaximumCalculated

This event occurs whenever each new audio VU meter Pro min/max level is received.

public event EventHandler<VUMeterMaxSampleEventArgs> OnAudioVUMeterProMaximumCalculated

Event Type

EventHandler<VUMeterMaxSampleEventArgs>

OnAudioVUMeterProVolume

This event occurs whenever each new audio VU meter Pro volume level is received.

public event EventHandler<AudioLevelEventArgs> OnAudioVUMeterProVolume

Event Type

EventHandler<AudioLevelEventArgs>

OnBarcodeDetected

This event occurs whenever each new barcode detected. Event args contain barcode data.

public event EventHandler<BarcodeEventArgs> OnBarcodeDetected

Event Type

EventHandler<BarcodeEventArgs>

OnError

This event occurs in a case of an error.

public event EventHandler<ErrorsEventArgs> OnError

Event Type

EventHandler<ErrorsEventArgs>

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

Event Type

EventHandler<FFMPEGInfoEventArgs>

OnFilterAdded

Event occurring when each new DirectShow filter added.

public event EventHandler<FilterEventArgs> OnFilterAdded

Event Type

EventHandler<FilterEventArgs>

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

Event Type

EventHandler<LicenseEventArgs>

OnMotionDetection

This event occurs whenever a new frame is received and motion is detected.

public event EventHandler<MotionDetectionEventArgs> OnMotionDetection

Event Type

EventHandler<MotionDetectionEventArgs>

OnMotionDetectionEx

This event occurs whenever each new video frame is received. Event args contain motion data.

public event EventHandler<MotionDetectionExEventArgs> OnMotionDetectionEx

Event Type

EventHandler<MotionDetectionExEventArgs>

OnProgress

Event occurring when new progress value available.

public event EventHandler<ProgressEventArgs> OnProgress

Event Type

EventHandler<ProgressEventArgs>

OnStart

This event occurs whenever the capture / preview starts.

public event EventHandler<EventArgs> OnStart

Event Type

EventHandler<EventArgs>

OnStop

This event occurs whenever the convert / preview stops.

public event EventHandler<StopEventArgs> OnStop

Event Type

EventHandler<StopEventArgs>

OnSubtitlesSettings

Subtitles settings event.

public event EventHandler<SubtitlesSettingsEventArgs> OnSubtitlesSettings

Event Type

EventHandler<SubtitlesSettingsEventArgs>

OnVideoFrameBitmap

This event occurs whenever each new video frame is received.

public event EventHandler<VideoFrameBitmapEventArgs> OnVideoFrameBitmap

Event Type

EventHandler<VideoFrameBitmapEventArgs>

OnVideoFrameBuffer

This event occurs whenever each new video frame is received.

public event EventHandler<VideoFrameBufferEventArgs> OnVideoFrameBuffer

Event Type

EventHandler<VideoFrameBufferEventArgs>

OnVideoFrameBufferOriginal

This event occurs whenever each new video frame is received (RGB24). Original frame without video effects or another processing.

public event EventHandler<VideoFrameBufferEventArgs> OnVideoFrameBufferOriginal

Event Type

EventHandler<VideoFrameBufferEventArgs>

OnVideoFrameBufferWPF

This event occurs whenever each new video frame is received (for WPF).

public event EventHandler<VideoFrameBufferEventArgs> OnVideoFrameBufferWPF

Event Type

EventHandler<VideoFrameBufferEventArgs>

OnWPFFillParameters

This event occurs whenever WPF screen parameters must be filled.

public event EventHandler<EventArgs> OnWPFFillParameters

Event Type

EventHandler<EventArgs>

PropertyChanged

Property changed event.

public event PropertyChangedEventHandler PropertyChanged

Event Type

PropertyChangedEventHandler

WPFClose

This event occurs whenever WPF closed.

public event EventHandler<EventArgs> WPFClose

Event Type

EventHandler<EventArgs>

WPFPropertiesChanged

This event occurs whenever WPF properties changed.

public event EventHandler<EventArgs> WPFPropertiesChanged

Event Type

EventHandler<EventArgs>