previous   next   contents  

16. SMIL 2.1 Basic Profile and Scalability Framework

Editor
Nabil Layaïda, INRIA
SMIL 2.0 Editors
Kenichi Kubota, Panasonic
Aaron Cohen, Intel
Michelle Kim, IBM.

Table of contents

16.1 Abstract

SMIL 2.1 provides a scalability framework, where a family of scalable SMIL profiles can be defined using subsets of the SMIL 2.1 language profile. A SMIL document can be authored conforming to a scalable SMIL profile such that it provides limited functionality on a resource-constrained device while allowing richer capabilities on a more capable device. SMIL 2.1 Basic (or SMIL Basic) is a profile that meets the needs of resource-constrained devices such as minimum capability mobile phones. The SMIL Basic profile provides the basis for defining scalable SMIL profiles. SMIL Basic is SMIL host language conformant. It consists of precisely those modules that are required for SMIL host language conformance. This section defines the SMIL 2.1 Basic profile and requirements for conforming SMIL Basic documents and SMIL Basic user agents. More, it describes scalable SMIL profiles, guidelines for defining them, and their conformance requirements.


16.2 Introduction

This section is informative.

The Synchronized Multimedia Integration Language (SMIL) includes powerful functionality for various multimedia services for customers of various/differing preferences, ranging from desktops to ubiquitous information appliances such as minimum capability mobile phones, car navigation systems, television sets, and voice user agents. Each of these platforms has its specific capabilities and requirements. It is clear that not all of the SMIL 2.1 features will be required on all platforms. SMIL 2.1 modularization groups semantically related SMIL elements, attributes, and attribute values into a disjoint set of SMIL modules. These modules can then be recombined to produce a SMIL profile that meets the needs of different communities. For example, a hand held device, digital talking book player, or a mobile phone may only support a small subset of SMIL 2.1 modules in its own profile.

As such, a SMIL profile allows a SMIL user agent to implement only the subset of the SMIL 2.1 standard it needs, while maintaining document interoperability between device profiles built for different needs. SMIL 2.1 provides a framework for defining a family of scalable profiles. A scalable profile enables user agents of a wide range of complexity to render from a single, scalable, SMIL document intelligent presentations tailored to the capabilities of the target devices. Conformance to a SMIL Basic profile provides a basis for interoperability guarantees.

The advantages of scalable profiles are:

A scalable profile is defined, by extending the SMIL Basic profile, or any SMIL host language conformant profile using the content control facilities to support application/device specific features via a namespace mechanism. SMIL Basic is SMIL 2.1 host language conformant. It contains all the SMIL modules required for host language conformance. In fact, it contains only those modules required for host language conformance. A user agent is said to be SMIL Basic conformant if it can render documents at least as complex as those allowed by SMIL Basic. It may render significantly more complex documents to the extent it supports extensions. User agents conforming to the SMIL 2.1 language profile automatically conform to SMIL 2.1 Basic.

In SMIL 2.1, the scalability framework can also be applied between two host language profiles where one language is made of a strict subset of the modules of the other language. This is the scalability to profiles framework. The scalability to profiles framework allows, for example, the definition of a base line profile and a more advanced profile. It also allows constraining the modules used in the scalability of the base line profile to those of the advanced profile. In this case, the base line profile is said to be a scalable profile to the more advanced profile.

A scalable profile to a profile is defined by extending its set of modules using the content control facilities to support application/device specific features via a namespace mechanism. The scalable profile to a given profile must include the description of the language it scales to, for example by including a description of its namespace.

16.3 SMIL 2.1 Basic Profile

This section is normative.

16.3.1 Definition

SMIL 2.1 Basic Profile consists of the same set of modules that are required for SMIL Host Language Conformance in resource constrained devices. It includes the following SMIL 2.1 Modules:

While not strictly required, we strongly encourage languages based upon SMIL Basic to include the SyncbaseTiming module from SMIL 2.1 Timing and Synchronization using the scalable profiles mechanism, and for SMIL Basic User agents to support the module when device constraints are not prohibitive.

XML Namespace Declarations and Internationalization

XML namespace declaration using the xmlns and XML internationalization xml:lang attributes are supported on all elements.

16.3.2 Conformance of SMIL 2.1 Basic Documents

A SMIL Basic document is a "conforming" SMIL Basic document if it is a conforming SMIL 2.1 document.

16.3.3 Conformance of SMIL 2.1 Basic User Agents

