Table of Contents

Class VideoResizeBlock

Namespace
VisioForge.Core.MediaBlocks.VideoProcessing
Assembly
VisioForge.Core.dll

MediaBlock that resizes video frames to specified dimensions with configurable scaling algorithms. Video resizing is fundamental for format conversion, quality optimization, and display adaptation. The block supports various interpolation methods including bilinear, bicubic, and lanczos algorithms to maintain visual quality during scaling operations. Essential for adapting content to different resolutions, aspect ratios, and delivery formats while preserving image quality through advanced resampling techniques. Commonly used for streaming optimization, device compatibility, and broadcast standards. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.

public class VideoResizeBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternals

Inheritance

Implements

Inherited Members

Extension Methods

Constructors

VideoResizeBlock(ResizeVideoEffect)

Initializes a new instance of the VisioForge.Core.MediaBlocks.VideoProcessing.VideoResizeBlock class with custom resize settings. Allows full control over scaling algorithm, aspect ratio handling, and quality parameters.

public VideoResizeBlock(ResizeVideoEffect settings)

Parameters

settings ResizeVideoEffect

The ResizeVideoEffect settings defining target dimensions, scaling method, and quality options.

VideoResizeBlock(int, int)

Initializes a new instance of the VisioForge.Core.MediaBlocks.VideoProcessing.VideoResizeBlock class with specific dimensions. Uses default scaling algorithm for simple dimension changes.

public VideoResizeBlock(int width, int height)

Parameters

width int

The target width in pixels for the resized video.

height int

The target height in pixels for the resized video.

Properties

Input

Gets the input.

public override MediaBlockPad Input { get; }

Property Value

MediaBlockPad

Inputs

Gets the inputs.

public override MediaBlockPad[] Inputs { get; }

Property Value

MediaBlockPad[]

Output

Gets the output.

public override MediaBlockPad Output { get; }

Property Value

MediaBlockPad

Outputs

Gets the outputs.

public override MediaBlockPad[] Outputs { get; }

Property Value

MediaBlockPad[]

Settings

Gets or sets the resize settings that control the target dimensions and scaling algorithm. These settings specify the output width, height, and interpolation method used for scaling. The choice of scaling algorithm affects both performance and visual quality of the resized video.

public ResizeVideoEffect Settings { get; set; }

Property Value

ResizeVideoEffect

Type

Gets the type.

public override MediaBlockType Type { get; }

Property Value

MediaBlockType

Methods

Build()

Constructs and initializes the video resize filter and its associated GStreamer elements. This method creates the filter with the specified resize settings, establishes input and output pads, and prepares the block for video scaling operations with the chosen interpolation algorithm.

public override bool Build()

Returns

bool

true if the filter was successfully built and configured; false if initialization failed.

CleanUp()

Releases all resources and performs cleanup operations for this video resize block. This method disposes of the GStreamer elements and resets the build state.

public void CleanUp()

Dispose(bool)

Releases unmanaged and - optionally - managed resources.

protected override void Dispose(bool disposing)

Parameters

disposing bool

true to release both managed and unmanaged resources; false to release only unmanaged resources.

GetCore()

Gets the core BaseElement wrapper that provides additional functionality around the GStreamer video resize filter element.

public BaseElement GetCore()

Returns

BaseElement

The BaseElement wrapper instance that encapsulates the GStreamer video resize filter.

GetElement()

Gets the underlying GStreamer element that performs the video scaling operations.

public Element GetElement()

Returns

Element

The GStreamer Element instance representing the video resize filter.

IsAvailable()

Determines whether the video resize filter is available on the current system. This checks if the required GStreamer video processing plugins are installed and accessible. The correct NuGet SDK redistribution package should be included in your project.

public static bool IsAvailable()

Returns

bool

true if the video resize filter is available and can be used; otherwise, false.

IMediaBlockInternals.SetContext(MediaBlocksPipeline)

Associates this video resize block with a pipeline and initializes its internal context. This method is called internally when the block is added to a pipeline.

void IMediaBlockInternals.SetContext(MediaBlocksPipeline pipeline)

Parameters

pipeline MediaBlocksPipeline

The MediaBlocksPipeline instance that will manage this block.

See Also