Parser Blocks - VisioForge Media Blocks SDK .Net¶
Parser blocks are essential components in media processing pipelines. They are used to parse elementary streams, which might be raw or partially processed, to extract metadata, and to prepare the streams for further processing like decoding or multiplexing. VisioForge Media Blocks SDK .Net offers a variety of parser blocks for common video and audio codecs.
Video Parser Blocks¶
AV1 Parser Block¶
The AV1ParseBlock is used to parse AV1 video elementary streams. It helps in identifying frame boundaries and extracting codec-specific information.
Block info¶
Name: AV1ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | AV1 video | 1 |
| Output video | AV1 video | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source (e.g., File or Network)"] --> AV1ParseBlock;
AV1ParseBlock --> AV1DecoderBlock["AV1 Decoder Block"];
AV1DecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
H.263 Parser Block¶
The H263ParseBlock is designed to parse H.263 video elementary streams. This is useful for older video conferencing and mobile video applications.
Block info¶
Name: H263ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | H.263 video | 1 |
| Output video | H.263 video | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source"] --> H263ParseBlock;
H263ParseBlock --> H263DecoderBlock["H.263 Decoder Block"];
H263DecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
H.264 Parser Block¶
The H264ParseBlock parses H.264 (AVC) video elementary streams. This is one of the most widely used video codecs. The parser helps in identifying NAL units and other stream properties.
Block info¶
Name: H264ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | H.264 video | 1 |
| Output video | H.264 video | 1 |
The sample pipeline¶
graph LR;
PushDataSource["Push Data Source (H.264 NALUs)"] --> H264ParseBlock;
H264ParseBlock --> H264DecoderBlock["H.264 Decoder Block"];
H264DecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
H.265 Parser Block¶
The H265ParseBlock parses H.265 (HEVC) video elementary streams. H.265 offers better compression than H.264. The parser helps in identifying NAL units and other stream properties.
Block info¶
Name: H265ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | H.265 video | 1 |
| Output video | H.265 video | 1 |
The sample pipeline¶
graph LR;
PushDataSource["Push Data Source (H.265 NALUs)"] --> H265ParseBlock;
H265ParseBlock --> H265DecoderBlock["H.265 Decoder Block"];
H265DecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
JPEG 2000 Parser Block¶
The JPEG2000ParseBlock is used to parse JPEG 2000 video streams. JPEG 2000 is a wavelet-based compression standard that can be used for still images and video.
Block info¶
Name: JPEG2000ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | JPEG 2000 video | 1 |
| Output video | JPEG 2000 video | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source"] --> JPEG2000ParseBlock;
JPEG2000ParseBlock --> JPEG2000DecoderBlock["JPEG 2000 Decoder Block"];
JPEG2000DecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
MPEG-1/2 Video Parser Block¶
The MPEG12VideoParseBlock parses MPEG-1 and MPEG-2 video elementary streams. These are older but still relevant video codecs, especially MPEG-2 for DVDs and broadcast.
Block info¶
Name: MPEG12VideoParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | MPEG-1/2 video | 1 |
| Output video | MPEG-1/2 video | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source"] --> MPEG12VideoParseBlock;
MPEG12VideoParseBlock --> MPEGVideoDecoderBlock["MPEG-1/2 Decoder Block"];
MPEGVideoDecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
MPEG-4 Video Parser Block¶
The MPEG4ParseBlock parses MPEG-4 Part 2 video elementary streams (often referred to as DivX/Xvid in its early forms).
Block info¶
Name: MPEG4ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | MPEG-4 video | 1 |
| Output video | MPEG-4 video | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source"] --> MPEG4ParseBlock;
MPEG4ParseBlock --> MPEG4DecoderBlock["MPEG-4 Decoder Block"];
MPEG4DecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
PNG Parser Block¶
The PNGParseBlock is used to parse PNG image data. While PNG is primarily an image format, this parser can be useful in scenarios where PNG images are part of a stream or need to be processed within the Media Blocks pipeline.
Block info¶
Name: PNGParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | PNG image data | 1 |
| Output video | PNG image data | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source (PNG data)"] --> PNGParseBlock;
PNGParseBlock --> PNGDecoderBlock["PNG Decoder Block"];
PNGDecoderBlock --> VideoRendererBlock["Video Renderer Block (or Image Overlay)"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
VC-1 Parser Block¶
The VC1ParseBlock parses VC-1 video elementary streams. VC-1 was developed by Microsoft and was used in Blu-ray Discs and Windows Media Video.
Block info¶
Name: VC1ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | VC-1 video | 1 |
| Output video | VC-1 video | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source"] --> VC1ParseBlock;
VC1ParseBlock --> VC1DecoderBlock["VC-1 Decoder Block"];
VC1DecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
VP9 Parser Block¶
The VP9ParseBlock parses VP9 video elementary streams. VP9 is an open and royalty-free video coding format developed by Google, often used for web video.
Block info¶
Name: VP9ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input video | VP9 video | 1 |
| Output video | VP9 video | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source"] --> VP9ParseBlock;
VP9ParseBlock --> VP9DecoderBlock["VP9 Decoder Block"];
VP9DecoderBlock --> VideoRendererBlock["Video Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
Audio Parser Blocks¶
MPEG Audio Parser Block¶
The MPEGAudioParseBlock parses MPEG audio elementary streams, which includes MP1, MP2, and MP3 audio.
Block info¶
Name: MPEGAudioParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input audio | MPEG audio | 1 |
| Output audio | MPEG audio | 1 |
The sample pipeline¶
graph LR;
DataSourceBlock["Data Source (MP3 data)"] --> MPEGAudioParseBlock;
MPEGAudioParseBlock --> MP3DecoderBlock["MP3 Decoder Block"];
MP3DecoderBlock --> AudioRendererBlock["Audio Renderer Block"];
Platforms¶
Windows, macOS, Linux, iOS, Android.
Individual Parser Blocks¶
AV1 Parse¶
Parses AV1 video streams to extract frame boundaries and metadata.
Block info¶
Name: AV1ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | AV1 compressed | 1 |
| Output | AV1 parsed | 1 |
Sample code¶
var pipeline = new MediaBlocksPipeline();
var av1Parse = new AV1ParseBlock();
// Connect to AV1 stream source and decoder
await pipeline.StartAsync();
H263 Parse¶
Parses H.263 video streams for frame boundary detection.
Block info¶
Name: H263ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | H.263 compressed | 1 |
| Output | H.263 parsed | 1 |
H264 Parse¶
Parses H.264/AVC video streams to extract NAL units and frame information.
Block info¶
Name: H264ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | H.264 compressed | 1 |
| Output | H.264 parsed | 1 |
H265 Parse¶
Parses H.265/HEVC video streams to extract NAL units and coding information.
Block info¶
Name: H265ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | H.265 compressed | 1 |
| Output | H.265 parsed | 1 |
JPEG2000 Parse¶
Parses JPEG2000 video streams.
Block info¶
Name: JPEG2000ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | JPEG2000 compressed | 1 |
| Output | JPEG2000 parsed | 1 |
MPEG-1/2 Video Parse¶
Parses MPEG-1 and MPEG-2 video streams.
Block info¶
Name: MPEG12VideoParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | MPEG-1/2 compressed | 1 |
| Output | MPEG-1/2 parsed | 1 |
MPEG-4 Parse¶
Parses MPEG-4 video streams.
Block info¶
Name: MPEG4ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | MPEG-4 compressed | 1 |
| Output | MPEG-4 parsed | 1 |
MPEG Audio Parse¶
Parses MPEG audio streams (MP1, MP2, MP3).
Block info¶
Name: MPEGAudioParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | MPEG audio compressed | 1 |
| Output | MPEG audio parsed | 1 |
PNG Parse¶
Parses PNG image streams.
Block info¶
Name: PNGParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | PNG compressed | 1 |
| Output | PNG parsed | 1 |
VC-1 Parse¶
Parses VC-1 video streams (Windows Media Video 9).
Block info¶
Name: VC1ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | VC-1 compressed | 1 |
| Output | VC-1 parsed | 1 |
VP9 Parse¶
Parses VP9 video streams.
Block info¶
Name: VP9ParseBlock.
| Pin direction | Media type | Pins count |
|---|---|---|
| Input | VP9 compressed | 1 |
| Output | VP9 parsed | 1 |
Platforms¶
Windows, macOS, Linux, iOS, Android.