DOC

ASF_Specification

By Charles Watson,2014-06-11 16:21
6 views 0
ASF_Specification

Advanced Systems Format (ASF) Specification

    Revision 01.20.03

    Microsoft Corporation

    December 2004

? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is

    subject to the terms of the End User License Agreement accompanying this specification.

     - Document Revision 01.20.03 - December, 2004 i

    END USER LICENSE AGREEMENT .................................................................................................. IV 1. INTRODUCTION .................................................................................................................. 1 1.1 ABOUT THIS SPECIFICATION ........................................................................................................................ 2 1.2 CONVENTIONS .......................................................................................................................................... 2 1.3 DOCUMENT ORGANIZATION ......................................................................................................................... 2 2. FILE FORMAT ORGANIZATION ............................................................................................. 3 2.1 ASF OBJECT DEFINITION............................................................................................................................. 3 2.2 TOP-LEVEL FILE STRUCTURE ........................................................................................................................ 3 2.3 ASF TOP-LEVEL HEADER OBJECT .................................................................................................................. 4 2.4 ASF TOP-LEVEL DATA OBJECT ..................................................................................................................... 5 2.5 ASF TOP-LEVEL INDEX OBJECTS.................................................................................................................... 5 3. ASF TOP-LEVEL HEADER OBJECT ......................................................................................... 6 3.1 HEADER OBJECT (MANDATORY, ONE ONLY) ..................................................................................................... 6 3.2 FILE PROPERTIES OBJECT (MANDATORY, ONE ONLY) ......................................................................................... 7 3.3 STREAM PROPERTIES OBJECT (MANDATORY, ONE PER STREAM) ........................................................................... 9 3.4 HEADER EXTENSION OBJECT (MANDATORY, ONE ONLY) ................................................................................... 10 3.5 CODEC LIST OBJECT (OPTIONAL, ONE ONLY)................................................................................................. 11 3.6 SCRIPT COMMAND OBJECT (OPTIONAL, ONE ONLY) ........................................................................................ 13 3.7 MARKER OBJECT (OPTIONAL, 0 OR 1) ......................................................................................................... 14 3.8 BITRATE MUTUAL EXCLUSION OBJECT (OPTIONAL, 0 OR 1).............................................................................. 16 3.9 ERROR CORRECTION OBJECT (OPTIONAL, ONE ONLY) ..................................................................................... 17 3.10 CONTENT DESCRIPTION OBJECT (OPTIONAL, ONE ONLY) ................................................................................. 18 3.11 EXTENDED CONTENT DESCRIPTION OBJECT (OPTIONAL, ONE ONLY) .................................................................. 19 3.12 STREAM BITRATE PROPERTIES OBJECT (OPTIONAL BUT RECOMMENDED, ONE ONLY) .............................................. 21 3.13 CONTENT BRANDING OBJECT (OPTIONAL, ONE ONLY) ..................................................................................... 22 3.14 CONTENT ENCRYPTION OBJECT (OPTIONAL, 0 OR 1) ...................................................................................... 23 3.15 EXTENDED CONTENT ENCRYPTION OBJECT (OPTIONAL, 0 OR 1) ....................................................................... 24 3.16 DIGITAL SIGNATURE OBJECT (OPTIONAL, 0 OR 1).......................................................................................... 24 3.17 PADDING OBJECT (OPTIONAL, 0 TO MANY) ................................................................................................... 25 4. OBJECTS IN THE ASF HEADER EXTENSION OBJECT ........................................................... 26 4.1 EXTENDED STREAM PROPERTIES OBJECT (OPTIONAL, 1 PER MEDIA STREAM) ....................................................... 26 4.2 ADVANCED MUTUAL EXCLUSION OBJECT (OPTIONAL, 0 TO MANY) ..................................................................... 30 4.3 GROUP MUTUAL EXCLUSION OBJECT (OPTIONAL, 0 TO MANY) .......................................................................... 31 4.4 STREAM PRIORITIZATION OBJECT (OPTIONAL, 0 OR 1) ................................................................................... 32 4.5 BANDWIDTH SHARING OBJECT (OPTIONAL, 0 TO MANY) .................................................................................. 33 4.6 LANGUAGE LIST OBJECT (OPTIONAL, ONLY 1) ............................................................................................... 34 4.7 METADATA OBJECT (OPTIONAL, 0 OR 1) ...................................................................................................... 35 4.8 METADATA LIBRARY OBJECT (OPTIONAL, 0 OR 1) .......................................................................................... 36 4.9 INDEX PARAMETERS OBJECT (MANDATORY ONLY IF THE INDEX OBJECT IS PRESENT IN FILE, 0 OR 1) ........................ 38 4.10 MEDIA OBJECT INDEX PARAMETERS OBJECT (MANDATORY ONLY IF MEDIA OBJECT INDEX IS PRESENT IN FILE, 0 OR 1) . 39 4.11 TIMECODE INDEX PARAMETERS OBJECT (MANDATORY ONLY IF TIMECODE INDEX IS PRESENT IN FILE, 0 OR 1) ......... 40 4.12 COMPATIBILITY OBJECT (OPTIONAL, ONLY 1) ................................................................................................ 41 4.13 ADVANCED CONTENT ENCRYPTION OBJECT (OPTIONAL, 0 OR 1) ....................................................................... 42 5. ASF TOP-LEVEL DATA OBJECT ............................................................................................ 44 5.1 ASF DATA OBJECT (MANDATORY, ONE ONLY) ............................................................................................... 44 ? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is

    subject to the terms of the End User License Agreement accompanying this specification.

     - Document Revision 01.20.03 - December, 2004 ii

    5.2 ASF DATA PACKET DEFINITION ................................................................................................................... 45 5.2.1 ERROR CORRECTION DATA......................................................................................................................... 45 5.2.2 PAYLOAD PARSING INFORMATION ................................................................................................................ 47 5.2.3 PAYLOAD DATA ....................................................................................................................................... 50 5.2.4 PADDING DATA ....................................................................................................................................... 57 6. ASF TOP-LEVEL INDEX OBJECTS ........................................................................................ 57 6.1 ASF TOP-LEVEL SIMPLE INDEX OBJECT (OPTIONAL BUT RECOMMENDED WHEN APPROPRIATE, 1 FOR EACH NON-HIDDEN

    VIDEO STREAM) ................................................................................................................................................... 57 6.2 ASF TOP-LEVEL INDEX OBJECT (OPTIONAL BUT RECOMMENDED WHEN APPROPRIATE, 0 OR 1) ................................. 59 6.3 ASF TOP-LEVEL MEDIA OBJECT INDEX OBJECT (OPTIONAL, 0 OR 1) .................................................................. 61 6.4 ASF TOP-LEVEL TIMECODE INDEX OBJECT (OPTIONAL, 0 OR 1) ........................................................................ 62 7. ASF FEATURE IMPLEMENTATION GUIDELINES .................................................................. 64 7.1 BIT RATE AND THE LEAKY BUCKET MODEL ..................................................................................................... 64 7.2 STREAM SELECTION PROCESS ..................................................................................................................... 66 7.2.1 DESCRIPTION OF SAMPLE CONTENT ............................................................................................................. 66 7.2.2 CONTENT AUTHORING .............................................................................................................................. 66 7.2.3 EXERCISE OF THE STREAM SELECTION PROCESS.............................................................................................. 68 7.3 PAYLOAD EXTENSION SYSTEMS ................................................................................................................... 69 7.3.1 PARSING THE REPLICATED DATA ................................................................................................................ 69 7.3.2 STANDARD PAYLOAD EXTENSION SYSTEMS ................................................................................................... 70 7.4 METADATA ............................................................................................................................................. 72 7.5 PIXEL ASPECT RATIO ................................................................................................................................ 73 8. CONTENT REACH GUIDELINES........................................................................................... 73 8.1 HOW TO USE THIS SECTION ....................................................................................................................... 73 8.2 COMPATIBILITY ISSUES ............................................................................................................................. 73 8.2.1 HEADER EXTENSION OBJECT AND CUSTOM HEADER OBJECTS ............................................................................. 73 8.2.2 HANDLING COMPLEX STREAM CONFIGURATIONS ............................................................................................. 74 8.2.3 MEDIA TYPES OTHER THAN AUDIO, VIDEO, IMAGE AND SCRIPT .......................................................................... 74 8.2.4 BITRATE MUTUALLY EXCLUSIVE VIDEO STREAMS, DIFFERENT FRAME SIZES............................................................ 75 8.2.5 BITRATE MUTUALLY EXCLUSIVE NON-VIDEO STREAMS ...................................................................................... 75 8.2.6 MULTIPLE INDEPENDENT AUDIO OR VIDEO STREAMS........................................................................................ 76 8.2.7 UNKNOWN STREAM IDS IN THE PAYLOADS .................................................................................................... 76 8.2.8 MULTI-LANGUAGE PRESENTATIONS .............................................................................................................. 76 8.2.9 GROUP MUTUAL EXCLUSION ....................................................................................................................... 77 8.2.10 PRESENCE OF STREAM BITRATE PROPERTIES OBJECT.................................................................................. 77 8.2.11 CUSTOM TOP-LEVEL OBJECTS ................................................................................................................. 77 8.2.12 INDEX OBJECTS ................................................................................................................................... 78 8.2.13 DO NOT CREATE CONTENT WITH VARIABLE-SIZE PACKETS ............................................................................ 79 8.2.14 PACKET SIZE MUST BE UNDER 64 KB ....................................................................................................... 79 8.2.15 PADDING LENGTH MUST BE ACCURATE...................................................................................................... 79 8.2.16 ORDERING OF PAYLOADS AND MEDIA OBJECTS IN PACKETS ........................................................................... 80 9. STANDARD ASF MEDIA TYPES ........................................................................................... 80 9.1 AUDIO MEDIA TYPE .................................................................................................................................. 80 9.1.1 SPREAD AUDIO........................................................................................................................................ 81 9.1.2 AUDIO PAYLOAD SIZES.............................................................................................................................. 82 9.2 VIDEO MEDIA TYPE .................................................................................................................................. 82 9.3 COMMAND MEDIA TYPE ............................................................................................................................. 84 ? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is

    subject to the terms of the End User License Agreement accompanying this specification.

     - Document Revision 01.20.03 - December, 2004 iii

    9.4 IMAGE MEDIA TYPE .................................................................................................................................. 85 9.4.1 JFIF/JPEG MEDIA TYPE ........................................................................................................................... 85 9.4.2 DEGRADABLE JPEG MEDIA TYPE ................................................................................................................. 85 9.5 FILE TRANSFER AND BINARY MEDIA TYPES ..................................................................................................... 86 9.5.1 WEB STREAMS ........................................................................................................................................ 87 10. ASF GUIDS......................................................................................................................... 88 10.1 TOP-LEVEL ASF OBJECT GUIDS................................................................................................................. 89 10.2 HEADER OBJECT GUIDS ........................................................................................................................... 89 10.3 HEADER EXTENSION OBJECT GUIDS ........................................................................................................... 89 10.4 STREAM PROPERTIES OBJECT STREAM TYPE GUIDS ....................................................................................... 90 10.4.1 WEB STREAM TYPE-SPECIFIC DATA GUIDS .............................................................................................. 90 10.5 STREAM PROPERTIES OBJECT ERROR CORRECTION TYPE GUIDS ...................................................................... 90 10.6 HEADER EXTENSION OBJECT GUIDS ........................................................................................................... 90 10.7 ADVANCED CONTENT ENCRYPTION OBJECT SYSTEM ID GUIDS ........................................................................ 91 10.8 CODEC LIST OBJECT GUIDS ..................................................................................................................... 91 10.9 SCRIPT COMMAND OBJECT GUIDS ............................................................................................................. 91 10.10 MARKER OBJECT GUIDS ...................................................................................................................... 91 10.11 MUTUAL EXCLUSION OBJECT EXCLUSION TYPE GUIDS ............................................................................... 91 10.12 BANDWIDTH SHARING OBJECT GUIDS .................................................................................................... 92 10.13 STANDARD PAYLOAD EXTENSION SYSTEM GUIDS ...................................................................................... 92 11. CODEC INFORMATION ....................................................................................................... 92 11.1 AUDIO CODEC TYPE-SPECIFIC DATA IN ASF................................................................................................... 92 11.1.1 WINDOWS MEDIA AUDIO ...................................................................................................................... 93 11.1.2 GSM-AMR ........................................................................................................................................ 93 11.2 MPEG-4 VIDEO TYPE-SPECIFIC DATA IN ASF................................................................................................ 93 11.2.1 BACKGROUND ..................................................................................................................................... 93 11.2.2 DECODING PROCESS ............................................................................................................................ 94 11.2.3 DECODING MP4S HEADER INFORMATION ................................................................................................. 95 12. REVISION HISTORY .......................................................................................................... 96

? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is

    subject to the terms of the End User License Agreement accompanying this specification.

     - Document Revision 01.20.03 - December, 2004 iv

    End User License Agreement

    Microsoft Advanced Systems Format (ASF) Specification version 1.2

    IMPORTANT—READ CAREFULLY: This Microsoft Agreement (“Agreement”) is a legal agreement between you

    (either an individual or a single entity) and Microsoft Corporation (“Microsoft”) for the version of the Microsoft

    specification identified above which you are about to download (“Specification”). By downloading, copying, or

    otherwise using the Specification, you agree to be bound by the terms of this Agreement. If you do not agree to the

    terms of this Agreement, do not download, copy or otherwise use the Specification.

The Specification is owned by Microsoft or its suppliers and is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties.

The capitalized terms used in this Agreement are defined as follows:

    ? “Advanced Systems Format” or “ASF” means version 1.2 of the extensible file storage format developed by or for Microsoft for authoring, editing, archiving, distributing, streaming, playing, referencing, or otherwise manipulating content.

    ? “Necessary Claims” means any and all claim(s), but only such claim(s), of a patent or patent application that (a) are owned, controlled, or sublicensable (without payment of royalties to an unaffiliated third party) by Microsoft now or at any future time; and (b) are necessarily infringed by implementing ASF as set forth in the Specification. Notwithstanding the foregoing sentence, Necessary Claims do not include any claims: (i) to any enabling technologies that may be necessary to make or use any product or portion thereof that includes ASF (e.g., enabling semiconductor manufacturing technology, compiler technology, object oriented technology, operating system technology, protocols, programming interfaces, etc.); or (ii) covering the implementation of other specifications, technical documentation or technology merely referred to in the Specification.

    ? “Windows Media Codecs” means all versions of the audio, video, and data compression/decompression algorithms (codecs) that have a ASF Codec Description that begins with Windows Media or Microsoft”. Windows Media Codecs includes, but is not limited to, the “Windows Media Audio” codecs, Windows Media Videocodecs, and Microsoft MPEG-4 codec.

