W3C

Synchronized Multimedia Integration Language (SMIL 2.1)

W3C Recommendation 13 December 2005

This version:
http://www.w3.org/TR/2005/REC-SMIL2-20051213/
Latest SMIL 2 version:
http://www.w3.org/TR/SMIL2/
Latest SMIL Recommendation:
http://www.w3.org/TR/SMIL/
Previous version:
http://www.w3.org/TR/2005/PR-SMIL2-20050927/
Editors:
Dick Bulterman, CWI - Guido Grassel, Nokia - Jack Jansen, CWI - Antti Koivisto, Nokia - Nabil Layaïda, INRIA - Thierry Michel, W3C - Sjoerd Mullender, CWI - Daniel Zucker, Access Co., Ltd.

This document is also available in these non-normative formats: XML.This document is also available in these non-normative formats: single HTML file, zip archive.

Please refer to the errata for this document, which may include normative corrections.
See also translations.


Abstract

This document specifies the second version of the Synchronized Multimedia Integration Language (SMIL, pronounced "smile"). SMIL 2.1 has the following design goals:

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This document is a Recommendation of the W3C. It has been reviewed by W3C Members and other interested parties and has been endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited as a normative reference from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.

This SMIL 2.1 edition is a new version, it extends the functionalities contained in SMIL 2.0 [SMIL20], incorporating new features useful within the mobile industry.
This SMIL 2.1 W3C Recommendation supersedes the 07 January 2005 SMIL 2.0 Recommendation (Second Edition) [SMIL20].

The SMIL 2.1 test suite along with an implementation report are publicly released and are intended solely to be used as proof of SMIL 2.1 implementability. It is only a snapshot of the actual implementation behaviors at one moment of time, as these implementations may not be immediately available to the public. The interoperability data is not intended to be used for assessing or grading the performance of any individual implementation.

This document has been produced by the SYMM Working Group as part of the W3C Synchronized Multimedia Activity, following the procedures set out for the W3C Process. The goals of the SYMM Working Group are discussed in the SYMM Working Group Charter.

The patent policy for this document is the 5 February 2004 W3C Patent Policy. Patent disclosures relevant to this specification may be found on the SYMM Working Group's patent disclosure page.

An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy.

The authors of this document are the SYMM Working Group members. Different parts of the document have different editors.

Please report errors in this document to www-smil@w3.org - (public archives) including the prefix'[SMIL21 REC]' in the subject line.

Quick Table of Contents

Full Table of Contents

1. About SMIL 2.1

Editor
Thierry Michel, W3C.

1.1 Introduction

This section is informative.

This document specifies the extended 2.1 version of the Synchronized Multimedia Integration Language (SMIL, pronounced "smile"). SMIL 2.1 has the following design goals:

SMIL 2.1 is defined as a set of markup modules, which define the semantics and an XML syntax for certain areas of SMIL functionality.

1.2 Content of this Recommendation

This section is informative.

This specification is structured as a set of sections, each defining one or more modules:

This specification also defines four Profiles that are built using the above SMIL 2.1 modules.

1.3 Relation to SMIL 2.0

This section is informative.

SMIL 2.1 is a new version. It is build on top of SMIL 2.0.
A large number of SMIL 2.0 Modules [SMIL20-modules] remain the same in SMIL2.1.
SMIL 2.1 deprecates only a small number of SMIL 2.0 Modules.
SMIL 2.1 introduces new SMIL 2.1 Modules with extented functionalities.

SMIL 2.1 also defines new profiles that are built using the SMIL 2.0 modules [SMIL20] and SMIL 2.1 modules specified in this specification.

If this specification is approved as a W3C Recommendation, it will supersede the 07 January 2005 version of the SMIL 2.0 Recommendation (Second Edition) [SMIL20].

Note: SMIL document players, those applications that support playback of "application/smil+xml" documents, and host language conformant document profiles must support the deprecated SMIL 2.0 functionalities as well as the new SMIL 2.1 functionalities.

1.4 Summary of Changes for SMIL 2.1

This section is informative.

1- The following sections remain unchanged from SMIL 2.0 [SMIL20].

