Table of Contents

Class MQTTOutputBlock

Namespace
VisioForge.Plugins.MQTT.MediaBlocks
Assembly
VisioForge.Plugins.MQTT.dll

Provides a media block that outputs video and audio frames to an MQTT broker.

public class MQTTOutputBlock : BufferSinkBlock, IMediaBlock, IDisposable, IMediaBlockInternals

Inheritance

MediaBlock
BufferSinkBlock

Implements

IMediaBlock
IMediaBlockInternals

Inherited Members

BufferSinkBlock.TAG
BufferSinkBlock.Type
BufferSinkBlock.Input
BufferSinkBlock.OnVideoFrameBuffer
BufferSinkBlock.OnAudioFrameBuffer
BufferSinkBlock.OnDataFrameBuffer
BufferSinkBlock.OnSample
BufferSinkBlock.Inputs
BufferSinkBlock.Output
BufferSinkBlock.Outputs
BufferSinkBlock.AllowFrameDrop
BufferSinkBlock.IsSync
BufferSinkBlock.IsAvailable()
BufferSinkBlock.GetCore()
BufferSinkBlock.GetElement()
BufferSinkBlock.Build()
BufferSinkBlock.IMediaBlockInternals.SetContext(MediaBlocksPipeline)
BufferSinkBlock.GetFilenameOrURL()
BufferSinkBlock.SetFilenameOrURL(string)
BufferSinkBlock.Dispose(bool)
BufferSinkBlock.CleanUp()
MediaBlock._isBuilt
MediaBlock._pipeline
MediaBlock._pipelineCtx
MediaBlock.GetPipelineContext()
MediaBlock.SetPipelineContext(BlockPipelineContext)
MediaBlock.SetPipeline(MediaBlocksPipeline)
MediaBlock.Context
MediaBlock.Name
MediaBlock.IsBuilt
MediaBlock.Owner
MediaBlock.Type
MediaBlock.ID
MediaBlock.Input
MediaBlock.Inputs
MediaBlock.Output
MediaBlock.Outputs
MediaBlock.HasInputs
MediaBlock.HasOutputs
MediaBlock.Build()
MediaBlock.CreateElements()
MediaBlock.AddElementsToPipeline()
MediaBlock.RemoveElementsFromPipeline()
MediaBlock.DeepCopy(string)
MediaBlock.Reset()
MediaBlock.ToYAMLBlock()
MediaBlock.ClearPads()
MediaBlock.Dispose(bool)
MediaBlock.Dispose()

Remarks

This class extends VisioForge.Core.MediaBlocks.Sinks.BufferSinkBlock to enable publishing media frames (video, audio, or data) to an MQTT topic. It automatically handles JPEG-encoded video frames and can be extended to support PCM audio data streaming. The block integrates with the VisioForge media pipeline architecture.

Constructors

MQTTOutputBlock(MQTTClient, string)

Initializes a new instance of the VisioForge.Plugins.MQTT.MediaBlocks.MQTTOutputBlock class with the specified MQTT client and topic.

public MQTTOutputBlock(MQTTClient mqttClient, string topic)

Parameters

mqttClient MQTTClient

The VisioForge.Plugins.MQTT.MQTTClient instance to use for publishing messages.

topic string

The MQTT topic to publish media frames to.

MQTTOutputBlock()

Initializes a new instance of the VisioForge.Plugins.MQTT.MediaBlocks.MQTTOutputBlock class without MQTT client configuration.

public MQTTOutputBlock()

Remarks

When using this constructor, the block will not publish any data as no MQTT client is configured. This constructor may be used for testing or placeholder scenarios.

Methods

Build()

Builds and initializes the MQTT output block, setting up event handlers for media frame processing.

public override bool Build()

Returns

bool

True if the block was successfully built and initialized; false if the MQTT client is not configured or if the base build failed.

Remarks

This method registers event handlers for data, video, and audio frame buffers. The block will only successfully build if an MQTT client is configured via the appropriate constructor.