Re: [SMIL30 LC comment] 7.13.2 MediaPanZoom Module ( LC-1794)

Dick Bulterman <[email protected]> Sat, 27 Oct 2007 17:40:14 +0200
Newsgroups gmane.comp.web.smil
Message-ID <[email protected]>
Hello,

The new text will be published with the next release.
Here is an editor's draft copy (without the styling and images), but it 
does indicate the text changes.

-d.
PS: this text is not final and is subject to further change before 
publication.
smil-extended-media-object.html (text/html, 82.5 KB)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>SMIL 3.0 Media Object</title>
  <link rel="stylesheet" href="style/spec.css" type="text/css">
  <link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD.css"
  type="text/css">
</head>

<body>
<h1><a name="smilMediaNS">SMIL 3.0 Media Object</a></h1>
<dl>
  <dt><i>Editor for SMIL 3.0</i></dt>
    <dd>Dick Bulterman, CWI</dd>
    <dd>Eric Hyche, RealNetworks.</dd>
</dl>
<dl>
  <dt><i>Editor for SMIL 2.0</i></dt>
    <dd>Dick Bulterman, CWI</dd>
    <dd>Rob Lanphier, RealNetworks.</dd>
</dl>

<div class="ignore">
<!-- This section is optional and will be ignore during the publication
Do not use Headers H1, H2, H3 and DIV within this DIV class="ignore" section -->

<p><em>Last updated: $Date: 2007/10/26 07:49:41 $</em></p>

<p>ChangeLog</p>
<ul>
  <li>2007-10-08: LC1794 - the changes associated with the comment are:<br/>
1. Changed name of viewBox to panZoom (dcab)<br/>
2. Fixed two typo's in the examples.
3. added a note explaining the limitations of animating panZoom values.<br/>
(dcab)</li>
  <li>2007-10-24: editorial - Changed Namespace and added version and
baseProfile in all examples (Thierry)</li>
</ul>
</div>

<h2><a name="smilMediaNS-SummaryOfChanges">Changes for SMIL 3.0</a></h2>

<div class="informative">
<p><em>This section is informative.</em></p>

<p>There are three major changes to the Media Object modules for SMIL 3.0:
the first is the splitting of the SMIL 2.1 MediaParam module into two
modules: the <a href="#smilMediaNS-MediaParam">MediaParam</a> and <a
href="#smilMediaNS-MediaRenderAttributes">MediaRenderAttributes</a> modules;
the second is the introduction of the <a
href="#smilMediaNS-MediaOpacity">MediaOpacity</a> module, containing new
rendering attributes for chroma key and opacity control; the third is the
introduction of the <a href="#smilMediaNS-MediaPanZoom">MediaPanZoom</a>
module. The rationale for these changes is:</p>
<ol>
  <li>The splitting of the SMIL 2.1 MediaParam module provides a better
    differentiation of functionality, which can help user agent profile
    designers be more selective in the features they need to support.</li>
  <li>The MediaOpacity module is added to define control over various aspects
    of media opacity using the <span
    class="ainst-mediaOpacity ainst">mediaOpacity</span>, <span
    class="ainst-mediaBackgroundOpacity ainst">mediaBackgroundOpacity</span>,
    <span class="ainst-chromaKey ainst">chromaKey</span>, <span
    class="ainst-chromaKeyOpacity ainst">chromaKeyOpacity</span>, and <span
    class="ainst-chromaKeyTolerance ainst">chromaKeyTolerance</span>
    attributes.</li>
  <li>The MediaPanZoom module defines the <span
    class="ainst-panZoom ainst">panZoom</span> attribute to provide a
    framework for panning and zooming over media content. (This attribute is
    based largely on equivalent functionality in the SVG viewBox
  attribute.)</li>
</ol>

<p>The <a href="#smilMediaNS-MediaParam">MediaParam</a> module also includes
new text that explicitly discusses the behavior of adding the various media
control attributes defined in that section to a SMIL layout region definition
as a means of providing a global mechanism for applying default attribute
settings to all content rendered within that region.</p>

<p>A number of editorial changes have also been integrated into the various
Media Object modules descriptions; these do not impact the functionality
defined in earlier versions of SMIL.</p>
</div>

<h2><a name="smilMediaNS-Introduction">Introduction</a></h2>

<div class="informative">
<p><em>This section is informative.</em></p>

<p>This section defines the SMIL media object modules, which are composed of
the <a href="#smilMediaNS-BasicMedia">BasicMedia</a> module and nine modules
with additional functionality that build on top of the BasicMedia module: the
<a href="#smilMediaNS-BrushMedia">BrushMedia</a>, <a
href="#smilMediaNS-MediaClipping">MediaClipping</a>, <a
href="#smilMediaNS-MediaClipMarkers">MediaClipMarkers</a>, <a
href="#smilMediaNS-MediaParam">MediaParam</a>, <a
href="#smilMediaNS-MediaRenderAttributes">MediaRenderAttributes</a>, <a
href="#smilMediaNS-MediaOpacity">MediaOpacity</a>, <a
href="#smilMediaNS-MediaAccessibility">MediaAccessibility</a>, <a
href="#smilMediaNS-MediaDescription">MediaDescription</a>, and <a
href="#smilMediaNS-MediaPanZoom">MediaPanZoom</a> modules. These modules
contain elements and attributes used to reference external media objects or
control media object rendering behavior. Since these elements and attributes
are defined in a series of modules, designers of other markup languages can
reuse the SMIL media module when they need to include media objects into
their language.</p>

<p>The differences between current media object functionality and that
provided by the SMIL 1.0 specification are explained in <a
href="#smilMediaNS-changes">Appendix A</a>.</p>
</div>

<h2><a name="smilMediaNS-Definitions">Definitions</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>SMIL provides a number of timing-related concepts that are used to
determine activation, duration and termination of media objects in a
presentation. The temporal semantics of these concepts are discussed in the
SMIL 3.0 <a href="smil-timing.html">Timing and Synchronization</a> module.</p>
<dl>
  <dt><a name="smilMediaNS-intrinsicdur">Intrinsic Duration</a></dt>
    <dd>The duration of a referenced media item based on the temporal
      properties of that item (defined next), without any explicit SMIL
      timing markup. Some media objects have a well-defined notion of
      implicit duration (such as a 7 second audio clip), while other objects
      do not have well-defined durations (such as a string of plain text). In
      SMIL, the implicit duration for any media object that does not have a
      well-defined duration is set to be zero seconds. The implicit duration
      is used to calculate scheduling information; it is sometimes
      independent of the actual duration of a media object (such as with a
      live media stream or with an image with multiple internal frames when
      no particular duration can be derived by the SMIL scheduler). From a
      scheduling perspective, an object's intrinsic duration forms the basis
      for the <a href="smil-timing.html#Timing-DefiningSimpleDur">simple
      duration</a> of the object during presentation. This duration can be
      shortened or extended using SMIL timing markup.</dd>
  <dt><a name="smilMediaNS-continuous">Continuous Media</a></dt>
    <dd>Media objects, such as stored audio or video files, for which there
      is a measurable and well-understood duration. For example, a five
      second audio clip is continuous media, because it has a well-understood
      duration of five seconds. Opposite of "discrete media". See also the <a
      href="smil-timing.html#Timing-DiscreteContinuousMedia">definition of
      continuous media </a>in the Timing module.</dd>
  <dt><a name="smilMediaNS-discrete">Discrete Media</a></dt>
    <dd>Media objects, such as images or non-timed text data, that has no
      obvious duration. For example, a JPEG image is generally considered
      discrete media, because there's nothing in the file indicating how long
      the JPEG should be displayed. Opposite of "continuous media". See also
      the <a
      href="smil-timing.html#Timing-DiscreteContinuousMedia">definition of
      discrete media </a> in the Timing module.</dd>
</dl>

<p>The distinction between continuous and discrete media is sometimes
arbitrary and may be SMIL renderer dependent. For example, animated images
that do not have a well-defined duration (simply a repeating collection of
frames) are classified for SMIL scheduling purposes as being discrete media;
such objects have an intrinsic scheduling duration of zero seconds.</p>
</div>

<h2><a name="smilMediaNS-BasicMedia">SMIL BasicMedia Module</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>This module defines the baseline media functionality of a SMIL player.</p>

<h3>Media Object Elements - <a name="edef-ref"><span
class="edef">ref</span></a>, and its synonyms <a name="edef-animation"><span
class="edef">animation</span></a>, <a name="edef-audio"><span
class="edef">audio</span></a>, <a name="edef-img"><span
class="edef">img</span></a>, <a name="edef-text"><span
class="edef">text</span></a>, <a name="edef-textstream"><span
class="edef">textstream</span></a> and <a name="edef-video"><span
class="edef">video</span></a></h3>

<p>SMIL defines a single generic media object element that allows the
inclusion of external media objects into a SMIL presentation. Media objects
are included by reference (using a URI).</p>
<dl>
  <dt><span class="einst-ref einst">ref</span></dt>
    <dd>Generic media reference</dd>
</dl>

<p>In addition to the ref element, SMIL allows the use of the following set
of synonyms:</p>
<dl>
  <dt><span class="einst-animation einst">animation</span></dt>
    <dd>Animated vector graphics or other animated format</dd>
  <dt><span class="einst-audio einst">audio</span></dt>
    <dd>Audio clip</dd>
  <dt><span class="einst-img einst">img</span></dt>
    <dd>Still image, such as PNG or JPEG</dd>
  <dt><span class="einst-text einst">text</span></dt>
    <dd>External text reference</dd>
  <dt><span class="einst-textstream einst">textstream</span></dt>
    <dd>A text document that includes timing information for the purpose of
      time-dependent rendering of portions of the text document.</dd>
  <dt><span class="einst-video einst">video</span></dt>
    <dd>Video clip</dd>