A SMIL Basic user agent is a program which can parse SMIL 2.1 documents, process the subset of SMIL 2.1 functionality defined, and render the contents of the document onto output mediums. A conforming SMIL Basic user agent must meet all of the following criteria:

  1. In order to be consistent with the XML 1.1 Recommendation [XML11], the user agent must parse and evaluate a SMIL 2.1 document for well-formedness. If the user agent claims to be a validating user agent, it must also validate documents against their referenced DTDs according to [XML11].
  2. When the user agent claims to support the functionality of SMIL 2.1 through SMIL 2.1 elements and attributes and the semantics associated with these elements and attributes, it must do so in ways consistent with this specification.
  3. The user agent must be able to successfully parse any conforming SMIL 2.1 documents, and correctly implement the semantics of all supported SMIL 2.1 modules.
  4. The user agent must be able to successfully parse conforming SMIL 1.0 Documents and correctly implement the semantics of all supported SMIL 2.1 modules in the context of SMIL 1.0 compatible syntax.
  5. The user agent must completely support all SMIL 2.1 modules listed as required for host language conformance.
  6. The XML parser of the user agent must be able to parse and process XML constructs defined in [XML11] and Namespaces in XML [XML-NS].
  7. The user agent must ignore unimplemented attributes and elements. Unimplemented attributes should be treated as if they were not specified. Unimplemented elements should have the skip-content mechanism applied. If no skip-content attribute is declared, the value of true is assumed.
  8. The user agent must correctly evaluate all SMIL 2.1 namespace URIs when used with the systemRequired and system-required attributes.
  9. The default namespace recognized by the user agent will fall into one of four types:
    1. Default namespace recognized in its entirety by the user agent. The user agent should process the document as the recognized version. The skip-content mechanism (defined in the SkipContentControl module) will be applied to extension elements unrecognized by the user agent. Unqualified elements not part of the default namespace are illegal and must result in an error.

      Examples:

      • A pure SMIL 1.0 document:
        <smil xmlns="http://www.w3.org/TR/REC-smil">
         . . .
        </smil>
      • A pure SMIL 2.1 document:
        <smil xmlns="http://www.w3.org/2005/SMIL21/Language">
        . . .
        </smil>
      • A SMIL 1.0 document that has been extended to use the excl element:
        <smil xmlns="http://www.w3.org/TR/REC-smil"
              xmlns:smil21="http://www.w3.org/2005/SMIL21">
          <smil21:excl>
            ...
          </smil21:excl>
        </smil>
                    
      • A SMIL 2.1 document that has been extended to use the 'foo' element from a fictitious SMIL 3.0 version of SMIL:
        <smil xmlns="http://www.w3.org/2005/SMIL21/Language"
              xmlns:smil30="http://www.example.org/2005/SMIL30/">
          <smil30:foo>
            ...
          </smil30:foo>
        </smil>
                    
    2. No default namespace declaration is present in the document. The document will be processed as a SMIL 1.0 document.
    3. The namespace declaration is "http://www.w3.org/2001/SMIL20/Language". The document will be processed as a SMIL 2.0 document.
    4. Default namespace unrecognized. A SMIL user agent will not recognize the document as any version of SMIL and must issue an error.
  10. The user agent must support the following W3C Recommendations with regard to SMIL 2.1 content:

16.4 Scalable Profiles

This section is normative.

A scalable profile enables user agents of a wide range of complexity to render from a single, scalable, SMIL document intelligent presentations tailored to the capabilities of the target devices. A family of scalable SMIL profiles can be built using the Basic Profile plus additional sets of modules geared to the particular needs each profile addresses. A profile specifies scalability using the content control facilities to support application/device specific features via a namespace mechanism. This mechanism will enable the extension and sub-setting of SMIL 2.1 in a uniform way. The SMIL 2.1 namespace may be used with other XML namespaces as per [XML-NS], although such documents are not strictly conforming SMIL 2.1 documents as defined elsewhere. It is expected that future work by W3C may address ways to specify conformance for documents involving multiple namespaces.

16.4.1 Definition

A scalable SMIL 2.1 profile contains all the modules in the SMIL Basic Profile as defined above.

Additionally it may contain any one or more modules from the SMIL 2.1 Modules which are not part of SMIL 2.1 Basic.

XML namespace declaration using the xmlns attribute and XML internationalization xml:lang attributes are supported on all elements.

A scalable profile is specified by using the content control facilities via a namespace mechanism as follows:

  1. The systemRequired attribute specifies a set of modules that are to be added to SMIL Basic to support the profile. The profile is defined as the union of the modules in the SMIL 2.1 Basic profile and those specified in the systemRequired attribute.
  2. The systemRequired attribute can be specified either on the root smil element, or specified inline on elements other than the root element.

16.4.2 SMIL 2.1 Document Scalability Guidelines

This section is informative.

Here we present some scalability guidelines for SMIL Basic content authors that will enable their content to be played on the widest range of SMIL Basic and SMIL 2.1 Language conformant devices.

A SMIL 2.1 document must declare a namespace for its elements with its xmlns attribute at the smil root element with its identifier URI:

<smil xmlns="http://www.w3.org/2005/SMIL21/Language">
... </smil>

The default namespace must be xmlns="http://www.w3.org/2005/SMIL21/Language".

