Table of Contents

Class VAAPIVC1DecoderBlock

Namespace
VisioForge.Core.MediaBlocks.Sources
Assembly
VisioForge.Core.dll

VAAPI VC-1 hardware decoder block for Linux systems using Video Acceleration API. This block provides GPU-accelerated VC-1 video decoding through VA-API, enabling efficient playback of Windows Media Video (WMV) and VC-1 encoded content. VC-1 is Microsoft's video codec standard used in WMV9, WMV HD, Blu-ray discs, and Xbox content. Supports Intel, AMD, and NVIDIA GPUs with appropriate VA-API drivers. Features include support for VC-1 Simple, Main, and Advanced profiles, interlaced and progressive content, resolutions up to 1080p, and efficient decoding of WMV files and Blu-ray VC-1 streams. Essential for media players handling Windows Media content, Blu-ray playback applications, video converters, and any Linux application requiring VC-1/WMV9 decoding capability. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.

public class VAAPIVC1DecoderBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternals

Inheritance

Implements

Inherited Members

Extension Methods

Constructors

VAAPIVC1DecoderBlock()

Initializes a new instance of the VisioForge.Core.MediaBlocks.Sources.VAAPIVC1DecoderBlock class.

public VAAPIVC1DecoderBlock()

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[]

Type

Gets the type.

public override MediaBlockType Type { get; }

Property Value

MediaBlockType

Methods

Build()

Constructs and initializes the VAAPI VC-1 decoder and its associated GStreamer elements. This method creates the hardware decoder, establishes input and output pads, and prepares the block for GPU-accelerated VC-1 decoding through the Linux VA-API interface.

public override bool Build()

Returns

bool

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

CleanUp()

Releases all resources and performs cleanup operations for this VAAPI VC-1 decoder block. This method disposes of the GStreamer elements and releases VA-API resources.

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 VAAPI VC-1 decoder element.

public BaseElement GetCore()

Returns

BaseElement

The BaseElement wrapper instance that encapsulates the GStreamer VAAPI VC-1 decoder.

GetElement()

Gets the underlying GStreamer element that performs VAAPI VC-1 hardware decoding.

public Element GetElement()

Returns

Element

The GStreamer Element instance representing the VAAPI VC-1 decoder.

IsAvailable()

Determines whether this media block is available. Correct NuGet SDK redist should be included into your project.

public static bool IsAvailable()

Returns

bool

true if this media block is available; otherwise, false.

IMediaBlockInternals.SetContext(MediaBlocksPipeline)

Associates this VAAPI VC-1 decoder 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