All other initially capitalized terms have the meanings assigned to them elsewhere in this Agreement.

1. LICENSE.

    (a) Specification. Provided you comply with all terms and conditions of this Agreement, including without limitation Section 2 below, Microsoft grants you the following limited, non-exclusive, world-wide, royalty-free, non-assignable,

    nontransferable, non-sublicenseable license during the Term (defined below), under any copyrights owned or licensable by Microsoft without payment of consideration to unaffiliated third parties, to: (i) reproduce and internally

    use a reasonable number of copies of the Specification in its entirety as a reference for the sole purpose of

    implementing ASF in your hardware, application, or utilities (your “Solutions”); (ii) reproduce and internally use

    your implementations of ASF made pursuant to the terms of this Agreement (your “Implementations”) in source code form solely for internal development and testing of your Solutions, and (iii) reproduce and have reproduced in

    object code form only, your Implementations and distribute, directly and indirectly, your Implementations (only in

    object code form) solely as part of and for use with your Solutions.

    (b) Necessary Claims. Provided you comply with all terms and conditions of this Agreement, including without limitation Section 2 below, Microsoft grants you the following limited, non-exclusive, world-wide, royalty-free,

    non-assignable, nontransferable, non-sublicenseable license during the Term under its Necessary Claims to make, use and distribute in object code form (in accordance with the distribution criteria set forth in Section 1(a)(iii) above) your

    Implementations that fully comply with the Specification.

    (c) Reserved Rights. The foregoing license is applicable only to the version of the Specification which you are about to download. This Agreement does not grant you any rights to any additional versions of or extensions to the

    Specification. Microsoft and its suppliers retain title and all ownership rights to the Specification and the

    information contained therein. All rights not expressly granted are reserved to Microsoft. Microsoft may have patents or pending patent applications, trademarks, copyrights, trade secrets or other intellectual property rights

    covering the subject matter in the Specification. The furnishing of this Specification does not give you any license

    ? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is

    subject to the terms of the End User License Agreement accompanying this specification.

     - Document Revision 01.20.03 - December, 2004 v

    to these patents, trademarks, trade secrets, copyrights, or other intellectual property rights, except as specifically set

    forth in Sections 1(a) and 1(b) above.

    2. DESCRIPTION OF ADDITIONAL LIMITATIONS. Without limiting the conditions set forth in Section 1 above, your rights under Section 1 are expressly conditioned upon your compliance with each of the following limitations:

    (a) You may not alter or remove any copyright, trademark or other protective notices or legends from any copy of the

    Specification.

    (b) You may not provide, publish or otherwise distribute the Specification to any third party. Further, you shall use commercially reasonable efforts to ensure that the use or distribution of your Solutions, including your

    Implementations as incorporated into your Solutions, shall not in any way disclose or reveal the information

    contained in the Specification.

    (c) Your Implementations as incorporated into your Solutions must implement the Specification in its entirety. By way of clarification of the foregoing, you are not required to implement any portion of the Specification that is identified

    as “optional”. However, if you elect to implement a portion of the Specification that is identified as optional, you must also implement that optional portion of the Specification in its entirety.

    (d) Your Solutions shall not circumvent or compromise the protection of content protected with Microsoft's digital rights management.

    (e) To promote interoperability with legacy and future solutions built on Windows Media technologies, Microsoft recommends that your Solutions follow these guidelines: (i) if your Solutions save to permanent storage, write to a

    network, or otherwise export content compressed with Windows Media Codecs, such content should be contained

    within ASF and (ii) if your Solutions create ASF files, or register for any file types or MIME types associated with

    ASF files, your Solutions should adhere to the ASF file naming and registration conventions posted on the http://go.microsoft.com/fwlink/?LinkId=11652 web site.

    (f) For a variety of reasons, including without limitation, because you do not have the right to sublicense the Necessary Claims, your license rights to the Specification are conditioned upon your not creating or distributing your

    Implementations in any manner that would cause ASF (whether embodied in your Implementation or otherwise) to

    become subject to any of the terms of an Excluded License. An “Excluded License” is any license that requires as a

    condition of use, modification and/or distribution of software subject to the Excluded License, that such software or other software combined and/or distributed with such software be (x) disclosed or distributed in source code form;

    (y) licensed for the purpose of making derivative works; or (z) redistributable at no charge; 3. TERM. The term of this Agreement (“Term”) commences upon your downloading of the Specification and expires without notice on January 1, 2012, unless terminated sooner as provided in Section 4. After the expiration or termination of

    the Term, you must cease creating any new Implementations. If you have complied with the terms and conditions of this

    Agreement and Microsoft has not terminated this Agreement as provided in Section 4, you may continue to exercise the license rights granted herein after the expiration of the Term, including the right to use a reasonable number of copies of the

    Specification, subject to the conditions and restrictions herein and solely to the limited extent needed to (i) continue to

    distribute your Solutions containing your Implementations where such Solutions were first commercially released in a

    general, non-beta form during the Term (“Legacy Solutions”) and (ii) develop bug fixes and provide product support for your Legacy Solutions. You may not continue to exercise the license rights granted herein after the expiration of the Term

    (i) if Microsoft has terminated this Agreement as provided in Section 4 or (ii) if you do not continue to comply with any of

    the conditions and restrictions herein that were applicable to your exercise of the license rights during the Term.

    4. TERMINATION. Without prejudice to any other rights, Microsoft may terminate this Agreement if you fail to comply with any of the terms and conditions of this Agreement (“Termination for Cause”). Immediately following a Termination

    for Cause, you must destroy all copies of the Specification in your possession or under your control and cease any further distribution of your Solutions that use or incorporate Implementations.

    5. SUPPORT. Microsoft is not obligated to provide technical or other support for the Specification. You are responsible for any and all maintenance, end-user support, technical support and updates for your Solutions.

    6. EXPORT RESTRICTIONS. You acknowledge that the Specification is subject to U.S. export jurisdiction. You agree to comply with all applicable international and national laws that apply to the Specification, including the U.S. Export

    Administration Regulations, as well as end-user, end-use and country destination restrictions issued by U.S. and other

    governments. For additional information on exporting Microsoft products, see http://www.microsoft.com/exporting/.

    7. DISCLAIMER OF WARRANTIES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND ITS SUPPLIERS PROVIDE TO YOU THE SPECIFICATION (AND ALL INTELLECTUAL PROPERTY THEREIN), AND ANY (IF ANY) SUPPORT SERVICES RELATED TO THE

    SPECIFICATION ("SUPPORT SERVICES") AS IS AND WITH ALL FAULTS; AND MICROSOFT AND ITS

    SUPPLIERS HEREBY DISCLAIM WITH RESPECT TO THE SPECIFICATION AND SUPPORT SERVICES

    ALL WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING,

    BUT NOT LIMITED TO, ANY (IF ANY) WARRANTIES OR CONDITIONS OF OR RELATED TO: MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR COMPLETENESS OF

    ? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is

    subject to the terms of the End User License Agreement accompanying this specification.

     - Document Revision 01.20.03 - December, 2004 vi

    RESPONSES, RESULTS, WORKMANLIKE EFFORT AND LACK OF NEGLIGENCE. ALSO THERE IS NO

    WARRANTY, DUTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION,

    CORRESPONDENCE TO DESCRIPTION OR NONINFRINGEMENT. THE ENTIRE RISK ARISING OUT OF USE OF THE SPECIFICATION (AND ALL INTELLECTUAL PROPERTY THEREIN) AND ANY

    SUPPORT SERVICES REMAINS WITH YOU.

    8. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT OR ITS

    SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL

    DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL

    INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD FAITH

    OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS

    WHATSOEVER) ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE THE SPECIFICATION, ANY INTELLECTUAL PROPERTY THEREIN, THE PROVISION OF OR FAILURE

    TO PROVIDE SUPPORT SERVICES, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY

    PROVISION OF THIS AGREEMENT, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING

    NEGLIGENCE), STRICT LIABILITY, BREACH OF CONTRACT OR BREACH OF WARRANTY OF

    MICROSOFT OR ANY SUPPLIER, AND EVEN IF MICROSOFT OR ANY SUPPLIER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

    9. LIMITATION OF LIABILITY AND REMEDIES. NOTWITHSTANDING ANY DAMAGES THAT YOU MIGHT INCUR FOR ANY REASON WHATSOEVER (INCLUDING, WITHOUT LIMITATION, ALL

    DAMAGES REFERENCED ABOVE AND ALL DIRECT OR GENERAL DAMAGES), THE ENTIRE

    LIABILITY OF MICROSOFT AND ANY OF ITS SUPPLIERS UNDER ANY PROVISION OF THIS

    AGREEMENT AND YOUR EXCLUSIVE REMEDY FOR ALL OF THE FOREGOING SHALL BE LIMITED TO THE GREATER OF THE AMOUNT ACTUALLY PAID BY YOU FOR THE SPECIFICATION OR

    U.S.$5.00. THE FOREGOING LIMITATIONS, EXCLUSIONS AND DISCLAIMERS SHALL APPLY TO THE

    MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS ITS

    ESSENTIAL PURPOSE.

    10. APPLICABLE LAW. This Agreement is governed by the laws of the State of Washington.

    11. ENTIRE AGREEMENT. This Agreement is the entire agreement between you and Microsoft relating to the Specification and it supersedes all prior or contemporaneous oral or written communications, proposals and representations with respect to the Specification.

