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, IVideoEditXVideoEffectInheritance
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
namestring-
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 DefaultNameField Value
Properties
DropOrphans
Gets or sets whether to drop orphan fields at the beginning of telecine patterns.
public bool DropOrphans { get; set; }Property Value
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
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
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
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
Method
Gets or sets the deinterlacing algorithm method.
public DeinterlaceMethods Method { get; set; }Property Value
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
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
StopTime
Gets or sets the stop time.
public TimeSpan StopTime { get; set; }Property Value
Methods
GenerateDescription()
Generates the description.
public string GenerateDescription()Returns
- string
-
A string containing the GStreamer element description for the deinterlace effect.