Video PES Stream

This module contains elements for handling ISO/IEC 13818-1 PES video streams.

Loadable Module Properties

Module Name Streamer PES Elements
File Name libpeselements.so
Class Count1

Element Quick Index

PES Video Parser.

PES Video Parser element in typical pipeline.

PES Video Parser Element

The PES Video parser element searches for sequence_header and group_of_pictures_header structures in the video stream.

Class Properties

Name PES Video Parser Descriptor
Version1
Interface Name IElementDescriptor
BindingC++

Element Descriptor

Name PES Video Parser
TypeIntermediate
Priority500
Input Formats MPEG-[2/Transport|2/Program|1/System] Stream/Single Video
Output Formats Same input an output

Metadata

Key Input Output
PES_STARTRequiredCommitted
_ActiveVideoStreamRequiredCommitted
_PlaybackModeRequiredCommitted
_SourcePositionOptionalReleased
_SourcePaceOptionalReleased
_GopPositionProducedCommitted
_GopPaceProducedCommitted

Theory of Operation

The element searches the video stream with the pid that matches the value of the ActiveVideoStream metadata for sequence_header and group_of_pictures_header structures.

When it finds a sequence_header it extracts information like the horizontal and vertical resolution of the video image, the aspect ratio and the frame rate. This information is stored as a _DecoderVideoStreamInfo metadata value and committed on the output pad. The _DecoderVideoStreamInfo parameter is described in greater detail in the Complex Metadata section.

When the element finds a group_of_pictures_header it extracts the time_code information. Based on that information, and any _PlaybackMode, _SourcePosition and _SourcePace metadata received, it estimates a current position relative the start of stream, similar to the Normal Play Time (NPT) used by DSM-CC. It also estimates the rate of change. This information is committed as _GopPosition and _GopPace metadata.