Table of Contents

Class DeinterlaceVideoEffect

Namespace
VisioForge.Core.Types.X.VideoEffects
Assembly
VisioForge.Core.dll

Represents a cross-platform deinterlacing video effect that converts interlaced video to progressive.

public sealed class DeinterlaceVideoEffect : BaseVideoEffect, IBaseVideoEffect, IVideoEditXVideoEffect

Inheritance

Implements

Inherited Members

Remarks

SDK Availability: VideoCaptureCoreX, MediaPlayerCoreX, VideoEditCoreX, Media Blocks SDK (Cross-platform)

Platforms: Windows, Linux, macOS, Android, iOS

Deinterlacing is essential for converting interlaced video (where each frame consists of two fields captured at different time points) into progressive video (where each frame is a complete image). This is crucial when displaying interlaced content on progressive displays or when processing video.

Interlaced Sources:

  • Traditional broadcast television (NTSC, PAL, SECAM)
  • Some digital broadcast formats (1080i)
  • Older video cameras and camcorders
  • Archive footage and legacy content

Deinterlacing Methods Available:

  • Linear: Fast but lower quality, blends fields together
  • Greedy: Good balance of speed and quality, edge-directed interpolation
  • VFIR: Vertical Finite Impulse Response, high quality vertical filtering
  • Yadif: Yet Another Deinterlacing Filter, excellent quality with motion compensation

Performance Considerations: Higher quality methods (Yadif, VFIR) require more CPU. For real-time processing on mobile devices, consider Linear or Greedy methods.

See Also: For Windows-only applications, see VideoEffectDeinterlaceBlend, VideoEffectDeinterlaceCAVT, and VideoEffectDeinterlaceTriangle for Classic SDK implementations.

Constructors

DeinterlaceVideoEffect(string)

Initializes a new instance of the VisioForge.Core.Types.X.VideoEffects.DeinterlaceVideoEffect class with recommended defaults.

public DeinterlaceVideoEffect(string name = "deinterlace")

Parameters

name string

The unique name identifier for this effect instance. Default value is "deinterlace".

Remarks

Default configuration uses auto-detection mode with linear deinterlacing method, suitable for most scenarios with good performance.

Fields

DefaultName

The default name for the deinterlace effect.

public static string DefaultName

Field Value

string

Properties

DropOrphans

Gets or sets whether to drop orphan fields at the beginning of telecine patterns.

public bool DropOrphans { get; set; }

Property Value

bool

Remarks

Orphan fields can occur at the start of telecine sequences. Dropping them produces cleaner output with better temporal alignment. This is relevant primarily for NTSC 3:2 pulldown content.

FieldLayout

Gets or sets the field layout order.

public DeinterlaceFieldLayout FieldLayout { get; set; }

Property Value

DeinterlaceFieldLayout

Remarks

Field order is important for proper temporal interpolation. NTSC typically uses bottom-field-first, while PAL typically uses top-field-first. Use VisioForge.Core.Types.X.VideoEffects.DeinterlaceFieldLayout.Auto unless you have specific knowledge of the field order.

Fields

Gets or sets which fields should be output.

public DeinterlaceFields Fields { get; set; }

Property Value

DeinterlaceFields

Remarks

Setting to VisioForge.Core.Types.X.VideoEffects.DeinterlaceFields.All will double the output framerate as both fields are converted to separate frames. Use VisioForge.Core.Types.X.VideoEffects.DeinterlaceFields.Auto for most scenarios.

IgnoreObscure

Gets or sets whether to ignore obscure or rare telecine patterns.

public bool IgnoreObscure { get; set; }

Property Value

bool

Remarks

NTSC 2:3 pulldown (3:2 telecine) is the most common pattern. Setting this to true improves performance by not checking for rare pattern variants.

Only set to false if working with unusual telecine patterns in specialized content.

Locking

Gets or sets the locking defines which approach to pattern locking is used which affects processing latency and accuracy of timestamp adjustment for telecine streams.

public DeinterlaceLocking Locking { get; set; }

Property Value

DeinterlaceLocking

Method

Gets or sets the deinterlacing algorithm method.

public DeinterlaceMethods Method { get; set; }

Property Value

DeinterlaceMethods

Remarks

Different methods provide different quality vs. CPU usage tradeoffs:

  • Yadif: Recommended for best quality, moderate CPU usage
  • Greedy: Good for real-time on desktop systems
  • Linear: Best for mobile devices or low-power systems

Mode

Gets or sets the deinterlacing application mode.

public DeinterlaceMode Mode { get; set; }

Property Value

DeinterlaceMode

Remarks

Use VisioForge.Core.Types.X.VideoEffects.DeinterlaceMode.Auto to automatically detect interlaced content. Use VisioForge.Core.Types.X.VideoEffects.DeinterlaceMode.Interlaced when you know the content is interlaced but may not be properly flagged.

StartTime

Gets or sets the start time.

public TimeSpan StartTime { get; set; }

Property Value

TimeSpan

StopTime

Gets or sets the stop time.

public TimeSpan StopTime { get; set; }

Property Value

TimeSpan

Methods

GenerateDescription()

Generates the description.

public string GenerateDescription()

Returns

string

A string containing the GStreamer element description for the deinterlace effect.

See Also