</dl>

<p>All of these media elements are semantically identical. When playing back
an external media object, the player must not derive the exact type of the
media object from the name of the media object element. Instead, it must rely
solely on other sources about the type, such as the type information
communicated by a server or the operating system, or by using type
information contained in the <span class="ainst-media-type ainst">type</span>
attribute.</p>

<div class="informative">
<p><em>This section is informative.</em></p>

<p>Authors are encouraged to use meaningful synonyms (animation, audio, img,
video, text or textstream) when referencing external media objects. This is
in order to increase the readability of the SMIL document. Some SMIL
implementations may require the use of an element type that matches the
information type of the object. When in doubt about the group of a media
object, authors should use the generic "ref" element.</p>

<p>The animation element defined here should not be confused with the
elements defined in the SMIL 3.0 <a href="smil-animation.html">Animation
Module</a>. The animation element defined in this module is used to include
an external animation object file (such as a vector graphics animation) by
reference. This is in contrast to the elements defined in the Animation
module, which provide an in-line syntax for the animation of attributes and
properties of other elements.</p>

<p>SMIL 3.0 also supports the <span
class="einst-smilText einst">smilText</span> element for defining in-line
timed text content. This functionality is described in the <a
href="smil-text.html">smilText Modules</a> specification.</p>
</div>

<p>Anchors and links can be attached to visual media objects, i.e. media
objects rendered on a visual abstract rendering surface.</p>

<div class="adef-list">
<em>Attributes Definitions</em>

