Table of Contents

Class WavPackEncoderBlock

Namespace
VisioForge.Core.MediaBlocks.AudioEncoders
Assembly
VisioForge.Core.dll

MediaBlock that encodes raw audio into WavPack format. WavPack is a hybrid lossless/lossy audio compression format that provides both perfect quality preservation and excellent compression ratios. Unlike traditional lossless formats, WavPack can create hybrid files with a lossy core and lossless correction data, offering flexible quality options. The format supports very high compression ratios while maintaining fast encoding/decoding speeds, making it ideal for archival storage, music distribution, and professional audio applications where both quality and file size are important considerations. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.

public class WavPackEncoderBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternals

Inheritance

Implements

Inherited Members

Extension Methods

Constructors

WavPackEncoderBlock(WavPackEncoderSettings)

Initializes a new instance of the VisioForge.Core.MediaBlocks.AudioEncoders.WavPackEncoderBlock class with the specified encoding settings.

public WavPackEncoderBlock(WavPackEncoderSettings settings)

Parameters

settings WavPackEncoderSettings

The WavPackEncoderSettings that define compression mode, quality level, and hybrid encoding behavior.

Properties

Input

Gets the single audio input pad for this encoder block.

public override MediaBlockPad Input { get; }

Property Value

MediaBlockPad

Inputs

Gets all input pads for this encoder block.

public override MediaBlockPad[] Inputs { get; }

Property Value

MediaBlockPad[]

Output

Gets the single audio output pad for this encoder block.

public override MediaBlockPad Output { get; }

Property Value

MediaBlockPad

Outputs

Gets all output pads for this encoder block.

public override MediaBlockPad[] Outputs { get; }

Property Value

MediaBlockPad[]

Settings

Gets or sets the WavPack encoder settings that control compression mode and quality parameters. These settings define whether to use lossless, hybrid, or lossy compression modes, along with compression level and encoding optimization parameters for achieving the desired balance between quality, file size, and encoding speed.

public WavPackEncoderSettings Settings { get; set; }

Property Value

WavPackEncoderSettings

Type

Gets the MediaBlock type identifier for this encoder.

public override MediaBlockType Type { get; }

Property Value

MediaBlockType

Methods

Build()

Constructs and initializes the WavPack encoder and its associated GStreamer elements. This method creates the encoder with the specified settings, establishes input and output pads, and prepares the block for hybrid lossless/lossy audio encoding.

public override bool Build()

Returns

bool

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

CleanUp()

Releases all resources and performs cleanup operations for this WavPack encoder 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 WavPack encoder element.

public BaseElement GetCore()

Returns

BaseElement

The BaseElement wrapper instance that encapsulates the GStreamer WavPack encoder.

GetElement()

Gets the underlying GStreamer element that performs the WavPack encoding.

public Element GetElement()

Returns

Element

The GStreamer Element instance representing the WavPack encoder.

IsAvailable()

Determines whether the WavPack encoder is available on the current system. This checks if the required GStreamer WavPack encoder plugin is installed and accessible. The correct NuGet SDK redistribution package should be included in your project.

public static bool IsAvailable()

Returns

bool

true if the WavPack encoder is available and can be used; otherwise, false.

IMediaBlockInternals.SetContext(MediaBlocksPipeline)

Associates this WavPack encoder 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