Namespace VisioForge.Core.MediaBlocks.Bridge
Classes
- BridgeAudioSinkBlock
-
Audio sink block that bridges audio data between different pipelines or applications using a channel-based communication system. This block acts as an endpoint that receives audio data and makes it available to other pipelines or processes through a named channel. It enables inter-pipeline communication for audio streams, allowing complex architectures where audio processing is distributed across multiple pipelines. The bridge uses an efficient in-memory transport mechanism with minimal latency and supports real-time audio streaming. Common use cases include splitting audio processing across multiple pipelines, implementing modular audio processing chains, and creating reusable audio processing components. Pair this sink with a BridgeAudioSourceBlock using the same channel name to establish a complete audio bridge connection. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- BridgeAudioSourceBlock
-
Audio source block that bridges audio data from other pipelines or applications using a channel-based communication system. This block acts as a source that receives audio data from a named channel created by a BridgeAudioSinkBlock. It enables inter-pipeline communication for audio streams, allowing complex architectures where audio processing is distributed across multiple pipelines. The bridge uses an efficient in-memory transport mechanism with minimal latency and supports real-time audio streaming. Common use cases include receiving audio from another pipeline, implementing modular audio processing chains, and creating reusable audio processing components. Pair this source with a BridgeAudioSinkBlock using the same channel name to establish a complete audio bridge connection. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- BridgeBufferSinkBlock
-
Buffer sink block that bridges raw buffer data between different pipelines using a pair-based communication system. This block acts as an endpoint that receives buffer data and makes it available to a corresponding BridgeBufferSourceBlock through a unique pair identifier. Unlike channel-based bridges, this uses direct buffer passing for lower latency and supports any media type including video, audio, or custom data. The bridge maintains a cache of sink/source pairs for efficient lookup and connection. Common use cases include zero-copy data transfer between pipelines, implementing custom processing chains with raw buffers, and creating high-performance media routing systems. The video information parameter helps optimize buffer handling for video streams but the block can handle any buffer type. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals.
- BridgeBufferSourceBlock
-
Buffer source block that bridges raw buffer data from other pipelines using a pair-based communication system. This block acts as a source that receives buffer data from a BridgeBufferSinkBlock with a matching pair identifier. Unlike channel-based bridges, this uses direct buffer passing for lower latency and supports any media type including video, audio, or custom data. The bridge maintains a cache of sink/source pairs for efficient lookup and connection. Common use cases include zero-copy data transfer between pipelines, implementing custom processing chains with raw buffers, and creating high-performance media routing systems. The source automatically discovers its corresponding sink through the global bridge cache and establishes the connection during build time. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- BridgeConfiguration
-
Configuration for creating bridge instances.
- BridgeFactory
-
Factory class for creating bridge instances based on configuration.
- BridgeSubtitleSinkBlock
-
Subtitle sink block that bridges subtitle data between different pipelines or applications using a channel-based communication system. This block acts as an endpoint that receives subtitle data (text, SSA/ASS, WebVTT, or other formats) and makes it available to other pipelines or processes through a named channel. It enables inter-pipeline communication for subtitle streams, allowing complex architectures where subtitle processing is distributed across multiple pipelines. The bridge supports various subtitle formats and maintains timing synchronization. Common use cases include subtitle extraction and routing, implementing subtitle processing chains, overlaying subtitles from different sources, and creating subtitle broadcasting systems. Pair this sink with a BridgeSubtitleSourceBlock using the same channel name to establish a complete subtitle bridge. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- BridgeSubtitleSourceBlock
-
Subtitle source block that bridges subtitle data from other pipelines or applications using a channel-based communication system. This block acts as a source that receives subtitle data from a named channel created by a BridgeSubtitleSinkBlock. It enables inter-pipeline communication for subtitle streams, allowing complex architectures where subtitle processing is distributed across multiple pipelines. The bridge supports various subtitle formats (text, SSA/ASS, WebVTT, etc.) and maintains timing synchronization. Common use cases include receiving subtitles from another pipeline, implementing modular subtitle processing chains, combining subtitles from multiple sources, and creating subtitle distribution systems. The source includes an internal queue for buffering to ensure smooth playback. Pair this source with a BridgeSubtitleSinkBlock using the same channel name to establish a complete subtitle bridge connection. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- BridgeVideoSinkBlock
-
Video sink block that bridges video data between different pipelines or applications using a channel-based communication system. This block acts as an endpoint that receives video data and makes it available to other pipelines or processes through a named channel. It enables inter-pipeline communication for video streams, allowing complex architectures where video processing is distributed across multiple pipelines. The bridge uses an efficient in-memory transport mechanism with minimal latency and supports real-time video streaming at high resolutions and frame rates. Common use cases include splitting video processing across multiple pipelines, implementing modular video processing chains, creating video distribution systems, and enabling multi-view applications. The sink can handle various video formats and color spaces with automatic format negotiation. Pair this sink with a BridgeVideoSourceBlock using the same channel name to establish a complete video bridge connection. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- BridgeVideoSourceBlock
-
Video source block that bridges video data from other pipelines or applications using a channel-based communication system. This block acts as a source that receives video data from a named channel created by a BridgeVideoSinkBlock. It enables inter-pipeline communication for video streams, allowing complex architectures where video processing is distributed across multiple pipelines. The bridge uses an efficient in-memory transport mechanism with minimal latency and supports real-time video streaming at high resolutions and frame rates. Common use cases include receiving video from another pipeline, implementing modular video processing chains, creating multi-view applications, and building video distribution systems. The source can handle various video formats and color spaces with automatic format negotiation. Pair this source with a BridgeVideoSinkBlock using the same channel name to establish a complete video bridge connection. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- InterPipeSinkBlock
-
InterPipe sink block that enables high-performance inter-pipeline communication using the GStreamer interpipe plugin. This block acts as an endpoint that publishes data to a named pipe, making it available to InterPipeSourceBlock instances with the same pipe name. InterPipe provides zero-copy data transfer between pipelines running in the same process, with support for multiple listeners, dynamic connection/disconnection, and automatic format negotiation. The sink maintains compatibility with standard GStreamer elements while providing enhanced performance for local pipeline communication. Common use cases include splitting processing across multiple pipelines for modularity, implementing one-to-many data distribution, creating reusable processing components, and building complex media processing graphs. The video information parameter helps optimize buffer handling for video streams but the block can handle any media type. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals.
- InterPipeSourceBlock
-
InterPipe source block that enables high-performance inter-pipeline communication using the GStreamer interpipe plugin. This block acts as a source that listens to a named pipe created by an InterPipeSinkBlock with the same pipe name. InterPipe provides zero-copy data transfer between pipelines running in the same process, with support for dynamic connection/disconnection, automatic format negotiation, and seamless pipeline synchronization. Multiple source blocks can connect to the same sink, enabling one-to-many data distribution patterns. The source maintains compatibility with standard GStreamer elements while providing enhanced performance for local pipeline communication. Common use cases include receiving data from modular processing pipelines, implementing multi-view applications, creating reusable processing components, and building complex media processing graphs with dynamic routing. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- ProxySinkBlock
-
Proxy sink block that enables direct element-to-element communication within the same pipeline using GStreamer's proxy elements. This block acts as a sink that pairs with a ProxySourceBlock to create an internal bridge within a single pipeline, allowing dynamic pipeline reconfiguration and data routing without traditional pad connections. The proxy mechanism provides a way to decouple pipeline sections, making it easier to implement dynamic pipeline topologies, switchable processing paths, and modular pipeline designs. Unlike InterPipe which works across pipelines, proxy elements work within the same pipeline with minimal overhead. The sink automatically registers itself in a global cache for discovery by its paired source. Common use cases include implementing switchable effects chains, creating reusable processing modules within a pipeline, and building dynamic routing systems. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals.
- ProxySourceBlock
-
Proxy source block that enables direct element-to-element communication within the same pipeline using GStreamer's proxy elements. This block acts as a source that pairs with a ProxySinkBlock to create an internal bridge within a single pipeline, receiving data without traditional pad connections. The proxy mechanism provides a way to decouple pipeline sections, making it easier to implement dynamic pipeline topologies, switchable processing paths, and modular pipeline designs. Unlike InterPipe which works across pipelines, proxy elements work within the same pipeline with minimal overhead. The source automatically discovers its paired sink through a global cache and establishes the connection during build. Common use cases include implementing switchable effects chains, creating reusable processing modules within a pipeline, building dynamic routing systems, and enabling runtime pipeline reconfiguration without rebuilding the entire graph. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals.
- RSInterSinkBlock
-
RS (Rust) inter sink block that enables high-performance inter-pipeline communication using Rust-based GStreamer elements. This block acts as a sink that publishes data to a named channel, making it available to RSInterSourceBlock instances with the same channel name. RS inter elements provide optimized performance through Rust implementations while maintaining compatibility with standard GStreamer pipelines. The sink supports zero-copy data transfer, multiple listeners, dynamic connection/disconnection, and automatic format negotiation. Unlike standard InterPipe elements, RS inter elements may offer better performance characteristics and additional features through their Rust implementation. Common use cases include high-throughput data distribution, low-latency pipeline communication, implementing scalable media processing architectures, and building performance-critical applications. The media type parameter ensures proper type safety and format negotiation. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
- RSInterSourceBlock
-
RS (Rust) inter source block that enables high-performance inter-pipeline communication using Rust-based GStreamer elements. This block acts as a source that listens to a named channel created by an RSInterSinkBlock with the same channel name. RS inter elements provide optimized performance through Rust implementations while maintaining compatibility with standard GStreamer pipelines. The source supports zero-copy data transfer, dynamic connection/disconnection, automatic format negotiation, and seamless pipeline synchronization. Multiple source blocks can connect to the same sink, enabling one-to-many data distribution patterns. Unlike standard InterPipe elements, RS inter elements may offer better performance characteristics and additional features through their Rust implementation. Common use cases include high-throughput data reception, low-latency pipeline communication, implementing scalable media processing architectures, and building performance-critical applications. The media type parameter ensures proper type safety and format negotiation. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.
Interfaces
- IBridge
-
Base interface for all bridge implementations that enable data transfer between pipelines.
- IBridgeSink
-
Interface for bridge sink implementations that send data to a bridge connection.
- IBridgeSource
-
Interface for bridge source implementations that receive data from a bridge connection.
- IMediaBlocksBridge
-
Interface for media blocks that support bridge functionality with dynamic channel updates. This interface is implemented by bridge source and sink blocks that use channel-based communication, allowing them to change their channel assignment at runtime without rebuilding the pipeline.
Enums
- BridgeType
-
Defines the types of bridges available for inter-pipeline communication.