The modules, elements and attributes semantics in the following sections remain the same as in SMIL2.0.
The following sections links are the equivalent sections of the SMIL 2.0 Recommendation [SMIL20].

2- The following sections are updated from SMIL 2.0 [SMIL20].

In these sections, updated or new modules are introduced where new and updated elements or attributes semantics are specified. The following two profiles have also been updated:

3- The following sections introduce new Mobile Profiles.

1.5 Acknowledgements

This document has been prepared by the Synchronized Multimedia Working Group (SYMM-WG) of the World Wide Web Consortium.
The SYMM WG which specified SMIL 2.1 included the following individuals:

Dick Bulterman, CW - Marisa DeMeglio, DAISY Consortium - Yoshihisa Gonno, Sony Corporation - Guido Grassel, Nokia - Markku Hakkinen, DAISY Consortium - Erik Hodge, RealNetworks - Eric Hyche, RealNetworks - Jack Jansen, CWI - Hiroshi Kawamura, NRCD - Antti Koivisto, Nokia - Nabil Layaïda, INRIA - Vincent Mahe, France Telecom - Thierry Michel, W3C - Sjoerd Mullender, CWI - Xabiel García Pañeda, Universidad de Oviedo - Andrei Popescu, Nokia - Masaru Sugano, KDDI Corporation - Daniel Zucker, Access Co., Ltd.

The former SYMM WG which specified SMIL 2.0 included the following individuals:

Hanan Rosenthal, Canon - Jin Yu, Compaq - Pietro Marchisio, CSELT - Lynda Hardman, CWI - Jacco van Ossenbruggen, CWI - Lloyd Rutledge, CWI - Olivier Avaro, France Telecom - Ted Wugofski, Gateway (Invited Expert) - Masayuki Hiyama, Glocomm - Keisuke Kamimura, Glocomm - Michelle Y. Kim, IBM - Steve Wood, IBM - Jeff Boston, IBM - Nabil Layaïda, INRIA - Muriel Jourdan, INRIA - Aaron Cohen, Intel - Wayne Carr, Intel - Marcel Wong, Ericsson - Ken Day, Macromedia - Daniel Weber, Panasonic - Patrick Schmitz, Microsoft - Debbie Newman, Microsoft - Pablo Fernicola, Microsoft - Aaron Patterson, Microsoft - Kevin Gallo, Microsoft - Paul David, Microsoft - Don Cone, Netscape/AOL - Wo Chang, NIST - Didier Chanut, Nokia - Antti Koivisto, Nokia - Roberto Castagno, Nokia - Jack Jansen, Oratrix - Sjoerd Mullender, Oratrix - Dick Bulterman, Oratrix - Kenichi Kubota, Panasonic - Warner ten Kate, Philips - Ramon Clout, Philips - Jeff Ayars, RealNetworks - Erik Hodge, RealNetworks - Rob Lanphier, RealNetworks - Bridie Saccocio, RealNetworks - Eric Hyche, RealNetworks - Robin Haglund, RealNetworks - Geoff Freed, WGBH - Philipp Hoschka, W3C - Philippe Le Hégaret, W3C - Thierry Michel, W3C.

2. The SMIL 2.1 Modules

Editor:
Thierry MICHEL, W3C.

2.1 Introduction

This section is informative.

Since the publication of SMIL 1.0 [SMIL10], interest in the integration of SMIL concepts with the HTML, the HyperText Markup Language [HTML4], and other XML languages, has grown. Likewise, the W3C HTML Working Group has specified XHTML, the Extensible HyperText Markup Language [XHTML10], in preparation to subset, extend, and integrate it with other languages. The strategy considered for integrating respective functionality with other XML-based languages is based on the concepts of modularization and profiling [SMIL-MOD], [XMOD].

Modularization is an approach in which markup functionality is specified as a set of modules that contain semantically-related XML elements, attributes, and attribute values. Profiling is the creation of an XML-based language through combining these modules, in order to provide the functionality required by a particular application.

