Table of Contents

Namespace VisioForge.Core.MediaBlocks

Namespaces

VisioForge.Core.MediaBlocks.AWS
VisioForge.Core.MediaBlocks.AudioEncoders
VisioForge.Core.MediaBlocks.AudioProcessing
VisioForge.Core.MediaBlocks.AudioRendering
VisioForge.Core.MediaBlocks.AudioVisualizers
VisioForge.Core.MediaBlocks.Bridge
VisioForge.Core.MediaBlocks.Decklink
VisioForge.Core.MediaBlocks.Demuxers
VisioForge.Core.MediaBlocks.Nvidia
VisioForge.Core.MediaBlocks.OpenCV
VisioForge.Core.MediaBlocks.OpenGL
VisioForge.Core.MediaBlocks.Parsers
VisioForge.Core.MediaBlocks.Sinks
VisioForge.Core.MediaBlocks.Sources
VisioForge.Core.MediaBlocks.Special
VisioForge.Core.MediaBlocks.VideoDecoders
VisioForge.Core.MediaBlocks.VideoEncoders
VisioForge.Core.MediaBlocks.VideoProcessing
VisioForge.Core.MediaBlocks.VideoRendering

Classes

BlockPipelineContext

Shared context object that contains pipeline-wide resources, state, and configuration for MediaBlocks operations. This context is passed to all blocks in a pipeline to provide access to the underlying GStreamer pipeline, event handling, timing information, and cross-block communication. It serves as the central coordination point for pipeline lifecycle management and resource sharing.

MediaBlock

Base implementation of a media processing block in the VisioForge MediaBlocks pipeline system. This abstract base class provides core functionality for all media blocks including pipeline management, context handling, and basic lifecycle operations. Media blocks are the fundamental building blocks that can be connected together to create complex media processing pipelines. Implements the VisioForge.Core.MediaBlocks.IMediaBlock interface.

MediaBlockExtensions

Extension methods for MediaBlock operations.

MediaBlockHelper

Static helper class providing extension methods for MediaBlock operations. These utility methods simplify common MediaBlock operations by providing convenient access to underlying GStreamer element functionality for state management and event handling.

MediaBlockPad

Represents a connection point (pad) on a MediaBlock that enables data flow between blocks in the pipeline. Pads can be input (sink) or output (source) and are typed by media content (video, audio, subtitles, data). This class manages the underlying GStreamer pad, connection state, and provides methods for dynamic linking/unlinking during pipeline execution. Essential for building flexible media processing workflows.

MediaBlocksPipeline

MediaBlocks pipeline bus message handling implementation. This partial class contains all message bus processing, event handling, and pipeline state management. Handles video overlay setup, stream collection detection, specialized block messaging, and pipeline lifecycle events.

VideoFrameSource

High-level video frame extraction utility that creates a simplified pipeline for processing video frames. This class provides an easy-to-use interface for extracting individual frames from video files or camera sources, with optional resizing and format conversion. Designed for applications that need frame-by-frame video analysis, thumbnail generation, or computer vision processing without complex pipeline management.

YAMLBlock

Represents a MediaBlock configuration in YAML format for serialization and deserialization. This class provides a lightweight data structure for storing and transferring MediaBlock settings in a human-readable YAML format, enabling pipeline configuration persistence and sharing. Used primarily for saving and loading pipeline configurations.

Interfaces

IMediaBlock

Main Media Block interface that defines the contract for all media processing blocks in the pipeline system. Media blocks are the fundamental building blocks of media processing pipelines, representing individual processing units such as sources, filters, encoders, decoders, and sinks. Each block can have input and output pads for connecting to other blocks, forming a directed graph of media processing operations.

IMediaBlockDynamicInputs

Interface for MediaBlocks that support dynamic creation of input pads at runtime. This interface enables blocks like mixers and multiplexers to create new input connections on demand, allowing for flexible pipeline topologies that can change during execution.

IMediaBlockInternals

Internal interface providing low-level access to MediaBlock implementation details. This interface exposes the underlying GStreamer elements and pipeline management methods that are used internally by the MediaBlocks framework for pipeline construction and lifecycle management. Not intended for direct use in application code.

IMediaBlockInternals2

Extended internal interface for MediaBlocks that require post-connection initialization. This interface provides additional lifecycle hooks for blocks that need to perform configuration or setup after their pads have been connected in the pipeline.

IMediaBlockRenderer

Interface for MediaBlocks that perform rendering operations (audio playback, video display, etc.). This interface provides control over synchronization behavior for blocks that present media to users, ensuring proper timing and smooth playback of multimedia content.

IMediaBlockSettings

Interface for configuration objects that can create and configure MediaBlock instances. This interface enables a factory pattern where settings objects encapsulate all necessary configuration parameters and can instantiate properly configured MediaBlocks on demand.

IMediaBlocksPipeline

Defines the core interface for the modern MediaBlocks pipeline system, enabling flexible, cross-platform media processing workflows. This interface provides the foundation for building modular media processing applications by composing reusable media blocks (sources, effects, encoders, sinks) into complete processing pipelines. Built on GStreamer, it delivers high-performance media handling across Windows, macOS, Linux, iOS, and Android platforms with a unified API.

Enums

MediaBlockPadDirection

Specifies the data flow direction for a MediaBlockPad, determining whether it receives or sends media data. This enumeration defines the role of a pad in the MediaBlocks pipeline system.

MediaBlockPadMediaType

Specifies the type of media content that flows through a MediaBlockPad. This enumeration determines what kind of media streams can be connected and processed by the pad.

MediaBlockType

Enumeration defining the types of media processing blocks available in the MediaBlocks pipeline system. This includes sources (file, camera, stream), processors (effects, converters, mixers), encoders (H.264, AAC, etc.), and sinks (file writers, streamers, hardware outputs). Each type represents a specific functional category that determines how the block processes and routes media data within the pipeline.