Table of Contents

Interface IVideoProcessor

Namespace
VisioForge.Core.Types.VideoProcessing
Assembly
VisioForge.Core.dll

Defines the contract for a video processing component. This interface provides methods for processing individual video frames and querying supported formats.

public interface IVideoProcessor

Remarks

Implementations of this interface can perform various video manipulations, such as applying effects, analyzing content, or transforming frames. It supports processing both legacy VisioForge.Core.Types.VideoFrame and modern VisioForge.Core.Types.X.VideoFrameX types. ProcessFrame methods accept video frames and perform operations like filtering, effects, analysis, or content detection. GetSupportedFrameFormats enables format negotiation, informing the pipeline which pixel formats the processor can handle. SetContext provides dependency injection for resources, configurations, or shared components needed by the processor. VideoFrameX is the modern format used by MediaBlocks engine with enhanced metadata and performance optimizations. VideoFrame is the legacy format maintained for backward compatibility with older components. Implementations must handle frame processing efficiently as they operate in real-time video pipelines. Video processors can be chained in pipelines, with each processor transforming or analyzing frames sequentially. Common processor types include color correction, denoising, sharpening, overlay rendering, motion detection, and object recognition. Thread safety is crucial as processors may handle frames from multiple sources or parallel pipelines. Performance optimization considerations include SIMD operations, GPU acceleration, frame skipping, and multi-threading.

Methods

GetSupportedFrameFormats()

Retrieves an array of VisioForge.Core.Types.X.VideoFormatX that are supported by this video processor.

VideoFormatX[] GetSupportedFrameFormats()

Returns

VideoFormatX[]

An array of supported video formats.

ProcessFrame(VideoFrameX)

Processes a video frame of type VisioForge.Core.Types.X.VideoFrameX. This method is typically used for processing frames from the MediaBlocks engine.

void ProcessFrame(VideoFrameX frame)

Parameters

frame VideoFrameX

The VisioForge.Core.Types.X.VideoFrameX to process.

ProcessFrame(VideoFrame)

Processes a video frame of type VisioForge.Core.Types.VideoFrame. This method is typically used for processing frames from legacy video sources.

void ProcessFrame(VideoFrame frame)

Parameters

frame VideoFrame

The VisioForge.Core.Types.VideoFrame to process.

SetContext(BaseContext)

Sets the operational context for the video processor. This can be used to provide necessary dependencies or shared resources to the processor.

void SetContext(BaseContext context)

Parameters

context BaseContext

The VisioForge.Core.BaseContext to set.