Table of Contents

Class AptXEncoderBlock

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

MediaBlock that encodes raw audio into AptX format for Bluetooth audio applications. AptX is a psychoacoustic audio codec algorithm that provides CD-like audio quality with low latency, making it ideal for wireless audio transmission over Bluetooth. The codec uses a 4:1 compression ratio and supports stereo audio only. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.

public class AptXEncoderBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternals

Inheritance

Implements

Inherited Members

Extension Methods

Constructors

AptXEncoderBlock(AptXEncoderSettings)

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

public AptXEncoderBlock(AptXEncoderSettings settings)

Parameters

settings AptXEncoderSettings

The AptX encoder settings that define encoding parameters and 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 the encoder settings for this AptX encoder block.

public AptXEncoderSettings Settings { get; }

Property Value

AptXEncoderSettings

Type

Gets the MediaBlock type identifier for this encoder.

public override MediaBlockType Type { get; }

Property Value

MediaBlockType

Methods

Build()

Constructs and initializes the AptX 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 high-quality Bluetooth 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 AptX encoder block. This method disposes of GStreamer elements, releases memory, and ensures proper shutdown of the block. Called automatically during pipeline teardown.

public void CleanUp()

Dispose(bool)

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Properly disposes of the GStreamer AptX encoder element and associated 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 AptX encoder element.

public BaseElement GetCore()

Returns

BaseElement

The BaseElement wrapper instance that encapsulates the GStreamer AptX encoder.

GetElement()

Gets the underlying GStreamer element that performs the AptX audio encoding.

public Element GetElement()

Returns

Element

The GStreamer Element instance representing the AptX encoder.

IsAvailable(AptXEncoderSettings)

Determines whether AptX encoding is available with the specified settings. Checks for the presence of the GStreamer openaptxenc plugin.

public static bool IsAvailable(AptXEncoderSettings settings)

Parameters

settings AptXEncoderSettings

The AptX encoder settings to validate.

Returns

bool

true if AptX encoding is available; otherwise, false.

SetContext(MediaBlocksPipeline)

Associates this AptX encoder block with a pipeline and initializes its internal context. This method is called internally when the block is added to a pipeline.

public void SetContext(MediaBlocksPipeline pipeline)

Parameters

pipeline MediaBlocksPipeline

The MediaBlocksPipeline instance that will manage this block.

See Also