Profiling introduces the ability to tailor an XML-based language to specific needs, e.g. to optimize presentation and interaction for the client's capabilities. Profiling also adds the ability for integrating functionality from other markup languages, releasing the language designer from specifying that functionality. Moreover, it provides for consistency in markup through the use of the same model to incorporate a function. Identical constructs ease authoring, while at the user agent side there is a potential for re-use of code. For example, a scheduler supporting SMIL timing and synchronization functionality could be used for SMIL documents, XHTML+SMIL documents, and SVG documents.

Modularization enables language designers to specify dedicated markup intended for integration with other, existing, language profiles. Examples of specifications intended for such integration are MathML and XForms [MathML], [XFORMS].

Modularization and profiling use the extensibility properties of XML, and related technology like XML namespaces and XML Schema [XML11], [XML-NS], [XSCHEMA].

This part of the SMIL 2.1 specification describes the framework on which SMIL modularization and profiling is based, and specifies the SMIL 2.1 Modules, their identifiers, and the requirements for conformance within this framework.

2.1.1 Modularization and Profiling

This section is informative.

The modularization approach used in this specification derives from that set forth in XHTML Modularization [XMOD]. The framework on which SMIL modularization and profiling is based, is informally described here.

A Module is a collection of semantically-related XML elements, attributes, and attribute values that represents a unit of functionality. Modules are defined in coherent sets. This coherency is expressed in that the elements of these modules are associated with the same namespace.

A Language Profile is a combination of modules. Modules are atomic, i.e. they cannot be subset when included in a language profile. Furthermore, a module specification may include a set of integration requirements, to which language profiles that include the module must comply.

Commonly, there is a main language profile that incorporates nearly all the modules associated with a single namespace. For example, the SMIL 2.1 language profile uses most of the SMIL 2.1 modules. Usually, the same name is used to loosely reference both - "SMIL 2.1" in the example. Also, the name "profile" is used to mean "language profile".

Other language profiles can be specified that are subsets of the larger one, or that incorporate a mixture of modules associated with different namespaces. SMIL 2.1 Basic is an example of the first, XHTML+SMIL of the latter.

A special module in a language profile is the so-called Structure Module, in that it contains the root element of the language profile, e.g. <smil> or <html>. Any language profile that incorporates modules associated with a single namespace will include the Structure module associated with that namespace.

Other modules that require special mention are those that characterize the core of the functionality provided by the namespace. This is expressed by the notions of host language and integration set. Both of them relate to a set of conformance requirements for language profiles, which includes the requirement to incorporate at least the core set of modules. The set may be different for a host language and an integration set. A host language must incorporate the Structure module; an integration set need not. There may be other differences as well.

The main purpose of language profile conformance is to enhance interoperability. Preferably, the mandatory modules for host language conformance are defined in such a way that any document interchanged in a conforming language profile will yield a reasonable presentation when the document renderer, while supporting the associated mandatory module set, would ignore all other (unknown) elements and attributes. Here, "reasonable presentation" is to be understood as something intelligible, which is not necessarily a close reflection of the author's original intentions. To achieve the latter, a negotiation would have to be conducted to agree on the specific language profile to be used for the document interchange.

2.2 Summary of Changes for SMIL 2.1

This section is informative.

SMIL 2.1 specification provides three classes of changes to the SMIL Recommendation, among the ten functional areas;

  1. New Modules are introduced (e.g. BackgroundTilingLayout, FullScreenTransitionEffects)
  2. Former SMIL Modules are deprecated and replaced by new ones to allow differentiated features to be implemented in profiles without necessarily requiring support for all of the functionality of the former SMIL module. (This is the case for the HierarchicalLayout module and ExclTimeContainers module).
  3. Former SMIL Modules are revised allowing extended functionalities (example are AudioLayout, MultiWindowLayout)

The following functional areas are affected by SMIL2.1.

Timing

Layout

Media Object

Transitions

2.3 SMIL 2.1 Modules

This section is normative.

SMIL functionality is partitioned into ten functional areas. Within each functional area a further partitioning is applied into modules. All of these modules, and only these modules, are associated with the SMIL namespace.

The functional areas and their corresponding modules are:

