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 MediaBlockDescriptorInheritance
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
typeMediaBlockType-
The stable block type discriminator.
blockTypeType-
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
AvailabilityProbe
Gets or sets the availability probe. Never null: blocks without an explicit probe report available.
public Func<MediaBlockAvailabilityResult> AvailabilityProbe { get; set; }Property Value
BlockType
Gets the concrete block CLR type.
public Type BlockType { get; }Property Value
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
Category
Gets or sets the visual category used by editors and diagrams.
public DiagramBlockCategory Category { get; set; }Property Value
Description
Gets or sets the English description of what the block does.
public string Description { get; set; }Property Value
DisplayName
Gets or sets the human-readable display name.
public string DisplayName { get; set; }Property Value
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
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
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
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
SettingsType
Gets the settings CLR type, or null when the block takes no settings object.
public Type SettingsType { get; }Property Value
Type
Gets the stable VisioForge.Core.MediaBlocks.MediaBlockType discriminator. This is the value stored in JSON documents.
public MediaBlockType Type { get; }Property Value
TypeName
Gets the enum member name, kept for readability and diagnostics only.
public string TypeName { get; }Property Value
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.