<p>Languages implementing the SMIL BasicMedia Module must define which
attributes may be attached to media object elements. In all languages
implementing the SMIL BasicMedia module, media object elements can have the
following attributes:</p>
<dl>
  <dt><a name="adef-src"><span class="adef">src</span></a></dt>
    <dd>The value of the src attribute is the <span class="normref">[[URI]]
      </span> of the media element, used for locating and fetching the
      associated media.
      <p>The attribute supports fragment identifiers and the '#' connector in
      the URI value. The fragment part is an id value that identifies one of
      the elements within the referenced media item. With this construct,
      SMIL 3.0 supports locators as currently used in HTML (that is, it uses
      locators of the form <span
      class="xml-example">http://www.example.org/some/path#anchor1</span>),
      with the difference that the values are of unique identifiers and not
      the values of "name" attributes. Generally speaking, this type of
      addressing implies that the target media is of a structured type that
      supports the concept of id, such as HTML or XML-based languages.</p>
      <p>Note that this attribute is not required. A media object with no
      <span class="ainst-src ainst">src</span> attribute has an intrinsic
      duration of zero, and participates in timing just as any other media
      element. No media will be fetched by the SMIL implementation for a
      media element without a <span class="ainst-src ainst">src</span>
      attribute.</p>
    </dd>
  <dt><a name="adef-media-type"><span class="adef">type</span></a></dt>
    <dd>Content type of the media object referenced by the <span
      class="ainst-src ainst">src</span> attribute. The usage of this
      attribute depends on the protocol of the <span
      class="ainst-src ainst">src</span> attribute.
      <dl>
        <dt>RTSP [[RTSP]]</dt>
          <dd>The <span class="ainst-media-type ainst">type</span> attribute
            is used for purposes of content selection and when the type of
            the referenced media is not otherwise available. It may be
            overridden by the contents of the RTSP DESCRIBE response or by
            the static RTP payload number.</dd>
        <dt>HTTP [[HTTP]]</dt>
          <dd>The <span class="ainst-media-type ainst">type</span> attribute
            is used for an ernative method of content selection and when the
            type of the referenced media is not otherwise available. It may
            override the contents of the "Content-type" field in an HTTP
            exchange only if a user has allowed such overrides, as specified
            in the TAG Finding Authoritative Metadata [[AM]]. The nominal
            precedence order for type resolution is: via the HTTP
            content-type field, via the type attribute, and then by using
            other clues (such as file inspection or use of the file
            extension).</dd>
        <dt>FTP [[FTP]] and local file playback URL [[URI]]</dt>
          <dd>The <span class="ainst-media-type ainst">type</span> attribute
            value takes precedence over other possible sources of the media
            type (for instance, the file extension).</dd>
      </dl>
      <p>When the content represented by a URL is available in many data
      formats, implementations MAY use the <span
      class="ainst-media-type ainst">type</span> value to influence which of
      the multiple formats is used. For instance, on a server implementing
      HTTP content negotiation, the client may use the <span
      class="ainst-media-type ainst">type</span> attribute to order the
      preferences in the negotiation. The <span
      class="ainst-media-type ainst">type</span> attribute is not intended
      for use in media sub-stream selection.</p>
      <p>For protocols not enumerated in this specification, implementations
      should use the following rules: When the media is encapsulated in a
      media file and delivered intact to the SMIL user agent via a protocol
      designed for delivery as a complete file, the media type as provided by
      this protocol should take precedence over the <span
      class="ainst-media-type ainst">type</span> attribute value. For
      protocols which deliver the media in a media-aware fashion, such as
      those delivering media in a manner using or dependent upon the specific
      type of media, the application of the type attribute is not defined by
      this specification.</p>
    </dd>
</dl>
</div>

<p><em>Element Content</em></p>

<p>Languages utilizing the SMIL BasicMedia module must define the complete
set of elements which may act as children of media object elements. There are
currently no required children of a media object defined in the BasicMedia
Module, but languages utilizing the BasicMedia module may impose requirements
beyond this specification.</p>

<h3><a name="smilMediaNS-BasicMedia-integration">Integration
Requirements</a></h3>

<p>If the including profile supports the XMLBase functionality <span
class="normref">[[XMLBase]] </span>, the values of the <span
class="ainst-src ainst">src</span> and <span
class="ainst-longdesc ainst">longdesc</span> attributes on the media object
elements must be interpreted in the context of the relevant XMLBase URI
prefix.</p>

<p>User-agent implementations are responsible for defining the rendering
behavior when fragment addressing is used in the <span
class="ainst-src ainst">src</span> attribute. Such definition should be added
to language profiles that wish to include specific media addressing features.
For example:<br>
- User-agents should define the default behavior for when referencing a
non-existing id in the target media document. <br>
- User-agents should define the rendering method for the selected media
fragment: in context, with or without highlighting and scrolling, or
stand-alone (selective rendering only). <br>
- User-agents should describe the timing implication for when addressing
timed-content.</p>

<p>SMIL 3.0 allows but does not require user agents to be able to process
XPointer values in the URI value of the src attribute. The SMIL 3.0 Linking
Module provides additional information related to XPointer.</p>
</div>

<h2><a name="smilMediaNS-MediaParam">SMIL MediaParam Module</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>This section defines the elements and attributes that make up the SMIL
MediaParam Module definition. The MediaParam module is intended to provide a
uniform mechanism for media object initialization. Languages implementing
elements and attributes found in the MediaParam module must implement all
elements and attributes defined below, as well as <a
href="#smilMediaNS-BasicMedia">BasicMedia</a>.</p>

<h3>The <a name="edef-param"><span class="edef">param</span></a> element</h3>

<p>The <span class="einst-param einst">param</span> element allows a general
parameter value to be sent to a media object renderer as a name/value pair.
This parameter is sent to the renderer at the time that the media object is
processed by the scheduler. It is up to the media renderer to associate an
action with the given param. The media renderer may choose to ignore any
unknown or inappropriate param values (such as sending a font size to an
audio object).</p>

<p>Any number of <span class="einst-param einst">param</span> elements may
appear (in any order) in the content of a media object element or in a <span
class="einst-paramGroup einst">paramGroup</span> element. If a given
parameter is defined multiple times, the lexically last version of that
parameter value should be used.</p>

<p>The syntax of names and values is assumed to be understood by the object's
implementation. The SMIL specification does not specify how user agents
should retrieve name/value pairs.</p>

<div class="adef-list">
<em>Attribute definitions</em>
<dl>
  <dt><a name="adef-param-name"><span class="adef">name</span></a></dt>
    <dd>(CDATA) This attribute defines the name of a run-time parameter,
      assumed to be known by the inserted object. Whether the property name
      is case-sensitive depends on the specific object implementation.</dd>
  <dt><a name="adef-param-value"><span class="adef">value</span></a></dt>
    <dd>(CDATA) This attribute specifies the value of a run-time parameter
      specified by <span class="ainst-param-name ainst">name</span>. Property
      values have no meaning to SMIL; their meaning is determined by the
      object in question.</dd>
  <dt><a name="adef-param-valuetype"><span
  class="adef">valuetype</span></a></dt>
    <dd>["data"|"ref"|"object"] This attribute specifies the type of the
      <span class="ainst-param-value ainst">value</span> attribute. Possible
      values:
      <ul>
        <li><span class="avalue">data:</span> This is default value for the
          attribute. It means that the value specified by <span
          class="ainst-param-value ainst">value</span> will be evaluated and
          passed to the object's implementation as a string.</li>
        <li><span class="avalue">ref:</span> The value specified by <span
          class="ainst-param-value ainst">value</span> is a URI <span
          class="normref">[[URI]] </span>that designates a resource where
          run-time values are stored. This allows support tools to identify
          URIs given as parameters. The URI must be passed to the object
          <strong>as is</strong>, i.e., unresolved.</li>
        <li><span class="avalue">object:</span> The value specified by <span
          class="ainst-param-value">value</span> is an identifier that refers
          to a media object declaration in the same document. The identifier
          must be the value of the <span class="ainst-id ainst">id</span>
          attribute set for the declared media object element.</li>
      </ul>
    </dd>
  <dt><a name="adef-param-type"><span class="adef">type</span></a></dt>
    <dd>This attribute specifies the content type of the resource designated
      by the <span class="ainst-param-value ainst">value</span> attribute
      <strong>only</strong> in the case where <span
      class="ainst-param-valuetype">valuetype</span> is set to "ref". This
      attribute thus specifies for the user agent, the type of values that
      will be found at the URI designated by <span
      class="ainst ainst-param-value">value</span>. See <a
      href="http://www.w3.org/TR/html4/types#type-content-type">6.7 Content
      Type</a> in <span class="informref">[[HTML4]]</span> for more
      information.</dd>
</dl>
</div>

<p><em>Example</em></p>

<div class="informative">
<p><em>This section is informative.</em></p>
To illustrate the use of <span class="einst-param einst">param</span>,
suppose that we have a facial animation plug-in that is able to accept
different moods and accessories associated with characters. These could be
defined in the following way:
<pre>&lt;ref src="http://www.example.com/herbert.face"&gt;
  &lt;param name="mood" value="surly" valuetype="data"/&gt;
  &lt;param name="accessories" value="baseball-cap,nose-ring" valuetype="data"/&gt;
&lt;/ref&gt;</pre>
</div>

<h3 id="smilMediaNS-MediaParam-paramGroupDef">The <a
name="edef-paramGroup"></a><span class="edef">paramGroup</span> element</h3>

<p>The <span class="einst-paramGroup einst">paramGroup</span> element
provides a convenience mechanism for defining a collection of media
parameters that may be reused with several different media objects. If
present, the <span class="einst-paramGroup einst">paramGroup</span> element
must appear in the <span class="einst-head einst">head</span> section of the
document. The content of the <span
class="einst-paramGroup einst">paramGroup</span> element consists of zero or
more <span class="einst-param einst">param</span> elements. The <span
class="einst-paramGroup einst">paramGroup</span> element may not contain
nested <span class="einst-paramGroup einst">paramGroup</span> element
definitions.</p>

<div class="attdef-list">
<p><b>Element attributes</b></p>
<dl>
  <dt><a name="adef-paramGroup-id"><span class="adef">id</span></a></dt>
    <dd>This attribute specifies the ID by which the param group is
      referenced in a media object reference.</dd>
</dl>
</div>

<p><em>Examples</em></p>

<div class="informative">
<p><em>This section is informative.</em></p>

<p>This section contains several fragments that illustrate uses of the <span
class="einst-param'roup einst">paramGroup</span> element.</p>

<p>In the following fragment, a paramGroup is created to define parameters
that are passed to several different media objects:</p>
<pre>&lt;smil ... &gt;
  &lt;head&gt;
    ...
    &lt;paramGroup xml:id="clown"&gt;
       &lt;param name="mood" value="upBeat" valuetype="data"/&gt;
       &lt;param name="accessories" value="flowers,dunceCap"/&gt;
    &lt;/paramGroup&gt;
    ...
  &lt;/head&gt;
  &lt;body&gt;
    ...
    &lt;ref src="http://www.example.com/andy.face" paramGroup="clown"/&gt;
    ...
    &lt;ref src="http://www.example.com/sally.face" paramGroup="clown"/&gt;
    ...
  &lt;/body&gt;
&lt;/smil&gt;</pre>

<p>In the following example, a media object provides an additional param
value:</p>
<pre>&lt;smil ... &gt;
  &lt;head&gt;
    ...
    &lt;paramGroup xml:id="clown"&gt;
       &lt;param name="mood" value="upBeat" valuetype="data"/&gt;
       &lt;param name="accessories" value="flowers,dunceCap"/&gt;
    &lt;/paramGroup&gt;
    ...
  &lt;/head&gt;
  &lt;body&gt;
    ...
    &lt;ref src="http://www.example.com/andy.face" paramGroup="clown"&gt;
      &lt;param name="gender" value="male"/&gt;
    &lt;/ref&gt;
    ...
  &lt;/body&gt;
&lt;/smil&gt;</pre>

<p>In this final example, a media object provides a duplicate param value.
The behavior in this case depends on the media renderer; all param values are
passed to the renderer in the lexical order of the SMIL source file. It is
expected that the lexically last value for any parameter sent to the renderer
be used, if possible.</p>
<pre>&lt;smil ... &gt;
  &lt;head&gt;
    ...
    &lt;paramGroup xml:id="clown"&gt;
       &lt;param name="mood" value="upBeat" valuetype="data"/&gt;
       &lt;param name="accessories" value="flowers,dunceCap"/&gt;
    &lt;/paramGroup&gt;
    ...
  &lt;/head&gt;
  &lt;body&gt;
    ...
    &lt;ref src="http://www.example.com/andy.face" paramGroup="clown"&gt;
      &lt;param name="gender" value="male"/&gt;
      &lt;param name="mood" value="depressed" valuetype="data"/&gt;
    &lt;/ref&gt;
    ...
  &lt;/body&gt;
&lt;/smil&gt;</pre>
</div>

<h3>Element Attributes for Media Object Initialization</h3>

<p>In addition to the element attributes defined in <a
href="#smilMediaNS-BasicMedia">BasicMedia</a>, media object elements and
layout regions may add the media initialization attribute defined below.</p>

<div class="adef-list">
<dl>
  <dt><a name="adef-paramGroup"><span class="adef">paramGroup</span></a></dt>
    <dd>Used to specify the name of a <span
      class="einst-paramGroup einst">paramGroup</span> that was defined in
      the document <span class="einst-head einst">head</span>. The value is a
      single IDREF that refers to the ID of a <span
      class="einst-paramGroup einst">paramGroup</span> element. If the named
      <span class="einst-paramGroup einst">paramGroup</span> does not exist,
      this attribute is ignored. If this attribute is defined on a SMIL
      layout region definition, it specifies a default value for all content
      displayed within that region.</dd>
</dl>
</div>

<h3><a name="smilMediaNS-MediaParam-integration">Integration
Requirements</a></h3>

<p>Any profile that integrates the functionality of this module is strongly
encouraged to define a set of common parameter names that may be used to
initialize common media object types for that profile. This can significantly
increase interoperability of user agents and media rendering libraries.</p>

<p>The supported uses of the <span class="ainst-param-type ainst">type</span>
and <span class="ainst-param-valuetype ainst">valuetype</span> attributes on
the <span class="einst-param einst">param</span> element must be specified by
the integrating profile. If a profile does not specify this, the <span
class="ainst-param-type ainst">type</span> and <span
class="ainst-param-valuetype ainst">valuetype</span> attributes will be
ignored in that profile.</p>
</div>

<h2><a name="smilMediaNS-MediaRenderAttributes">SMIL MediaRenderAttributes
Module</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>This section defines the elements and attributes that make up the SMIL
MediaRenderAttributes Module definition. Languages implementing elements and
attributes found in the MediaRenderAttributes module must implement all
elements and attributes defined below, as well as <a
href="#smilMediaNS-BasicMedia">BasicMedia</a>.</p>

<h3>Elements</h3>

<p>This module does not define any elements.</p>

<h3>Element Rendering Attributes for All Media Objects</h3>

<p>In addition to the element attributes defined in <a
href="#smilMediaNS-BasicMedia">BasicMedia</a>, media object elements and
layout regions may have the attributes and attribute extensions defined
below.</p>

<div class="adef-list">
<dl>
  <dt><a name="adef-erase"><span class="adef">erase</span></a></dt>
    <dd>Controls the behavior of the media object after the effects of any
      timing are complete. For example, when SMIL Timing is applied to a
      media element, erase controls the display of the media when the active
      duration of the element and when the freeze period defined by the <span
      class="ainst-fill ainst">fill</span> attribute is complete (see <a
      href="smil-timing.html">SMIL Timing and Synchronization module</a>). If
      this attribute is defined on a SMIL layout region definition, it
      specifies a default value for all content displayed within that region.
      <p>Values:</p>
      <dl>
        <dt><span class="avalue">whenDone</span> (default)</dt>
          <dd>When this is specified (or implied) the media removal occurs at
            the end of any applied timing.</dd>
        <dt><span class="avalue">never</span></dt>
          <dd>When this value is specified, the last state of the media is
            kept displayed until the display area is reused (or if the
            display area is already being used by another media object). Any
            profile that integrates this element must define what is meant by
            "display area" and further define the interaction. Intrinsic
            hyperlinks (e.g., Flash, HTML) and explicit hyperlinks (e.g.,
            <span class="einst-area einst">area</span>, <span
            class="einst-a einst">a</span>) stay active as long as the
            hyperlink is displayed. If timing is re-applied to an element,
            the effect of the erase=<span class="avalue">never</span> is
            cleared. For example, when an element is restarted according to
            the <a href="smil-timing.html">SMIL Timing and Synchronization
            module</a>, the element is cleared immediately before it
          restarts.</dd>
      </dl>
      <p>Example:</p>

      <div class="informative">
      <p><em>This section is informative.</em></p>
      <pre>&lt;par&gt;
  &lt;seq&gt;
    &lt;par&gt;
      &lt;img src="image1.jpg" region="foo1" fill="freeze" erase="never" .../&gt;
      &lt;audio src="audio1.au"/&gt;        
    &lt;/par&gt;

    &lt;par&gt;
      &lt;img src="image2.jpg" region="foo2" fill="freeze" erase="never" .../&gt;
      &lt;audio src="audio2.au"/&gt;        
    &lt;/par&gt;
     ...
    &lt;par&gt;
      &lt;img src="imageN.jpg" region="fooN" fill="freeze" erase="never" .../&gt;
      &lt;audio src="audioN.au"/&gt;        
    &lt;/par&gt;
  &lt;/seq&gt;
&lt;/par&gt;</pre>
      <p>In this example, each image is successively displayed and remains
      displayed until the end of the presentation.</p>
      </div>
    </dd>
  <dt><a name="adef-mediaRepeat"><span
  class="adef">mediaRepeat</span></a></dt>
    <dd>Used to strip the intrinsic repeat value of the underlying media
      object. The interpretation of this attribute is specific to the media
      type of the media object, and is only applicable to those media types
      for which there is a definition of a repeat value found in the media
      type format specification. Media type viewers used in SMIL
      implementations will need to expose an interface for controlling the
      repeat value of the media for this attribute to be applied. For all
      media types where there is an expectation of interoperability between
      SMIL implementations, there should be a formal specification of the
      exact repeat value to which the mediaRepeat attribute applies. If this
      attribute is defined on a SMIL layout region definition, it specifies a
      default value for all content displayed within that region.
      <p>Values:</p>
      <dl>
        <dt><span class="avalue">strip</span></dt>
          <dd>Strip the intrinsic repeat value of the media object.</dd>
        <dt><span class="avalue">preserve</span> (default)</dt>
          <dd>Leave the intrinsic repeat value of the media object
          intact.</dd>
      </dl>
      <p>As an example of how this would be used, many animated GIFs
      intrinsically repeat indefinitely. The application of <span
      class="ainst-mediaRepeat ainst">mediaRepeat</span>= "<span
      class="avalue">strip</span>" allows an author to remove the intrinsic
      repeat behavior of an animated GIF on a per-reference basis, causing
      the animation to display only once, regardless of the repeat value
      embedded in the GIF.</p>
      <p>When <span class="ainst-mediaRepeat ainst">mediaRepeat</span> is
      used in conjunction with SMIL Timing Module attributes, this attribute
      is applied first, so that the repeat behavior can then be controlled
      with the SMIL Timing Module attributes such as <span
      class="ainst-repeatCount ainst">repeatCount</span> and <span
      class="ainst-repeatDur ainst">repeatDur</span>.</p>
    </dd>
  <dt><a name="adef-sensitivity"><span
  class="adef">sensitivity</span></a></dt>
    <dd>Used to provide author control over the sensitivity of media to user
      interface selection events, such as the SMIL 2.1 activateEvent, and
      hyperlink activation. If the media is sensitive at the event location,
      it captures the event, and will not pass the event through to
      underlying media objects.  If not, it allows the event to be passed
      through to any media objects lower in the display hierarchy. If this
      attribute is defined on a SMIL layout region definition, it specifies a
      default value for all content displayed within that region. 
      <p>Values:</p>
      <dl>
        <dt><span class="avalue">opaque</span></dt>
          <dd>The media is sensitive to user interface selection events over
            the entire area of the media.  This is the default. </dd>
        <dt><span class="avalue">transparent</span></dt>
          <dd>The media is not sensitive to user interface selection events
            over the entire area of the media. Any user interface selection
            events will be "passed through" to any underlying media.</dd>
        <dt><i><span class="avalue">percentage-value</span></i></dt>
          <dd>The media sensitivity to user interface selection events is
            dependent upon the opacity of the media at the location of the
            event (the alpha channel value). If rendered media supports an
            alpha channel and the opacity of the media is less than the given
            percentage value at the event location, the behavior will be
            <span class="avalue">transparent </span>as specified above.
            Otherwise the behavior will be as <span
            class="avalue">opaque</span>. Valid values are non-negative <a
            href="http://www.w3.org/TR/REC-CSS2/syndata.html#percentage-units">CSS2
            percentage values</a>.</dd>
      </dl>
    </dd>
</dl>
</div>

<h3><a name="smilMediaNS-MediaRenderAttributes-integration">Integration
Requirements</a></h3>

<p>Any profile that supports the <span class="ainst-erase ainst">erase</span>
attribute must define what is meant by "display area" and further define the
interaction. See the definition of <span
class="ainst-erase ainst">erase</span> for more details.</p>
</div>

<h2><a name="smilMediaNS-MediaOpacity">SMIL MediaOpacity Module</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>This section defines the elements and attributes that make up the SMIL
MediaOpacity Module definition. Languages implementing elements and
attributes found in the MediaOpacity module must implement all elements and
attributes defined below, as well as <a
href="#smilMediaNS-BasicMedia">BasicMedia</a>.</p>

<h3>Elements</h3>

<p>This module does not define any elements.</p>

<h3>Element Attributes for All Media Objects</h3>

<p>In addition to the element attributes defined in <a
href="#smilMediaNS-BasicMedia">BasicMedia</a>, media object elements and
layout regions may have the attributes and attribute extensions defined
below.</p>

<div class="adef-list">
<dl>
  <dt><a name="adef-chromaKey"><span class="adef">chromaKey</span></a></dt>
    <dd>This attribute defines the color to be used for chroma key opacity
      manipulation. It accepts a single CSS2 color value. If media objects or
      implementations cannot support manipulation of the chroma key value,
      this attribute is ignored. If this attribute is defined on a SMIL
      layout region definition, it specifies a default value for all content
      displayed within that region.</dd>
  <dt><a name="adef-chromaKeyOpacity"><span
  class="adef">chromaKeyOpacity</span></a></dt>
    <dd>This attribute defines the opacity of the chroma key value defined
      with the <span class="ainst-chromaKey ainst">chromaKey</span>
      attribute. It accepts a percentage value in the range 0-100%, with 100%
      meaning fully opaque. If a chroma key color is defined, the default
      value is <span class="avalue">0%</span> (fully transparent). If no
      chroma key color is defined or if implementations cannot support
      manipulation of the media opacity value, this attribute is ignored. If
      this attribute is defined on a SMIL layout region definition, it
      specifies a default value for all content displayed within that
    region.</dd>
  <dt><a name="adef-chromaKeyTolerance"><span
  class="adef">chromaKeyTolerance</span></a></dt>
    <dd>This attribute defines a color value that specifies a tolerance value
      that is added and subtracted from the effective chroma key. If a chroma
      key color was defined, the default value of this attribute is <span
      class="avalue">#000000</span>. If no chroma key color was defined or if
      implementations cannot support manipulation of the chroma key value,
      this attribute is ignored. If this attribute is defined on a SMIL
      layout region definition, it specifies a default value for all content
      displayed within that region.</dd>
  <dt><a name="adef-mediaOpacity"><span
  class="adef">mediaOpacity</span></a></dt>
    <dd>This attribute defines the opacity of the media object. It accepts a
      percentage value in the range 0-100%, with 100% meaning fully opaque.
      If implementations cannot support manipulation of the media opacity
      value, this attribute is ignored. The default value of this attribute
      is <span class="avalue">100%</span>. If this attribute is defined on a
      SMIL layout region definition, it specifies a default value for all
      content displayed within that region.</dd>
  <dt><a name="adef-mediaBackgroundOpacity"><span
  class="adef">mediaBackgroundOpacity</span></a></dt>
    <dd>This attribute defines the background color opacity of the media
      object for media objects that explicitly define a media background
      color. It accepts a percentage value in the range 0-100%, with 100%
      meaning fully opaque. If either media objects or implementations cannot
      support manipulation of the media background color opacity, this
      attribute is ignored. The default value of this attribute is <span
      class="avalue">100%</span>. If this attribute is defined on a SMIL
      layout region definition, it specifies a default value for all media
      background opacity displayed within that region.</dd>
</dl>
</div>

<div class="informative">
<p><em>This section is informative.</em></p>

<p>The attributes in this module allow the opacity (that is, the degree to
which a media object is transparent) to be defined. Opacity can be controlled
in several ways, depending on the type of media being used. For unstructured
media (that is, media that does not contain an explicitly-defined background
color), the chromaKey attribute can be used to identify a particular color
that will serve as the background color for purposes of opacity manipulation.
If a chromaKey is used, the chromaKeyOpacity attribute can specify the degree
of transparency desired. Since the color used to define a background may not
be exactly preserved within a media object, the chromaKeyTolerance attribute
allows a tolerance range to be defined for the chroma key color.</p>

<p>Some media objects, such as Reext, smilText, GIF, PNG, and Flash, define
an explicit background color. In these cases, the specification of the
opacity of that color can be done using the mediaBackgroundOpacity attribute.
In these cases, only the defined color is manipulated.</p>

<p>In addition to specifying the transparency level of a particular
background color, SMIL also allows the specification of the transparency
level of a total media object. This is accomplished using the mediaOpacity
attribute.</p>

<p>Note that SMIL layout also defines the <span
class="ainst-backgroundOpacity ainst">backgroundOpacity</span> attribute to
control the transparency of a layout region.</p>
</div>

<h3><a name="smilMediaNS-MediaOpacity-integration">Integration
Requirements</a></h3>

<p>This module does not introduce any special integration constraints.</p>
</div>

<h2><a name="smilMediaNS-MediaClipping">SMIL MediaClipping Module</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>This section defines the attributes that make up the SMIL MediaClipping
Module definition. Languages implementing the attributes found in the
MediaClipping module must implement the attributes defined below, as well as
<a href="#smilMediaNS-BasicMedia">BasicMedia</a>.</p>

<h3><a name="smilMediaNS-MediaClipping-attributes">MediaClipping
Attributes</a></h3>

<div class="adef-list">
<dl>
  <dt><span class="adef"><a name="adef-clipBegin">clipBegin</a></span> <span
  class="adef">(<a name="adef-clip-begin">clip-begin</a>)</span></dt>
    <dd>The clipBegin attribute specifies the beginning of a sub-clip of a
      continuous media object as offset from the start of the media object.
      This offset is measured in normal media playback time from the
      beginning of the media.<br>
      Values in the clipBegin attribute have the following syntax:
      <pre>Clip-value-MediaClipping ::= [ Metric "=" ] ( Clock-val | Smpte-val )
Metric            ::= Smpte-type | "npt" 
Smpte-type        ::= "smpte" | "smpte-30-drop" | "smpte-25"
Smpte-val         ::= Hours ":" Minutes ":" Seconds 
                      [ ":" Frames [ "." Subframes ]]
Hours             ::= Digit+ 
                  /* see XML 1.0 for a definition of ´Digit´*/
Minutes           ::= Digit Digit; range from 00 to 59
Seconds           ::= Digit Digit; range from 00 to 59

Frames            ::= Digit Digit; smpte range = 00-29, smpte-30-drop range = 00-29, smpte-25 range = 00-24
Subframes         ::= Digit Digit; smpte range = 00-01, smpte-30-drop range = 00-01, smpte-25 range = 00-01
      
 </pre>
      <p>The value of this attribute consists of a metric specifier, followed
      by a time value whose syntax and semantics depend on the metric
      specifier. The following formats are allowed:</p>
      <dl>
        <dt>SMPTE Timestamp</dt>
          <dd>SMPTE time codes <span class="normref">[[SMPTE]]</span> can be
            used for frame-level access accuracy. The metric specifier can
            have the following values:
            <dl>
              <dt>smpte</dt>
              <dt>smpte-30-drop</dt>
                <dd>These values indicate the use of the "SMPTE 30 drop"
                  format (approximately 29.97 frames per second), as defined
                  in the SMPTE specification (also referred to as "NTSC drop
                  frame"). The "frames" field in the time value can assume
                  the values 0 through 29. The difference between 30 and
                  29.97 frames per second is handled by dropping the first
                  two frame indices (values 00 and 01) of every minute,
                  except every tenth minute.</dd>
              <dt>smpte-25</dt>
                <dd>The "frames" field in the time specification can assume
                  the values 0 through 24. This corresponds to the PAL
                  standard as noted in <span
                class="normref">[[SMPTE]]</span></dd>
            </dl>
            <p>The time value has the format
            hours:minutes:seconds:frames.subframes. If the subframe value is
            zero, it may be omitted. Subframes are measured in one-hundredths
            of a frame.<br>
            Examples:<br>
            <code>clipBegin="smpte=10:12:33"</code></p>

            <div class="informative">
            <p><em>This section is informative.</em></p>
            <p>The introduction of subframe notation in SMIL 2.1 introduced
            an inconsistency with SMIL 1.0. As of this draft, SMIL 3.0 has
            deprecated the subframe notation.</p>
            </div>
          </dd>
        <dt>Normal Play Time</dt>
          <dd>Normal Play Time expresses time in terms of SMIL clock values.
            The metric specifier is "npt", and the syntax of the time value
            is identical to the syntax of SMIL clock values.<br>
            Examples:<br>
            <code>clipBegin="npt=123.45s"<br>
            clipBegin="npt=12:05:35.3</code>"</dd>
        <dt>Marker</dt>
          <dd>Not defined in this module. See <a
            href="#avalue-clipBegin-marker">clipBegin Media Marker</a>
            attribute extension in the MediaClipMarkers module.</dd>
      </dl>
      <p>If no metric specifier is given, then a default of "npt=" is
      presumed.</p>
      <p>When used in conjunction with the timing attributes from the SMIL
      Timing Module, this attribute is applied before any SMIL Timing Module
      attributes.</p>
      <p><span class="ainst-clipBegin ainst">clipBegin</span> may also be
      expressed as <span class="ainst-clipBegin ainst">clip-begin</span> for
      compatibility with SMIL 1.0. Software supporting the SMIL 2.1 Language
      Profile must be able to handle both <span
      class="ainst-clipBegin ainst">clipBegin</span> and <span
      class="ainst-clipBegin ainst">clip-begin</span>, whereas software
      supporting only the SMIL MediaClipping module only needs to support
      <span class="ainst-clipBegin ainst">clipBegin</span>. If an element
      contains both a <span class="ainst-clipBegin ainst">clipBegin</span>
      and a <span class="ainst-clipBegin ainst">clip-begin</span> attribute,
      then <span class="ainst-clipBegin ainst">clipBegin</span> takes
      precedence over <span
      class="ainst-clipBegin ainst">clip-begin</span>.</p>
      <p>Example:</p>
      <pre class="xml-example">&lt;audio src="radio.wav" clip-begin="5s" clipBegin="10s" /&gt;</pre>
      <p>The clip begins at second 10 of the audio, and not at second 5,
      since the <span class="ainst-clipBegin ainst">clip-begin</span>
      attribute is ignored. A strict SMIL 1.0 implementation will start the
      clip at second 5 of the audio, since the clipBegin attribute will not
      be recognized by that implementation. See <a
      href="#smilMediaNS-changes">Changes to SMIL 1.0 Media Object
      Attributes</a> for more discussion on this topic.</p>
    </dd>
  <dt><span class="adef"><a name="adef-clipEnd">clipEnd</a></span> <span
  class="adef"><a name="adef-clip-end">(clip-end)</a></span></dt>
    <dd>The clipEnd attribute specifies the end of a sub-clip of a continuous
      media object as offset from the start of the media object. This offset
      is measured in normal media playback time from the beginning of the
      media. It uses the same attribute value syntax as the clipBegin
      attribute.<br>
      If the value of the <span class="ainst-clipEnd ainst">clipEnd</span>
      attribute exceeds the duration of the media object, the value is
      ignored, and the clip end is set equal to the effective end of the
      media object. <span class="ainst-clipEnd ainst">clipEnd</span> may also
      be expressed as <span class="ainst-clipEnd ainst">clip-end</span> for
      compatibility with SMIL 1.0. Software supporting the SMIL 2.1 Language
      Profile must be able to handle both <span
      class="ainst-clipEnd ainst">clipEnd</span> and <span
      class="ainst-clipEnd ainst">clip-end</span>, whereas software
      supporting only the SMIL media object module only needs to support
      <span class="ainst-clipEnd ainst">clipEnd</span>. If an element
      contains both a <span class="ainst-clipEnd ainst">clipEnd</span> and a
      <span class="ainst-clipEnd ainst">clip-end</span> attribute, then <span
      class="ainst-clipEnd ainst">clipEnd</span> takes precedence over <span
      class="ainst-clipEnd ainst">clip-end</span>. When used in conjunction
      with the timing attributes from the SMIL Timing Module, this attribute
      is applied before any SMIL Timing Module attributes.
      <p>See <a href="#smilMediaNS-changes">Changes to SMIL 1.0 Media Object
      Attributes</a> for more discussion on this topic.</p>
    </dd>
</dl>
</div>
</div>

<h2><a name="smilMediaNS-MediaClipMarkers">SMIL MediaClipMarkers
Module</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>This section defines the attribute extensions that make up the SMIL
MediaClipMarkers Module definition. Languages implementing elements and
attributes found in the MediaClipMarkers module must implement all elements
and attributes defined below, as well as <a
href="#smilMediaNS-BasicMedia">BasicMedia</a> and <a
href="#smilMediaNS-MediaClipping">MediaClipping</a>.</p>

<h3><a name="smilMediaNS-MediaClipMarkers-attributes">MediaClipMarkers
Attribute Extensions</a></h3>

<div class="adef-list">
<dl>
  <dt><a name="avalue-clipBegin-marker"><span class="ainst">clipBegin Media
  Marker attribute extension</span></a></dt>
    <dd>Used to define a clip using named time points in a media object,
      rather than using clock values or SMPTE values. The metric specifier is
      "marker", and the marker value is a URI (see <span
      class="normref">[[URI]] </span>). The URI is relative to the <span
      class="ainst-src ainst">src</span> attribute, rather than to the
      document root or the XML base of the SMIL document.
      <p></p>
      <pre>Clip-value-MediaClipMarkers ::= Clip-value-MediaClipping |
                      "marker" "=" URI-reference
   /* "URI-reference" is defined in <span class="normref"> [[URI]] </span> */</pre>
      <p>Example: Assume that a recorded radio transmission consists of a
      sequence of songs, which are separated by announcements by a disk
      jockey. The audio format supports marked time points, and the begin of
      each song or announcement with number X is marked as songX or djX
      respectively. To extract the first song using the "marker" metric, the
      following audio media element can be used:</p>
      <pre class="xml-example">&lt;audio clipBegin="marker=#song1" clipEnd="marker=#dj1" /&gt;</pre>
    </dd>
  <dt><a name="avalue-clipEnd-marker"><span class="ainst">clipEnd Media
  Marker attribute extension</span></a></dt>
    <dd>clipEnd media markers use the same attribute value syntax as the
      <span class="ainst"><a href="#avalue-clipBegin-marker">clipBegin media
      marker extension</a></span> media marker attribute extension. For the
      complete description, see <span class="ainst"><a
      href="#avalue-clipBegin-marker">clipBegin media marker
      extension</a></span>.</dd>
</dl>
</div>
</div>

<h2><a name="smilMediaNS-BrushMedia">SMIL BrushMedia Module</a></h2>

<p><em>This section is normative.</em></p>

<div class="normative">
<p>This section defines the elements and attributes that make up the SMIL
BrushMedia Module definition. Languages implementing elements and attributes
found in the BrushMedia module must implement all elements and attributes
defined below.</p>

<h3>The <a name="edef-brush"><span class="edef">brush</span></a> element</h3>

<p>The <span class="einst">brush</span> element is a lightweight media object
element which allows an author to paint a solid color in place of a media
object. Attributes associated with media objects may also be applied to <span
class="einst">brush</span> element. (A specific profile will determine the
attribute set applied to this element.)</p>

<div class="adef-list">
<em>Attribute definitions</em>
<dl>
  <dt><a name="adef-color"><span class="adef">color</span></a></dt>
    <dd>The use and definition of this attribute are identical to the
      "background-color" property in the CSS2 specification.</dd>
</dl>
</div>

<h3>Integration Requirements</h3>

<p>Profiles including the BrushMedia module must provide semantics for using
a <span class="ainst-color ainst">color</span> attribute value of <span
class="avalue">inherit</span> on the <span class="einst">brush</span>
element. Because <span class="avalue">inherit</span> doesn't make sense in
all contexts, the value of <span class="avalue">inherit</span> is prohibited
on the <span class="ainst-color ainst">color</span> attribute of the <span
class="einst">brush</span> element for profiles that do not otherwise define
these semantics.</p>
</div>

<h2><a name="smilMediaNS-MediaAccessibility">SMIL MediaAccessibility
Module</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>This section defines the elements and attributes that make up the SMIL
MediaAccessibility Module definition. Languages implementing elements and
attributes found in the MediaAccessibility module must implement all elements
and attributes defined below, as well as <a
href="#smilMediaNS-MediaDescription">MediaDescription</a>.</p>

<h3><a name="smilMediaNS-MediaAccessibility-attributes">MediaAccessibility
Attributes</a></h3>

<div class="adef-list">
<em>Attribute definitions</em>
<dl>
  <dt><a name="adef-media-alt"><span class="adef">alt</span></a></dt>
    <dd>For user agents that cannot display a particular media object, this
      attribute specifies alternate text. <span
      class="ainst-media-alt ainst">alt</span> may be displayed in addition
      to the media, or instead of media when the user has configured the user
      agent to not display the given media type.
      <p>It  is strongly recommended that all media object elements have an
      "alt" attribute with a brief, meaningful description. Authoring tools
      should ensure that no element can be introduced into a SMIL document
      without this attribute. </p>
      <p>The value of this attribute is a CDATA text string.</p>
    </dd>
  <dt><a name="adef-longdesc"><span class="adef">longdesc</span></a></dt>
    <dd>This attribute specifies a link (<span class="normref">[[URI]]
      </span>) to a long description of a media object. This description
      should supplement the short description provided using the alt
      attribute or the abstract attribute. When the media object has
      associated hyperlinked content, this attribute should provide
      information about the hyperlinked content.
      <p></p>
    </dd>
  <dt><a name="adef-readIndex"><span class="adef">readIndex</span></a></dt>
    <dd>This attribute specifies the position of the current element in the
      order in which <span class="ainst-longdesc ainst">longdesc</span>,
      <span class="ainst-title ainst">title</span> and <span
      class="ainst-media-alt ainst">alt</span> text are read aloud by
      assistive devices (such as screen readers) for the current document.
      User agents should ignore leading zeros. The default value is 0.
      <p>Elements that contain <span
      class="ainst-media-alt ainst">alt</span>, <span
      class="ainst-title ainst">title</span> or <span
      class="ainst-longdesc ainst">longdesc</span> attributes are read by the
      assistive technology according to the following rules:</p>
      <ul>
        <li>Those elements that assign a positive value to the readindex
          attribute are read out first. Navigation proceeds from the element
          with the lowest readindex value to the element with the highest
          value. Values need not be sequential nor must they begin with any
          particular value. Elements that have identical readindex values
          should be read out in the order they appear in the character stream
          of the document.</li>
        <li>Those elements that assign it a value of "0" are read out in the
          order they appear in the character stream of the document.</li>
        <li>Elements in a switch statement that have test-attributes which
          evaluate to "false" are not read out.</li>
      </ul>
      <p><em>Example</em></p>
      <pre class="xml-example">&lt;par&gt;
  &lt;video xml:id="carvideo" src="car.rm" region="videoregion" title="Car video"
         alt="Illustration of relativistic time dilation and length 
              contraction." 
         longdesc="carvideodesc.html" readIndex="3"/&gt;
  &lt;audio xml:id="caraudio" src="caraudio.rm" region="videoregion" 
         title="Car presentation voiceover" begin="bar.begin"/&gt;
  &lt;animation xml:id="cardiagram" src="car.svg" region="animregion" 
         title="Diagram of the car" readIndex="2"/&gt;
  &lt;img xml:id="scvad" src="scv.png" region="videoregion" 
         title="Advertisement for Sugar Coated Vegetables"
         readIndex="1"/&gt;
&lt;/par&gt;</pre>
      <p>In this example, an assistive device that is presenting titles
      should present the "scvad" element title first (having the lowest
      readIndex value of "1"), followed by the "cardiagram" title, followed
      by the "carvideo" element title, and finally present the "caraudio"
      element title (having an implicit readIndex value of "0").</p>
    </dd>
</dl>
</div>
</div>

<h2><a name="smilMediaNS-MediaDescription">SMIL MediaDescription
Module</a></h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<p>This section defines the elements and attributes that make up the SMIL
MediaDescription Module definition. Languages implementing elements and
attributes found in the MediaDescription module must implement all elements
and attributes defined below.</p>

<h3><a name="smilMediaNS-MediaDescription-attributes">MediaDescription
Attributes</a></h3>

<div class="adef-list">
<em>Attribute definitions</em>
<dl>
  <dt><a name="adef-abstract"><span class="adef">abstract</span></a></dt>
    <dd>A brief description of the content contained in the element. Unlike
      <span class="ainst-media-alt ainst">alt</span>, this attribute is
      generally not displayed as alternate content to the media object. It is
      typically used as a description when table of contents information is
      generated from a SMIL presentation, and typically contains more
      information than would be advisable to put in an <span
      class="ainst-media-alt ainst">alt</span> attribute.
      <p>This attribute is deprecated in favor of using appropriate SMIL
      metadata markup in RDF. For example, this attribute maps well to the
      "description" attribute as defined by the Dublin Core Metadata
      Initiative <span class="informref">[[DC]] </span>.</p>
    </dd>
  <dt><a name="adef-author"><span class="adef">author</span></a></dt>
    <dd>The name of the author of the content contained in the element.
      <p>The value of this attribute is a CDATA text string.</p>
    </dd>
  <dt><a name="adef-copyright"><span class="adef">copyright</span></a></dt>
    <dd>The copyright notice of the content contained in the element.
      <p>The value of this attribute is a CDATA text string.</p>
    </dd>
  <dt><a name="smilMediaNS-Title-Att"></a><span
  class="ainst-title ainst">title</span></dt>
    <dd>The <span class="ainst-title ainst">title</span> attribute as defined
      in the SMIL Structure module. It is strongly recommended that all media
      object elements have a <span class="ainst-title ainst">title</span>
      attribute with a brief, meaningful description. Authoring tools should
      ensure that no element can be introduced into a SMIL document without
      this attribute.</dd>
  <dt><a name="adef-xml-lang"><span class="adef">xml:lang</span></a></dt>
    <dd>Used to identify the natural or formal language for the element. For
      a complete description, see <a
      href="http://www.w3.org/TR/1998/REC-xml-19980210#sec-lang-tag">section
      2.12</a> Language Identification of <span
      class="normref">[[XML11]]</span>.
      <p><span class="ainst-xml-lang ainst">xml:lang</span> differs from the
      <span class="ainst-systemLanguage ainst">systemLanguage</span> test
      attribute in one important respect. <span
      class="ainst-xml-lang ainst">xml:lang</span> provides information about
      the content's language independent of what implementations do with the
      information, whereas <span
      class="ainst-systemLanguage ainst">systemLanguage</span> is a test
      attribute with specific associated behavior (see <span
      class="ainst-systemLanguage ainst">systemLanguage</span> in <a
      href="../ContentControl/smil-content.html">SMIL Content Control
      Module</a> for details)</p>
      <p></p>
    </dd>
</dl>
</div>

<div class="informative">
<p><em>This section is informative.</em></p>

<p>SMIL 3.0 also supports the use of the <span
class="einst-metadata einst">metadata</span> element within the <a
href="smil-metadata.html">MetaInformation Module</a> to supply additional or
alternative forms of metainformation for any media object.</p>
</div>
</div>

<h2 id="smilMediaNS-MediaPanZoom">MediaPanZoom Module</h2>

<div class="normative">
<p><em>This section is normative.</em></p>

<h3 id="smilMediaNS-MediaPanZoom-Overview">Overview</h3>

<div class="informative">
<p><em>This section is informative.</em></p>

<p>The SMIL MediaPanZoom module integrates the functionality of the SVG
viewBox attribute and adapts it for use within the SMIL media framework. The
SMIL <span class="ainst-panZoom ainst">panZoom</span> attribute allows a SMIL
author to define a two-dimensional extent over the visible surface of a media
object and to subsequently project the contents within the panZoom area into
a SMIL presentation.</p>

<p>Most of SMIL's layout elements and attributes provide the ability to
define and manage a two-dimensional rendering space. This space is defined
relative to a root-layout (or topLayout) specification. All of the coordinate
and size specifications are in terms of the coordinate space defined for the
layout root. In contrast, the panZoom attribute allows users to define an
area in terms of the coordinate space used by the media object that is
associated with the panZoom area. The panZoom area may be smaller, equal to,
or larger than the related media object.</p>

<p>The following illustration shows three views of a 300x200 pixel image. In
the left view, a panZoom area is shown that is the same size as the media
object; in the middle view, a panZoom area is defined that covers the middle
part of the image only; in the right view, a panZoom area is illustrated that
is positioned (in both dimensions) partially outside the media object. Note
that while this illustration shows the panZoom area projected onto an image,
similar illustrations could be defined for videos or text objects, or any
other object that can be mapped to a particular media bounding box.</p>

<p><img src="Images/PZ0.jpg" width="750"
alt="Picture showing a base image and three panZoom area examples"></p>

<p>Once a portion of a media object's visible area is defined with a panZoom
area, the portion within the panZoom area is processed further as if it
defined the full native view of the media object. The content within the
panZoom area is projected into a region in a manner that is dependent on the
<span class="einst-region einst">region</span> element associated with that
object, including any scaling dictated by the <span
class="ainst-fit ainst">fit</span> attribute or (if appropriate), sub-region
positioning and alignment directives.</p>

<p>If the region and the panZoom area have the same aspect ratios, then the
panZoom area will, by default, fill the entire region. If the effective pixel
dimensions of the region are larger than that of the panZoom area, the effect
will be an enlargement of the media content. If the effective pixel
dimensions of the window are smaller than that of the panZoom area, the
effect will be a reduction in size of the media object. Other effects can be
obtained by manipulating the <span class="ainst-fit ainst">fit</span>
attribute of the region.</p>

<p>If supported by the profile implementing this module, a dynamic
pan-and-zoom effect can be obtained by applying standard SMIL animation
primitives to the dimensions of the panZoom area. A pan effect may be
obtained by varying the X and Y positioning values, and a zoom effect can be
obtained by changing the size dimensions of the panZoom area. Examples of
these effects are given later in this module description. Given
the nature of independently animating collections of attribute values,
care should be taken when specifying animation behavior. </p>

<p>If a panZoom area extends past the viewable extents of a media object
(such as in the rightmost illustration, above), then the effective contents
of these extended areas will be transparent.</p>
</div>

<h3 id="smilMediaNS-MediaPanZoom-ElementsAndAttributes">Elements and
Attributes for the MediaPanZoom Module</h3>

<p>This module does not define any new elements. It provides extensions to
the <span class="einst-ref einst">ref</span> element (and its synonyms), and
to the <span class="einst-region einst">region</span> element.</p>

<h4 id="smilMediaNS-MediaPanZoom-Element-ref">The ref Element</h4>

<p>The <span class="ainst-panZoom ainst">panZoom</span> attribute is added to
media object references.</p>

<div class="attdef-list">
<h5 id="smilMediaNS-MediaPanZoom-Element-ref-attributes">Element
attributes</h5>
<dl>
  <dt><a name="adef-panZoom"></a><span class="adef">panZoom</span></dt>
    <dd>This attribute specifies a rectangular area in media coordinates that
      defines the portion of a media object that is to be used within a SMIL
      presentation. The panZoom attribute defines an ordered list of four
      values, separated by a comma:
      <dl>
        <dt><span class="avalue">left</span></dt>
          <dd>A value (using CSS2 pixel or percentage values) that defines the minimum X coordinate of a rectangle in
            media space that serves as the X origin of the panZoom area. If pixel notation is used, the 'px' suffix may be
            omitted. An effective value of '0px' represents the left edge of the media object.</dd>
        <dt><span class="avalue">top</span></dt>
          <dd>A value (using CSS2 pixel or percentage values) that defines the minimum Y coordinate of a rectangle in
            media space that serves as the Y origin of the panZoom area. If pixel notation is used, the 'px' suffix may be
            omitted. A value of '0' represents the top edge of the media object.</dd>
        <dt><span class="avalue">width</span></dt>
          <dd>A non-negative length value (using CSS2 pixel or non-negative
            percentage values) that defines the horizontal dimension of the
            panZoom area. If pixel notation is used, the 'px' suffix may be
            omitted. A negative value is an error. The default value of width
            is set to the intrinsic width of the associated media object.</dd>
        <dt><span class="avalue">height</span></dt>
          <dd>A non-negative length value (using CSS2 pixel or non-negative
            percentage values) that defines the vertical dimension of the
            panZoom area. If pixel notation is used, the 'px' suffix may be
            omitted. A negative value is an error. The default value of set
            to the intrinsic height of the associated media object.</dd>
      </dl>
      The default panZoom area behavior is to select the entire visual space
      of the media object; this is equivalent to <span class="xml-example">panZoom="0, 0, 100%, 100%"</span>.</dd>
</dl>

<p>The panZoom area is processed on the media object before any other SMIL
layout processing occurs. The actual visual rendering of the content
resulting from the processed panZoom area will be determined by, among other
factors: the size of the target region, the application of sub-region
positioning in that region (if supported by the profile), the value of the
fit attribute on the region, and the effect of SMIL alignment attributes (if
supported by the profile).</p>
      <div class="informative">
      <p><em>This section is informative.</em></p>
      <p>If the profile integrating the panZoom element allows each of the attribute values to
         be animated, care should be taken to choose an animation calculation mode that
         will yield predictable results (such as using a linear mode). The animation of
         mixed percentage/pixel values for height and width is not recommended.</p>
      <p>Note that the specification of negative values for left and top is not an error; this
         allows placing (a portion of) the panZoom area outside of the media.</p>
      </div>

</div>

<h5 id="smilMediaNS-MediaPanZoom-ref-content">Element content</h5>

<p>The SMIL MediaPanZoom module does not extend the content model for the
<span class="einst-ref einst">ref</span> element integrating these
attributes.</p>

<h4 id="smilMediaNS-MediaPanZoom-Element-region">The region Element</h4>

<p>The <span class="ainst-panZoom ainst">panZoom</span> attribute is added to
regions definitions.</p>

<div class="attdef-list">
<h5 id="smilMediaNS-MediaPanZoom-Element-region-attributes">Element
attributes</h5>
<dl>
  <dt><span class="ainst-panZoom ainst">panZoom</span></dt>
    <dd>This attribute is identical in definition to the <span
      class="ainst-panZoom ainst">panZoom</span> attribute defined for the
      ref element in this section, with the exception that it defines a
      default panZoom area that is applied to all media rendered in the
      associated region. All other aspects of panZoom area processing are the
      same as with the ref element, except that the values defined for the
      panZoom area on a region may be overridden by a panZoom area
      specification on the ref element.</dd>
</dl>
</div>

<h5 id="smilMediaNS-MediaPanZoom-Element-region-content">Element content</h5>

<p>The SMIL MediaPanZoom module does not extend the content model for the
<span class="einst-region einst">region</span> element integrating these
attributes.</p>

<h5 id="smilMediaNS-MediaPanZoom-Element-Examples">Attribute Examples</h5>

<div class="informative">
<p><em>This section is informative.</em></p>

<p>Assume the following SMIL example:</p>
<pre class="xml-example">&lt;smil ...&gt;
  &lt;head&gt;
  ...
    &lt;layout&gt;
      &lt;root-layout height="200" width="300" backgroundColor="red" /&gt;
      &lt;region xml:id="I" top="0" left="0" height="200" width="300"  backgroundColor="blue" /&gt;
    &lt;/layout&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;seq&gt; 
      &lt;ref xml:id="R1" src="table.jpg" panZoom="0,0,300,200" dur="5s" region="I" /&gt;
      &lt;ref xml:id="R2" src="table.jpg" panZoom="50,195,160,125" dur="5s" region="I" fit="meet"/&gt;
      &lt;ref xml:id="R3" src="table.jpg" panZoom="50,195,160,125" dur="5s" region="I" fit="meetBest"/&gt;
      &lt;ref xml:id="R4" src="table.jpg" panZoom="240,120,85,110" dur="5s" region="I" fit="meet"/&gt;
    &lt;/seq&gt;
  &lt;/body&gt;
&lt;/smil&gt;</pre>

<p>In this example, a single region is defined that is used to display four
instances of the same image. Each media reference within the sequence S
contains a different panZoom area definition, each of which will result in
the following behavior:</p>
<ol>
  <li>The media reference R1 defines a panZoom area that encompasses the
    entire media object space; the full image will be shown in region I, as
    is shown in the following image: <br>
    <img src="Images/PZ1.jpg" width="600" height="201"
    alt="A panZoom area projection that is the same size as the target region.">
    <br>
    Note that the origin of the image is aligned with the origin of the media
    object, at the top-left of the region.</li>
  <li>The media reference R2 defines a panZoom area that encompasses the
    center portion of the media object space. The projection of the media
    into region I will result in a zoom into the source image, as is shown in
    the following image: <br>
    <img src="Images/PZ2.jpg" width="600" height="201"
    alt="A panZoom area projection that is smaller than the target region, resulting in a zoom effect.">
    <br>

    <p>Note that the origin of the sub-image defined by the panZoom area is
    placed at the origin of the top-left of the region. Note also that the
    value of the fit attribute determines that the image is scaled (while
    maintaining the aspect ratio), resulting in the zoom effect.</p>
  </li>
  <li>The media reference R3 defines a panZoom area that is the same as in
    reference R2; the difference in this example is that the value of the fit
    attribute does not permit enlargement of the source image into the
    region. As a result, the image is placed at top-left in an unscaled
    rendering: <br>
    <img src="Images/PZ3.jpg" width="600" height="201"
    alt="A panZoom area projection that is smaller than the target region, but with a fit=">
    <br>
  </li>
  <li>The media reference R4 defines a panZoom area that extends beyond the
    boundaries of the media object. When it is projected into the region I
    with a fit value that scales the image with preserved aspect ratio, the
    entire extent of the panZoom area is scaled: the areas that extend beyond
    the image content are rendered as (scaled) transparent content: <br>
    <img src="Images/PZ4.jpg" width="600" height="201"
    alt="A panZoom area projection that extends beyond the right/bottom edge of the image -- the extended part of the box will be transparent.">
    <br>
  </li>
</ol>

<p>All of the previous examples illustrate how a panZoom area operates on a
media object that contains a media-defined viewable extent. The panZoom
attribute may also be applied to visual objects that do not have predefined
extents. Consider the following example, in which an unstructured text object
is placed in a region:</p>
<pre class="xml-example">&lt;smil ...&gt;
  &lt;head&gt;
  ...
    &lt;layout&gt;
      &lt;root-layout height="200" width="300" backgroundColor="red" /&gt;
      &lt;region xml:id="T" top="0" left="0" height="50" width="300"  backgroundColor="blue" /&gt;
    &lt;/layout&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;seq&gt; 
      &lt;ref xml:id="R0" src="short_story.txt" panZoom="0,10,50,200" dur="10s" region="T" /&gt;
    &lt;/seq&gt;
  &lt;/body&gt;
&lt;/smil&gt;</pre>

<p>In this example, a single region is defined that is used to display a
undimensioned text object. In SMIL 3.0, the text object would first be
rendered to an off-screen bitmap based on the default settings for the media
object (font, font size, font color) and then a panZoom area of the defined
size would be overlaid on this text representation. This facility is
especially useful when combined with SMIL Animation, as discussed in the next
example.</p>

<p>The ability to define a panZoom area, when combined with SMIL animation
primitives, provides a simple mechanism for doing pan/zoom animations over a
visual object. (These pan/zoom animations are often called 'Ken Burns'
animations.) The following example illustrates how a pan window can be
positioned and moved over an image area:</p>
<pre class="xml-example">&lt;smil ...&gt;
  &lt;head&gt;
  ...
    &lt;layout&gt;
      &lt;root-layout height="200" width="300" backgroundColor="red" /&gt;
      &lt;region xml:id="B" top="0" left="0" height="50" width="75"  backgroundColor="blue" /&gt;
    &lt;/layout&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;seq&gt; 
      &lt;ref xml:id="R0" src="table_233x150.jpg" panZoom="0,0,50,75" dur="20s" region="T" fit=""meet" &gt;
         &lt;animate attributeName="panZoom" 
                     values="25,20,50,75; 45,55,50,75; 140,40,50,75; 35,0,100,150; 0,0,100,150" 
                     dur="20s" /&gt;
      &lt;/ref&gt;
      ...
    &lt;/seq&gt;
  &lt;/body&gt;
&lt;/smil&gt;</pre>

<p>In this example, an image with intrinsic size of 233x150 pixels is
rendered into a region of size 50x75. An initial panZoom area is defined that
displays a 50x75 portion of that image, positioned in its top-left corner.
During the following 20 seconds, the panZoom area is moved across the image
according to the behavior of the animate element; the panZoom area changes
are scheduled at equal points across the animation timeline (in this case,
every 5 seconds). During the final animation, the panZoom area is extended to
implement a zoom-out across the entire image. An illustration of the
rendering results is shown below:</p>
<br>
<img src="Images/PZ5.jpg" width="750" height="201"
alt="A panZoom area projection and a set of animations that move the panZoom area across the source image.">
<br>
</div>

<h3 id="smilMediaNS-MediaPanZoom-Events">MediaPanZoom Module Events</h3>

<p>This module does not define any SMIL events.</p>

<h3 id="smilMediaNS-MediaPanZoom-ImplIntegr">SMIL MediaPanZoom Implementation
and Integration</h3>

<h4 id="smilMediaNS-MediaPanZoom-Implementation">Implementation Details</h4>

<p>The MediaPanZoom module allows individual media object references to
override the default values for certain attributes. In all cases, the
attributes will apply only to the (sub-)region referenced by the media
object. Changes will not propagate to child sub-regions or to parent
regions.</p>

<h4 id="smilMediaNS-MediaPanZoom-Integration">Integration Requirements</h4>

<p>The functionality in this module builds on top of the functionality in the
<a href="#smilMediaNS-BasicMedia">Media</a> module, which is a required
prerequisite for inclusion of the MediaPanZoom module.</p>

<h4 id="smilMediaNS-MediaPanZoom-Differences">Differences with the SVG
viewBox Attribute</h4>

<p>The functionality in this module builds on the viewBox definition of SVG.
Unlike SVG, the SMIL panZoom attribute defines a logical sub-image that
contains only content within the panZoom area; SVG uses the viewBox to define
a minimum viewing dimension for content, but allowing content outside the
viewBox to be displayed in the region.</p>

<p>The MediaPanZoom module does not define a preserveAspectRatio attribute,
since this functionality is already provided by the SMIL fit and
registration/alignment attributes.</p>

<h3 id="smilMediaNS-MediaPanZoom-DTD">Document Type Definition (DTD) for the
MediaPanZoom Module</h3>

<p>See the full <a href="smil-DTD.html#SMIL-layout">DTD</a> for the SMIL
Layout modules.</p>
</div>

<h2><a name="smilMediaNS-appendices">Appendices</a></h2>

<div class="informative">
<p><em>This section is informative.</em></p>

<h3><a name="smilMediaNS-changes">Appendix A: Changes to SMIL 1.0 Media
Object Attributes</a></h3>

<h4>clipBegin, clipEnd, clip-begin, clip-end</h4>

<p>With regards to the clipBegin/clip-begin and clipEnd/clip-end elements,
SMIL 2.1 defines the following changes to the syntax defined in SMIL 1.0:</p>
<ul>
  <li>Addition of the attribute names <span
    class="ainst-clipBegin ainst">clipBegin</span> and <span
    class="ainst-clipEnd ainst">clipEnd</span> as an equivalent alternative
    to the SMIL 1.0 <span class="ainst-clipBegin ainst">clip-begin</span> and
    <span class="ainst-clipEnd ainst">clip-end</span> attributes. The
    attribute names with hyphens are deprecated.</li>
  <li>If the attribute consists only of a clock value without further
    specification, it is assumed to be specified in normal play time, i.e. to
    have the metric "npt".</li>
  <li>A new metric called "marker" can be used to define a clip using marked
    time points in a media object, rather than using clock values or SMPTE
    values.</li>
</ul>

<h4>Handling of new clipBegin/clipEnd syntax in SMIL 1.0 software</h4>

<p>Using attribute names with hyphens such as <span
class="ainst-clipBegin ainst">clip-begin</span> and <span
class="ainst-clipEnd ainst">clip-end</span> is problematic when using a
scripting language and the DOM to manipulate these attributes. Therefore,
this specification adds the attribute names <span
class="ainst-clipBegin ainst">clipBegin</span> and <span
class="ainst-clipEnd ainst">clipEnd</span> as an equivalent alternative to
the SMIL 1.0 <span class="ainst-clipBegin ainst">clip-begin</span> and <span
class="ainst-clipEnd ainst">clip-end</span> attributes. The attribute names
with hyphens are deprecated.</p>

<p>Authors can use two approaches for writing SMIL 2.1 presentations that use
the new clipping syntax and functionality ("marker", default metric) defined
in this specification, but can still can be handled by SMIL 1.0 software.
First, authors can use non-hyphenated versions of the new attributes that use
the new functionality, and add SMIL 1.0 conformant clipping attributes later
in the text.</p>

<p>Example:</p>
<pre class="xml-example">&lt;audio src="radio.wav" clipBegin="marker=song1" clipEnd="marker=moderator1" 
       clip-begin="npt=0s" clip-end="npt=3:50" /&gt;</pre>

<p>SMIL 1.0 players implementing the recommended extensibility rules of SMIL
1.0 <span class="informref">[[SMIL10]]</span> will ignore the clip attributes
using the new functionality, since they are not part of SMIL 1.0. SMIL 2.1
players, in contrast, will ignore the clip attributes using SMIL 1.0 syntax,
because the SMIL 2.1 syntax takes precedence over the SMIL 1.0 syntax.</p>

<p>The second approach is to use the following steps:</p>
<ol>
  <li>Add a "system-required" test attribute to media object elements using
    the new functionality. The value of the "system-required" attribute would
    correspond to a namespace prefix whose namespace URI (<span
    class="normref">[[URI]] </span>) points to a SMIL specification which
    integrates the new functionality.</li>
  <li>Add an alternative version of the media object element that conforms to
    SMIL 1.0</li>
  <li>Include these two elements in a "switch" element</li>
</ol>

<p>Example:</p>
<pre class="xml-example">&lt;smil xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Language"&gt;
...
&lt;switch&gt;
  &lt;audio src="radio.wav" clipBegin="marker=song1" clipEnd="marker=moderator1"  
   system-required="smil2" /&gt;
  &lt;audio src="radio.wav" clip-begin="npt=0s" clip-end="npt=3:50" /&gt;
&lt;/switch&gt;</pre>

<h4>New Accessibility Attributes</h4>
<dl>
  <dt><span class="ainst-readIndex ainst">readIndex</span></dt>
    <dd>Allows explicit ordering for controlling assistive technology.</dd>
</dl>

<h4>New Advanced Media Attributes</h4>
<dl>
  <dt><span class="ainst-mediaRepeat ainst">mediaRepeat</span></dt>
    <dd>The <span>mediaRepeat</span> attribute was added to provide better
      timing control over media with intrinsic repeat behavior (such as
      animated GIFs).</dd>
  <dt><span class="ainst-erase ainst">erase</span></dt>
    <dd>Provides a way for visual media to remain visible throughout the
      duration of a presentation by overriding the default erase
    behavior.</dd>
</dl>
</div>
</body>
</html>