Note: Modules marked with (**) are new Modules added in SMIL2.1. Modules marked with (*) are revised modules from SMIL

  1. Timing
    1. AccessKeyTiming
    2. BasicInlineTiming
    3. BasicTimeContainers
    4. BasicExclTimeContainers (**)
    5. BasicPriorityClassContainers (**)
    6. EventTiming
    7. FillDefault
    8. MediaMarkerTiming
    9. MinMaxTiming
    10. MultiArcTiming
    11. RepeatTiming
    12. RepeatValueTiming
    13. RestartDefault
    14. RestartTiming
    15. SyncbaseTiming
    16. SyncBehavior
    17. SyncBehaviorDefault
    18. SyncMaster
    19. TimeContainerAttributes
    20. WallclockTiming
  2. Time Manipulations
    1. TimeManipulations
  3. Animation
    1. BasicAnimation
    2. SplineAnimation
  4. Content Control
    1. BasicContentControl
    2. CustomTestAttributes
    3. PrefetchControl
    4. SkipContentControl
  5. Layout
    1. AlignmentLayout (**)
    2. AudioLayout
    3. BackgroundTilingLayout (**)
    4. BasicLayout (*)
    5. MultiWindowLayout (*)
    6. OverrideLayout (**)
    7. SubRegionLayout (**)
  6. Linking
    1. BasicLinking
    2. LinkingAttributes
    3. ObjectLinking
  7. Media Objects
    1. BasicMedia
    2. BrushMedia
    3. MediaAccessibility
    4. MediaClipping
    5. MediaClipMarkers
    6. MediaDescription
    7. MediaParam (*)
  8. Metainformation
    1. Metainformation
  9. Structure
    1. Structure
  10. Transitions
    1. BasicTransitions (*)
    2. InlineTransitions
    3. TransitionModifiers
    4. FullScreenTransitionEffects (**)

Each of these modules introduces a set of semantically-related elements, properties, and attributes. Each functional area has a corresponding section in this specification document. Further details on each of the modules is specified within those sections.

The modules may be independent or complementary. For example, the SyncMaster module requires and builds upon the SyncBehavior module, but the PrefetchControl and SkipContentControl modules are independent from each other. In addition, some modules require modules from other functional areas.

Modules specify their integration requirements. When one module requires another module for basic features and as a prerequisite for integration, a language profile must include the second module in order to include the first. The first module is said to be a dependent of the second module. Dependency may be nested, in that a module may be dependent on a module that is a dependent itself.

Table 1 presents the SMIL 2.1 modules and the modules they depend on.

Table 1: The SMIL 2.1 Modules and their Dependencies.
Module Dependencies
AccessKeyTiming NONE
AlignmentLayout BasicLayout
AudioLayout BasicLayout
BackgroundTilingLayout BasicLayout
BasicAnimation BasicInlineTiming
BasicContentControl NONE
BasicInlineTiming NONE
BasicExclTimeContainers NONE
BasicLayout NONE
BasicLinking NONE
BasicMedia NONE
BasicPriorityClassContainers BasicExclTimeContiners
BasicTimeContainers NONE
BasicTransitions NONE
BrushMedia NONE
CustomTestAttributes BasicContentControl
EventTiming NONE
ExclTimeContainers former SMIL module REMOVED in SMIL2.1
FillDefault BasicTimeContainers, and/or BasicExclTimeContainers, BasicPriorityClassContainers,

and/or TimeContainerAttributes

FullScreenTransitionEffects BasicTransitions
HierarchicalLayout former SMIL module REMOVED in SMIL2.1
InlineTransitions NONE
LinkingAttributes NONE
MediaAccessibility MediaDescription
MediaClipMarkers MediaClipping
MediaClipping BasicMedia
MediaDescription NONE
MediaMarkerTiming NONE
MediaParam BasicMedia
MetaInformation NONE
MinMaxTiming NONE
MultiArcTiming AccessKeyTiming, and/or BasicInlineTiming, and/or EventTiming, and/or
MediaMarkerTiming, and/or RepeatValueTiming, and/or
SyncbaseTiming, and/or WallclockTiming
MultiWindowLayout BasicLayout
ObjectLinking BasicLinking
OverrideLayout BasicLayout
PrefetchControl NONE
RepeatTiming NONE
RepeatValueTiming NONE
RestartDefault RestartTiming
RestartTiming NONE
SkipContentControl NONE