Streamer Element Reference

Advanced Systems Format Stream

This module contains elements for handling Microsoft Advanced Systems Format (ASF) Streams.

Loadable Module Properties

Module Name Streamer Advanced Systems Format Elements
File Name libasfelements.so
Class Count 6

Element Quick Index

ASF File Info Decoder Element, ASF Clock Reference Element, ASF Video Stream Info Decoder Element, ASF Audio Stream Info Decoder Element, ASF Video Selector Element, ASF Audio Selector Element

ASF File Info Decoder Element

Class Properties

Name ASF File Info Decoder Descriptor
Version1
Interface Name IElementDescriptor
BindingC++

Element Descriptor

Name ASF File Info Decoder
TypeIntermediate
Priority500
Input Formats Advanced Systems Format Stream
Output Formats Advanced Systems Format Stream/Data Packets

Metadata

Key Input Output
_StreamTitleProducedCommitted
_StreamPlayTimeProducedCommitted
_AsfDataPacketSizeProducedCommitted
_AsfHeaderObjectProducedCommitted

Theory of Operation

The ASF File Info Decoder Element commits the ASF header object as metadata and decodes parts of the file object inside the header object in order to produce the metadata for stream title, stream play time and data packet size. It also splits the following segments into one data packet per segment.

ASF Clock Reference Element

The ASF Clock Reference Element extracts the Send Time field in the ASF data packets in the ASF Stream.

Class Properties

Name ASF Clock Reference Descriptor
Version1
Interface Name IElementDescriptor
BindingC++

Element Descriptor

Name ASF Clock Reference
TypeIntermediate
Priority500
Input Formats Advanced Systems Format Stream/Data Packets
Output Formats Output same as input
Trait ClockReference

Metadata

This element immediately recommits all metadata to its output pad.

Theory of Operation

The element extracts the Send Time field in the ASF data packets and calls the SetClockReference method in the IStreamClock interface to inform the pump framework about the timing properties of the stream.

ASF Video Stream Info Decoder Element

The ASF Video Stream Info Decoder Element decodes relevant metadata for video streams in the ASF Stream.

Class Properties

Name ASF Video Stream Info Decoder Descriptor
Version1
Interface Name IElementDescriptor
BindingC++

Element Descriptor

Name ASF Video Stream Info Decoder
TypeIntermediate
Priority500
Input Formats Advanced Systems Format Stream/Data Packets
Output Formats Output same as input

Metadata

Key Input Output
_AsfHeaderObjectRequiredCommitted
_VideoComponentFlagProducedCommitted
_VideoStreamInfo.*ProducedCommitted
_VideoStreamListProducedCommitted
_DecoderVideoStreamInfo.*ProducedCommitted
_AsfDecoderVideoStreamInfo.*ProducedCommitted

Theory of Operation

The element examines the ASF Header Object for streams with a compression id that is equal to WMV3 (0x33564d57).

The element commits decoded stream information for each video stream pid as metadata with the _VideoStreamInfo, _DecoderVideoStreamInfo and _AsfDecoderVideoStreamInfo keys. It also commits the _VideoComponentFlag metadata with the string value "true" if at lease one video stream exists and "false" otherwise. A list of video stream pids is committed in _VideoStreamList.

ASF Audio Stream Info Decoder Element

The ASF Audio Stream Info Decoder Element decodes relevant metadata for audio streams in the ASF Stream.

Class Properties

Name ASF Audio Stream Info Decoder Descriptor
Version1
Interface Name IElementDescriptor
BindingC++

Element Descriptor

Name ASF Audio Stream Info Decoder
Type Intermediate
Priority500
Input Formats Advanced Systems Format Stream/Data Packets
Output Formats Output same as input

Metadata

Key Input Output
_AsfHeaderObjectRequiredCommitted
_AudioStreamInfo.*ProducedCommitted
_AudioStreamListProducedCommitted
_AudioComponentFlagProducedCommitted
_AsfDecoderAudioStreamInfo.*ProducedCommitted

Theory of Operation

The element examines the ASF Header Object for streams with a format tag that matches the Windows Media Audio tags.

Format TagDescription
0x161Windows Media Audio 7, 8, 9
0x162Windows Media Audio 9 Professional
0x163Windows Media Audio 9 Lossless

The element commits decoded stream information for each audio stream pid as metadata with the _AudioStreamInfo and _AsfDecoderAudioStreamInfo keys. It also commits the _AudioComponentFlag metadata with the string value "true" if at lease one audio stream exists and "false" otherwise. A list of audio stream pids is committed in _AudioStreamList.

The element does not decode any language information for the stream.

ASF Video Selector Element

The ASF Video Selector Element selects one of the video streams and sets the _ActiveVideoStream metadata accordingly.

Class Properties

Name ASF Video Selector Descriptor
Version1
Interface Name IElementDescriptor
BindingC++

Element Descriptor

Name ASF Video Selector Decoder
TypeIntermediate
Priority500
Input Formats Advanced Systems Format Stream/Data Packets
Output Formats Output same as input

Metadata

Key Input Output
_VideoStreamListRequiredCommitted
_ActiveVideoStreamProducedCommitted

Theory of Operation

The element sets the _ActiveVideoStream according to the _RequestVideoStream blackboard parameter, which holds the pid of the video stream selected by the user. If this parameter does not exist, the element chooses the first pid in the _VideoStreamList as default.

ASF Audio Selector Element

The ASF Audio Selector Element selects one of the audio streams and sets the _ActiveAudioStream metadata accordingly.

Class Properties

Name ASF Audio Selector Descriptor
Version1
Interface Name IElementDescriptor
BindingC++

Element Descriptor

Name ASF Audio Selector Decoder
TypeIntermediate
Priority500
Input Formats Advanced Systems Format Stream/Data Packets
Output Formats Output same as input

Metadata

Key Input Output
_AudioStreamListRequiredCommitted
_ActiveAudioStreamProducedCommitted

Theory of Operation

The element sets the _ActiveAudioStream according to the _RequestAudioStream blackboard parameter, which holds the pid of the audio stream selected by the user. If this parameter does not exist, the element chooses the first pid in the _AudioStreamList as default.