Table of Contents

Class MediaBlockDescriptor

Namespace
VisioForge.Core.MediaBlocks.Catalog
Assembly
VisioForge.Core.dll

Describes one built-in block for the catalog: identity, CLR types, display metadata, category, factory, availability probe and settings property metadata. The catalog constructs descriptors from reflection over the SDK assemblies; consumers treat them as read-only.

public class MediaBlockDescriptor

Inheritance

Inherited Members

Constructors

MediaBlockDescriptor(MediaBlockType, Type)

Initializes a new instance of the VisioForge.Core.MediaBlocks.Catalog.MediaBlockDescriptor class. Only descriptors produced by VisioForge.Core.MediaBlocks.Catalog.MediaBlockCatalog have working factories and availability probes; hand-built instances are inert shells.

public MediaBlockDescriptor(MediaBlockType type, Type blockType)

Parameters

type MediaBlockType

The stable block type discriminator.

blockType Type

The concrete block CLR type.

Properties

AcceptsDynamicInputs

Gets or sets a value indicating whether the block creates an input pad on demand - what the muxing sinks do, one pad per stream. An editor drawing such a block has to leave a free indexed pad for the next connection instead of a single fixed one.

public bool AcceptsDynamicInputs { get; set; }

Property Value

bool

AvailabilityProbe

Gets or sets the availability probe. Never null: blocks without an explicit probe report available.

public Func<MediaBlockAvailabilityResult> AvailabilityProbe { get; set; }

Property Value

Func<MediaBlockAvailabilityResult>

BlockType

Gets the concrete block CLR type.

public Type BlockType { get; }

Property Value

Type

CanConstruct

Gets or sets a value indicating whether the block has any document-level construction path: either a default factory exists (VisioForge.Core.MediaBlocks.Catalog.MediaBlockDescriptor.HasFactory) or the block takes a settings object that a settings payload in the JSON document can populate. Note that some settings types additionally require a payload to be present - they cannot be default-created.

public bool CanConstruct { get; }

Property Value

bool

Category

Gets or sets the visual category used by editors and diagrams.

public DiagramBlockCategory Category { get; set; }

Property Value

DiagramBlockCategory

Description

Gets or sets the English description of what the block does.

public string Description { get; set; }

Property Value

string

DisplayName

Gets or sets the human-readable display name.

public string DisplayName { get; set; }

Property Value

string

HasFactory

Gets or sets a value indicating whether a factory delegate is present. The delegate itself is internal to keep third parties from re-binding it; use VisioForge.Core.MediaBlocks.Catalog.MediaBlockDescriptor.CreateBlock.

public bool HasFactory { get; }

Property Value

bool

IsRuntimeConfigured

Gets or sets a value indicating whether the block is configured through factory-built settings (devices, files and models resolved at creation time, async Create methods) rather than an editable POCO. Such settings expose no editable property surface and are represented in JSON documents as resource references instead of payloads.

public bool IsRuntimeConfigured { get; set; }

Property Value

bool

IsSink

Gets or sets a value indicating whether the block is a sink - the end of a branch, writing somewhere outside the pipeline. Not the same question as VisioForge.Core.MediaBlocks.Catalog.MediaBlockDescriptor.Category: the MP4/MKV/WebM output blocks are categorised VisioForge.Core.MediaBlocks.Diagram.DiagramBlockCategory.Output and the GIF encoder as an encoder, and every one of them ends a branch exactly as a sink does.

A sink is not necessarily a file: RTMP, SRT, UDP, NDI, WHIP and the platform live sinks are all sinks that write to a network endpoint. A host preparing output directories, or keeping two copies of a block from opening one path, has to ask this and whether the settings name a file - the flag alone would have it creating a folder for an RTMP URL.

public bool IsSink { get; set; }

Property Value

bool

Keywords

Gets or sets lowercase search keywords (display name, enum name and extras).

public string[] Keywords { get; set; }

Property Value

string[]

Properties

Gets or sets the per-property settings metadata, ordered by property name.

public IReadOnlyList<MediaBlockPropertyDescriptor> Properties { get; set; }

Property Value

IReadOnlyList<MediaBlockPropertyDescriptor>

SettingsType

Gets the settings CLR type, or null when the block takes no settings object.

public Type SettingsType { get; }

Property Value

Type

Type

Gets the stable VisioForge.Core.MediaBlocks.MediaBlockType discriminator. This is the value stored in JSON documents.

public MediaBlockType Type { get; }

Property Value

MediaBlockType

TypeName

Gets the enum member name, kept for readability and diagnostics only.

public string TypeName { get; }

Property Value

string

Methods

CreateBlock()

Creates a new block instance using its default settings path. Throws when the block's settings cannot be default-constructed - create the settings yourself and use the block constructor.

public MediaBlock CreateBlock()

Returns

MediaBlock

A new block instance.

ToString()

Returns a string that represents the current object.

public override string ToString()

Returns

string

A string that represents the current object.