Should you have any questions concerning this EULA, or if you desire to contact Microsoft for any reason,

    please contact the Microsoft subsidiary serving your country, or write: Microsoft Corporation, One Microsoft Way, Redmond, WA 98052-6399.

    ? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is

    subject to the terms of the End User License Agreement accompanying this specification.

     - Document Revision 01.20.03 - December, 2004 1

    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:

    ? To support efficient playback from digital media servers, HTTP servers, and local storage

    devices.

    ? To support scalable digital media types such as audio and video.

    ? To permit a single digital media composition to be presented over a wide range of

    bandwidths.

    ? To allow authoring control over digital media stream relationships, especially in

    constrained-bandwidth scenarios.

    ? To be independent of any particular digital media composition system, computer

    operating system, or data communications protocol.

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.

? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is subject to the terms of the End User License Agreement accompanying this

    specification.

     - Document Revision 01.20.03 - December, 2004 2

    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:

    ? "Shall" or ―must‖ indicates a mandatory requirement

    ? "Should" indicates a recommended, but optional, course of action

    ? "May" indicates an optional course of action

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

    ? Section 1 provides an introduction to ASF and how to navigate this document.

    ? Section 2 provides a high-level overview of the ASF file format organization.

    ? Sections 3 and 4 define the various objects that comprise the ASF Header Object.

    ? Section 5 describes the organization of the ASF Data Object.

    ? Section 6 documents the internals of the ASF top-level index objects.

? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is subject to the terms of the End User License Agreement accompanying this

    specification.

     - Document Revision 01.20.03 - December, 2004 3

    ? Section 7 documents various features of ASF and how to use them.

    ? Section 8 details how to create content that is compatible with many existing ASF reading

    implementations; this concept is referred to as ―content reach.

    ? Section 9 lists and describes standard ASF media types.

    ? Section 10 contains a list of the ASF GUIDs used throughout this document.

    ? Section 11 contains detailed information for specific codec data in ASF.

2. File format organization

    This section provides a high-level overview of the ASF file format organization.

2.1 ASF object definition

    The base unit of organization for ASF files is called the ASF object. It consists of a 128-bit GUID

    for the object, a 64-bit integer object size, and the variable-length object data. The value of the

    object size field is the sum of 24 bytes plus the size of the object data in bytes. The following

    diagram illustrates the ASF object structure:

    Object GUID (16 bytes)

    Object Size (8 bytes)

    Object Data (N >= 0

    bytes)

All ASF objects and structures (including data packet headers) are stored in little-endian byte

    order (the inverse of network byte order). However, ASF files can contain digital media stream

    data in either byte order within the data packets.

2.2 Top-level file structure

    ASF files are logically composed of three types of top-level objects: the Header Object, the

    Data Object, and the Index Object(s). The Header Object is mandatory and must be placed

    at the beginning of every ASF file. The Data Object is also mandatory and must follow the Header Object. The Index Object(s) are optional, but they are useful in providing time-based random access into ASF files. When present, the Index Object(s) must be the last object in the

    ASF file. The following diagram illustrates the top-level ASF file structure:

    ? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is subject to the terms of the End User License Agreement accompanying this

    specification.

Report this document

For any questions or suggestions please email
cust-service@docsford.com