1. Introduction

Advanced Systems Format (ASF) is an extensible file format designed to store coordinated digital media data. It supports data delivery over a wide variety of networks and is also suitable for local playback.

ASF was designed with the following goals:

Each ASF file is composed of one or more digital media streams. The file header specifies the properties of the entire file, along with stream-specific properties. Digital media data, stored after the file header, references a particular digital media stream number to indicate its type and purpose. The delivery and presentation of all digtial media stream data is aligned to a common timeline.

The ASF file definition includes the specification of commonly used media types. If an implementation supports media types from within this set of standard media types, then that media type must be supported in the manner described in this document if the resulting content is to be considered “content compliant” with the ASF specification.

ASF supports the transmission of “live content” over a network. Live content refers to digital media content, which may or may not ever be recorded upon a persistent medium (for example, a disk, CD, DVD, and so on). This use explicitly and solely means that information describing the digital media content must have been received before the digital media data itself is received (in order to interpret the digital media data), and that this information must convey the semantics of the ASF Header Object. Similarly, the received data must conform to the format of the ASF Data Packets. No additional information should be conveyed. Specifically, this use explicitly does not refer to or contain any information about network control protocols or network transmission protocols. It refers solely to the order of information arrival (header semantics before data) and the data format.

A partially downloaded ASF file may still be perfectly functional. As long as the required header objects and some complete set of the data objects are available, it is possible to seek to any position (backward and forward) within the partially downloaded file. Seeking in an ASF file does not require the use of an index object; however, many implementations will require the index in order to gain efficient access to the data.

ASF is a digital media presentation file format. It supports live and on-demand digital media content. ASF files may be edited, but ASF is specifically designed for streaming and/or local playback.

1.1 About this specification

This specification is intended to be compatible with previous versions of the ASF Specification. The format defined herein is an extension of the format defined in previous versions of this specification and is not a new format. Content created according to this specification should be compatible with earlier implementations of ASF (subject to some issues that are outlined in section 8).

1.2 Conventions

In this document the following conventions are used:

All structure definitions assume 1-byte packing.

All references to Unicode strings imply NULL terminated strings unless otherwise indicated. The term “WCHAR” is used to indicate Unicode characters. ASF uses UTF-16, little endian, and the Byte-Order Marker (BOM) character is not present.

Fields marked “reserved” indicate that reading implementations should ignore the value but that writing implementations must set the value to whatever value is indicated in the specification for that field.

The following basic data types are used in this document.

Type Size (bits) Signed
BYTE 8 no
WCHAR 16 no
WORD 16 no
DWORD 32 no
QWORD 64 no
GUID 128 no

1.3 Document organization