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 |
Version | 1 |
Interface Name |
IElementDescriptor |
Binding | C++ |
Element Descriptor
Name |
ASF File Info Decoder |
Type | Intermediate |
Priority | 500 |
Input Formats |
Advanced Systems Format Stream |
Output Formats |
Advanced Systems Format Stream/Data Packets |
Metadata
Key |
Input |
Output |
_StreamTitle | Produced | Committed |
_StreamPlayTime | Produced | Committed |
_AsfDataPacketSize | Produced | Committed |
_AsfHeaderObject | Produced | Committed |
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 |
Version | 1 |
Interface Name |
IElementDescriptor |
Binding | C++ |
Element Descriptor
Name |
ASF Clock Reference |
Type | Intermediate |
Priority | 500 |
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 |
Version | 1 |
Interface Name |
IElementDescriptor |
Binding | C++ |
Element Descriptor
Name |
ASF Video Stream Info Decoder |
Type | Intermediate |
Priority | 500 |
Input Formats |
Advanced Systems Format Stream/Data Packets |
Output Formats |
Output same as input |
Metadata
Key |
Input |
Output |
_AsfHeaderObject | Required | Committed |
_VideoComponentFlag | Produced | Committed |
_VideoStreamInfo.* | Produced | Committed |
_VideoStreamList | Produced | Committed |
_DecoderVideoStreamInfo.* | Produced | Committed |
_AsfDecoderVideoStreamInfo.* | Produced | Committed |
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 |
Version | 1 |
Interface Name |
IElementDescriptor |
Binding | C++ |
Element Descriptor
Name |
ASF Audio Stream Info Decoder |
Type |
Intermediate |
Priority | 500 |
Input Formats |
Advanced Systems Format Stream/Data Packets |
Output Formats |
Output same as input |
Metadata
Key |
Input |
Output |
_AsfHeaderObject | Required | Committed |
_AudioStreamInfo.* | Produced | Committed |
_AudioStreamList | Produced | Committed |
_AudioComponentFlag | Produced | Committed |
_AsfDecoderAudioStreamInfo.* | Produced | Committed |
Theory of Operation
The element examines the ASF Header Object for streams with a format tag that matches the Windows Media Audio tags.
Format Tag | Description |
0x161 | Windows Media Audio 7, 8, 9 |
0x162 | Windows Media Audio 9 Professional |
0x163 | Windows 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 |
Version | 1 |
Interface Name |
IElementDescriptor |
Binding | C++ |
Element Descriptor
Name |
ASF Video Selector Decoder |
Type | Intermediate |
Priority | 500 |
Input Formats |
Advanced Systems Format Stream/Data Packets |
Output Formats |
Output same as input |
Metadata
Key |
Input |
Output |
_VideoStreamList | Required | Committed |
_ActiveVideoStream | Produced | Committed |
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 |
Version | 1 |
Interface Name |
IElementDescriptor |
Binding | C++ |
Element Descriptor
Name |
ASF Audio Selector Decoder |
Type | Intermediate |
Priority | 500 |
Input Formats |
Advanced Systems Format Stream/Data Packets |
Output Formats |
Output same as input |
Metadata
Key |
Input |
Output |
_AudioStreamList | Required | Committed |
_ActiveAudioStream | Produced | Committed |
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.