Table of Contents

Class AV1DecoderBlock

Namespace
VisioForge.Core.MediaBlocks.VideoDecoders
Assembly
VisioForge.Core.dll

AV1 video decoder block that converts compressed AV1 bitstreams into raw video frames. This block supports multiple decoder implementations including software (dav1d, av1dec) and hardware-accelerated (NVIDIA NVDEC, D3D11 DXVA, VAAPI on Linux) decoders. It can automatically select the best available decoder for optimal performance. Essential for decoding AV1 content from files, streams, and live sources in media processing pipelines.

Supported profiles: Main, High, Professional

Performance: Hardware decoders can achieve 8K@60fps or higher depending on GPU capabilities

Use cases: Video playback, transcoding, streaming, video editing, next-gen codec support

Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
public class AV1DecoderBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternals

Inheritance

Implements

Inherited Members

Extension Methods

Constructors

AV1DecoderBlock()

Initializes a new instance of the VisioForge.Core.MediaBlocks.VideoDecoders.AV1DecoderBlock class with default settings. Uses automatic decoder selection to choose the best available decoder.

public AV1DecoderBlock()

AV1DecoderBlock(AV1DecoderSettings)

Initializes a new instance of the VisioForge.Core.MediaBlocks.VideoDecoders.AV1DecoderBlock class with specified settings.

public AV1DecoderBlock(AV1DecoderSettings settings)

Parameters

settings AV1DecoderSettings

The decoder settings specifying which decoder to use and its configuration.

Properties

Input

Gets the primary input pad for receiving AV1 encoded video data.

public override MediaBlockPad Input { get; }

Property Value

MediaBlockPad

Inputs

Gets all input pads available on this decoder block.

public override MediaBlockPad[] Inputs { get; }

Property Value

MediaBlockPad[]

Output

Gets the primary output pad that provides decoded raw video frames.

public override MediaBlockPad Output { get; }

Property Value

MediaBlockPad

Outputs

Gets all output pads available on this decoder block.

public override MediaBlockPad[] Outputs { get; }

Property Value

MediaBlockPad[]

Type

Gets the media block type identifier for this AV1 decoder.

public override MediaBlockType Type { get; }

Property Value

MediaBlockType

Methods

Build()

Builds and initializes the AV1 decoder element within the pipeline.

public override bool Build()

Returns

bool

true if the decoder was successfully built; otherwise, false.

CleanUp()

Performs cleanup of internal resources.

public void CleanUp()

Dispose(bool)

Handles proper disposal of the decoder resources.

protected override void Dispose(bool disposing)

Parameters

disposing bool

True if disposing managed resources.

GetCore()

Gets the core BaseElement wrapper.

public BaseElement GetCore()

Returns

BaseElement

The BaseElement instance.

GetElement()

Gets the element associated with this block.

public Element GetElement()

Returns

Element

The GStreamer element for the AV1 decoder.

IsAvailable(AV1DecoderType)

Checks if the specified AV1 decoder type is available on the system.

public static bool IsAvailable(AV1DecoderType decoderType = AV1DecoderType.Auto)

Parameters

decoderType AV1DecoderType

The type of decoder to check.

Returns

bool

true if the decoder is available; otherwise, false.

SyncStateWithParent()

Synchronizes the decoder state with its parent element.

public void SyncStateWithParent()

IMediaBlockInternals.SetContext(MediaBlocksPipeline)

Sets the pipeline context for this decoder block.

void IMediaBlockInternals.SetContext(MediaBlocksPipeline pipeline)

Parameters

pipeline MediaBlocksPipeline

The parent MediaBlocksPipeline.

See Also