Class AV1DecoderBlock
- 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, IMediaBlockInternalsInheritance
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
settingsAV1DecoderSettings-
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
Inputs
Gets all input pads available on this decoder block.
public override MediaBlockPad[] Inputs { get; }Property Value
Output
Gets the primary output pad that provides decoded raw video frames.
public override MediaBlockPad Output { get; }Property Value
Outputs
Gets all output pads available on this decoder block.
public override MediaBlockPad[] Outputs { get; }Property Value
Type
Gets the media block type identifier for this AV1 decoder.
public override MediaBlockType Type { get; }Property Value
Methods
Build()
Builds and initializes the AV1 decoder element within the pipeline.
public override bool Build()Returns
- bool
-
trueif 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
disposingbool-
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
decoderTypeAV1DecoderType-
The type of decoder to check.
Returns
- bool
-
trueif 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
pipelineMediaBlocksPipeline-
The parent MediaBlocksPipeline.