Class WavPackEncoderBlock
- 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, IMediaBlockInternalsInheritance
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
settingsWavPackEncoderSettings-
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
Inputs
Gets all input pads for this encoder block.
public override MediaBlockPad[] Inputs { get; }Property Value
Output
Gets the single audio output pad for this encoder block.
public override MediaBlockPad Output { get; }Property Value
Outputs
Gets all output pads for this encoder block.
public override MediaBlockPad[] Outputs { get; }Property Value
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
Type
Gets the MediaBlock type identifier for this encoder.
public override MediaBlockType Type { get; }Property Value
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
-
trueif the encoder was successfully built and configured;falseif 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
disposingbool-
trueto release both managed and unmanaged resources;falseto 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
-
trueif 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
pipelineMediaBlocksPipeline-
The MediaBlocksPipeline instance that will manage this block.