Class AppBridgeVideoSourceBlock
- Namespace
- VisioForge.Core.MediaBlocks.Bridge
- Assembly
- VisioForge.Core.dll
Video source block using appsrc for direct buffer injection from AppBridgeVideoSinkBlock. This block receives video buffers with preserved timestamps from a linked AppBridgeVideoSinkBlock, solving timing issues with Decklink and other hardware outputs. Unlike intervideosrc-based bridges, this implementation preserves original PTS/DTS timestamps, enabling proper synchronization with hardware clocks. Use this with AppBridgeVideoSinkBlock for live sources that require precise timestamp handling.
public class AppBridgeVideoSourceBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternals, IMediaBlocksBridgeInheritance
Implements
Inherited Members
Extension Methods
Constructors
AppBridgeVideoSourceBlock(AppBridgeVideoSourceSettings)
Initializes a new instance of the VisioForge.Core.MediaBlocks.Bridge.AppBridgeVideoSourceBlock class.
public AppBridgeVideoSourceBlock(AppBridgeVideoSourceSettings settings)Parameters
settingsAppBridgeVideoSourceSettings-
The bridge settings including channel name.
Properties
Input
Gets the input pad. Sources do not have inputs.
public override MediaBlockPad Input { get; }Property Value
Inputs
Gets all input pads. Sources have no inputs.
public override MediaBlockPad[] Inputs { get; }Property Value
Output
Gets the single video output pad for this source block.
public override MediaBlockPad Output { get; }Property Value
Outputs
Gets all output pads. This source has a single video output.
public override MediaBlockPad[] Outputs { get; }Property Value
Settings
Gets or sets the bridge settings.
public AppBridgeVideoSourceSettings Settings { get; set; }Property Value
Type
Gets the block type identifier.
public override MediaBlockType Type { get; }Property Value
Methods
Build()
Builds and initializes the bridge video source within the pipeline.
public override bool Build()Returns
- bool
-
trueif successful; otherwise,false.
CleanUp()
Releases all internal resources.
public void CleanUp()Dispose(bool)
Releases unmanaged and managed resources.
protected override void Dispose(bool disposing)Parameters
disposingbool-
trueto release both managed and unmanaged resources.
GetCore()
Gets the core BaseElement wrapper.
public BaseElement GetCore()Returns
- BaseElement
-
The AppBridgeVideoSource element.
GetElement()
Gets the underlying GStreamer element.
public Element GetElement()Returns
- Element
-
The GStreamer element.
IsAvailable()
Determines whether this media block is available.
public static bool IsAvailable()Returns
- bool
-
trueif available; otherwise,false.
RemoveElementsFromPipeline()
Removes all internal elements from the pipeline.
public override void RemoveElementsFromPipeline()UpdateChannel(string)
Updates the channel name dynamically.
public bool UpdateChannel(string channel)Parameters
channelstring-
The new channel name.
Returns
- bool
-
trueif successful; otherwise,false.
IMediaBlockInternals.SetContext(MediaBlocksPipeline)
Sets the pipeline context.
void IMediaBlockInternals.SetContext(MediaBlocksPipeline pipeline)Parameters
pipelineMediaBlocksPipeline-
The pipeline.