With the systemRequired attribute the author may specify what components of SMIL 2.1 are required to render the document.

Examples:

The SMIL namespace URI and module identifiers URIs are defined and reserved in SMIL 2.1 Modules. Namespace prefixes are set by the document author, e.g., "transition" and "layout". This provides authors with a means to express explicitly what additional modules are required to support the document.

The author may choose to explicitly qualify blocks of content with the systemRequired or system-required attributes. The following example contains the systemRequired attribute on the seq container within a switch, allowing the inclusion of the brush element when the "BrushMedia" test succeeds, and providing an image based alternative when the BrushMedia module is not supported:

<smil xmlns="http://www.w3.org/2005/SMIL21/Language" 
      xmlns:BrushMedia="http://www.w3.org/2005/SMIL21/BrushMedia" >
  <head>
    <layout>
      <region id="colorbox" top="0px" left="0px" height="50px" width="50px" />
    </layout>
  </head>
  <body>
    <switch>
      <seq systemRequired="BrushMedia">
        <brush dur="5s" color="#0000FF" region="colorbox"/>
        <brush dur="5s" color="#00FF00" region="colorbox"/>
        <brush dur="5s" color="#FF0000" region="colorbox"/>
      </seq>
      <seq>
        <img dur="5s" src="blue.jpg"  region="colorbox"/>
        <img dur="5s" src="green.jpg" region="colorbox"/>
        <img dur="5s" src="red.jpg"   region="colorbox"/>
      </seq>
    </switch>
  </body>
</smil>

The value of systemRequired attribute refers to the module identifier URI using the xmlns: name prefix, e.g. "BrushMedia". It is preferable that this name, as an identifier of the required module(s), be the module name defined in the SMIL 2.1 specification. The list of the module names is summarized in SMIL 2.1 Modules.

Note that there is an implied difference between the systemRequired on the smil element and an "inline" systemRequired on the other SMIL elements. The former is a hard requirement for rendering the document. For example, if the systemRequired on the smil element lists a module that the user agent does not support even though the module is not actually used in the document, the document is still prohibited from presentation by that user agent. 

Conversely, the use of the systemRequired attribute on other elements only specifies a requirement for rendering a sub-tree of the document. If some of the content of a presentation requires support beyond SMIL Basic and that specified on the systemRequired attribute on the smil element, the additional features should be wrapped with the switch element and system test attributes, which can then be evaluated by a user agent and be processed accordingly.

The SMIL 2.1 language profiles are organized from the least capable to the most capable as follows:

  1. SMIL 2.1 Basic Profile
  2. SMIL 2.1 Mobile Profile
  3. SMIL 2.1 Extended Mobile Profile
  4. SMIL 2.1 Language Profile

When extending a particular profile with additional modules, the namespace used in the extended profile should be that of the SMIL profile that includes the smallest superset of the modules needed to support the document. The systemRequired attribute should also be used and set to the original profile namespace together with the module(s) used in the extension.

For example, suppose the SMIL 2.1 Mobile Profile is to be extended with the exclusive time container module. The namespace used in documents for the extension should be set to the SMIL 2.1 Extended Mobile Profile namespace (which is the profile namespace that includes the smallest module superset containing the exclusive time container module) and the systemRequired attribute should be set to the SMIL 2.1 Mobile Profile namespace and the exclusive time container module namespace:

<smil xmlns="http://www.w3.org/2005/SMIL21/ExtentedMobile"
xmlns:smp="http://www.w3.org/2005/SMIL21/MobileProfile"
xmlns:excl="http://www.w3.org/2005/SMIL21/BasicExclTimeContainers"
systemRequired="smp+excl">
...
</smil>

Note that it is also possible to use the full SMIL 2.1 Language Profile namespace in the above example:

<smil xmlns="http://www.w3.org/2005/SMIL21/Language"
xmlns:smp="http://www.w3.org/2005/SMIL21/Mobile"
xmlns:excl="http://www.w3.org/2005/SMIL21/BasicExclTimeContainers"
systemRequired="smp+excl">
...
</smil>

This practice is NOT recommended because the resulting document will only be able to be processed by implementations that support the full SMIL 2.1 Language Profile, and not by implementations that support the more restricted SMIL 2.1 Extended Mobile Profile -- even though the Extended Mobile Profile provides all of the functionality required in the document.

16.4.3 Conformance of Scalable SMIL 2.1 Documents

A scalable SMIL document must be a conforming SMIL 2.1 document.

16.4.4 Conformance of Scalable User Agents

A conforming scalable user agent must conform to the requirements for SMIL Basic User Agents above.

A conforming user agent must implement as a minimum all the modules defined by the SMIL 2.1 Basic Profile.

The switch element and the system test attributes can be processed either by the client in the terminal, or by the server on the server side before delivery (perhaps after a CC/PP [CC/PP] negotiation).


previous   next   contents