This section is informative.
There are two major changes to the Media Object modules for SMIL 3.0: the first is the addition of new attributes to the MediaParam module for chroma key and opacity control, the second is the introduction of the MediaPanZoom module. The MediaParam module is extended to define control over various aspects of media opacity using the mediaOpacity, mediaBackgroundOpacity, chromaKey, chromaKeyValue, and chromaKeyTolerance attributes. The MediaPanZoom module defines the viewBox attribute to provide a framework for panning and zooming over media content. (The viewBox attribute is based largely on equivalent functionality in SVG.)
The MediaParam module also includes new text that explicitly discusses the behavior of adding the various media control attributes defined in that section 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.
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.
This section is informative.
This section defines the SMIL media object modules, which are composed of a BasicMedia module and seven modules with additional functionality that build on top of the BasicMedia module: the MediaClipping, MediaClipMarkers, MediaParam, MediaAccessibility, MediaDescription, and MediaPanZoom modules. These modules contain elements and attributes used to describe media objects. Additionally, a BrushMedia element is provided which can be used as a media object. 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.
Changes with respect to the media object elements in SMIL 1.0 provide additional functionality that was brought up as requirements of the Working Group, and those differences are explained in Appendix A and Appendix B.
This section is normative.
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 Timing and Synchronization module.
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.
This section is normative.
This module defines the baseline media functionality of a SMIL player.
SMIL defines a single generic media object element that allows the inclusion of media objects into a SMIL presentation. Media objects are included by reference (using a URI).
In addition to the ref element, SMIL allows the use of the following set of synonyms:
All of these media elements are semantically identical. When playing back a 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 typeattribute.
Authors, however, should make sure that the group into which of the media object falls (animation, audio, img, video, text or textstream) is reflected in the element name. 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.
The animation element defined here should not be confused with the elements defined in the SMIL 3.0 Animation Module. The animation element defined in this module is used to include an animation (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.
Anchors and links can be attached to visual media objects, i.e. media objects rendered on a visual abstract rendering surface.
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:
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 http://www.example.org/some/path#anchor1), 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.
Note that this attribute is not required. A media object with no src 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 src attribute.
When the content represented by a URL is available in many data formats, implementations MAY use the type value to influence which of the multiple formats is used. For instance, on a server implementing HTTP content negotiation, the client may use the type attribute to order the preferences in the negotiation. The type attribute is not intended for use in media sub-stream selection.
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 type 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.
Element Content
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.
If the including profile supports the XMLBase functionality [XMLBase] , the values of the src and longdesc attributes on the media object elements must be interpreted in the context of the relevant XMLBase URI prefix.
User-agents implementations are responsible for defining the rendering behavior when fragment addressing is used in the
src attribute. Such definition should be added to language profiles that
wish to include specific media addressing features.
For example:
- User-agents should define the default behavior for when referencing a non-existing id in the target media document.
- 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).
- User-agents should describe the timing implication for when addressing timed-content.
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.
This section is normative.
This section defines the elements and attributes that make up the SMIL MediaParam Module definition. Languages implementing elements and attributes found in the MediaParam module must implement all elements and attributes defined below, as well as BasicMedia.
The param 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).
Any number of param elements may appear (in any order) in the content of a media object element or in a paramGroup element. If a given parameter is defined multiple times, the lexically last version of that parameter value should be used.
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.
Example
This section is informative.
To illustrate the use of param: 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:<ref src="http://www.example.com/herbert.face"> <param name="mood" value="surly" valuetype="data"/> <param name="accessories" value="baseball-cap,nose-ring" valuetype="data"/> </ref>
The paramGroup element provides a convenience mechanism for defining a collection of media parameters that may be reused with several different media objects. If present, the paramGroup element must appear in the head section of the document. The content of the paramGroup element consists of zero or more param elements. The paramGroup element may not contain nested paramGroup element definitions.
Element attributes
Examples
This section is informative.
This section contains several fragments that illustrate uses of the paramGroup element.
In the following fragment, a paramGroup is created to define parameters that are passed to several different media objects:
<smil ... > <head> ... <paramGroup id="clown"> <param name="mood" value="upBeat" valuetype="data"/> <param name="accessories" value="flowers,dunceCap"/> </paramGroup> ... </head> <body> ... <ref src="http://www.example.com/andy.face" paramGroup="clown"/> ... <ref src="http://www.example.com/sally.face" paramGroup="clown"/> ... </body> </smil>
In the following example, a media object provides an additional param value:
<smil ... > <head> ... <paramGroup id="clown"> <param name="mood" value="upBeat" valuetype="data"/> <param name="accessories" value="flowers,dunceCap"/> </paramGroup> ... </head> <body> ... <ref src="http://www.example.com/andy.face" paramGroup="clown"> <param name="gender" value="male"/> </ref> ... </body> </smil>
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.
<smil ... > <head> ... <paramGroup id="clown"> <param name="mood" value="upBeat" valuetype="data"/> <param name="accessories" value="flowers,dunceCap"/> </paramGroup> ... </head> <body> ... <ref src="http://www.example.com/andy.face" paramGroup="clown"> <param name="gender" value="male"/> <param name="mood" value="depressed" valuetype="data"/> </ref> ... </body> </smil>
In addition to the element attributes defined in BasicMedia, media object elements and layout regions man have the attributes and attribute extensions defined below. The inclusion or exclusion of these elements is left as an option in the language profile.
Values:
Example:
This section is informative.
<par> <seq> <par> <img src="image1.jpg" region="foo1" fill="freeze" erase="never" .../> <audio src="audio1.au"/> </par> <par> <img src="image2.jpg" region="foo2" fill="freeze" erase="never" .../> <audio src="audio2.au"/> </par> ... <par> <img src="imageN.jpg" region="fooN" fill="freeze" erase="never" .../> <audio src="audioN.au"/> </par> </seq> </par>
In this example, each image is successively displayed and remains displayed until the end of the presentation.
Values:
As an example of how this would be used, many animated GIFs intrinsically repeat indefinitely. The application of mediaRepeat= "strip" 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.
When mediaRepeat 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 repeatCount and repeatDur.
Values:
Any profile that integrates the erase attribute must define what is meant by "display area" and further define the interaction. See the definition of erase for more details.
The supported uses of the type and valuetype attributes on the param element must be specified by the integrating profile. If a profile does not specify this, the type and valuetype attributes will be ignored in that profile.
This section is normative.
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 BasicMedia.
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
Informative Note: The definition of Subframe value in
timecode introduces an inconsistency between SMIL 1.0 and SMIL 2.1.
At this time of revision, as some documents may have already been
written using this Subframe value we have decided not to delete it from
the Recommendation.
User agent should ignore subframe. Subframe should not be used as it is
deprecated.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 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:
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.
Examples:
clipBegin="smpte=10:12:33"
clipBegin="npt=123.45s"
clipBegin="npt=12:05:35.3
"If no metric specifier is given, then a default of "npt=" is presumed.
When used in conjunction with the timing attributes from the SMIL Timing Module, this attribute is applied before any SMIL Timing Module attributes.
clipBegin may also be expressed as clip-begin for compatibility with SMIL 1.0. Software supporting the SMIL 2.1 Language Profile must be able to handle both clipBegin and clip-begin, whereas software supporting only the SMIL MediaClipping module only needs to support clipBegin. If an element contains both a clipBegin and a clip-begin attribute, then clipBegin takes precedence over clip-begin.
Example:
<audio src="radio.wav" clip-begin="5s" clipBegin="10s" />
The clip begins at second 10 of the audio, and not at second 5, since the clip-begin 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 Changes to SMIL 1.0 Media Object Attributes for more discussion on this topic.
See Changes to SMIL 1.0 Media Object Attributes for more discussion on this topic.
This section is normative.
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 BasicMedia and MediaClipping.
Clip-value-MediaClipMarkers ::= Clip-value-MediaClipping |
"marker" "=" URI-reference
/* "URI-reference" is defined in [URI] */
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:
<audio clipBegin="marker=#song1" clipEnd="marker=#dj1" />
This section is normative.
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.
The brush element is a lightweight media object element which allows an author to paint a solid color or other pattern in place of a media object. Thus, all attributes associated with media objects may also be applied to brush. Since all information about the media object is specified in the attributes of the element itself, the src attribute is ignored, and thus is not required.
Profiles including the BrushMedia module must provide semantics for using a color attribute value of inherit on the brush element. Because inherit doesn't make sense in all contexts, a profile may choose to prohibit the use of this value. The value of inherit is prohibited on the color attribute of the brush element for profiles that do not otherwise define these semantics.
This section is normative.
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 MediaDescription.
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.
The value of this attribute is a CDATA text string.
Elements that contain alt, title or longdesc attributes are read by the assistive technology according to the following rules:
Example
<par> <video id="carvideo" src="car.rm" region="videoregion" title="Car video" alt="Illustration of relativistic time dilation and length contraction." longdesc="carvideodesc.html" readIndex="3"/> <audio id="caraudio" src="caraudio.rm" region="videoregion" title="Car presentation voiceover" begin="bar.begin"/> <animation id="cardiagram" src="car.svg" region="animregion" title="Diagram of the car" readIndex="2"/> <img id="scvad" src="scv.png" region="videoregion" title="Advertisement for Sugar Coated Vegetables" readIndex="1"/> </par>
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").
This section is normative.
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.
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 [DC] .
The value of this attribute is a CDATA text string.
The value of this attribute is a CDATA text string.
xml:lang differs from the system-language test attribute in one important respect. xml:lang provides information about the content's language independent of what implementations do with the information, whereas system-language is a test attribute with specific associated behavior (see system-language in SMIL Content Control Module for details)
This section is normative.
This section is informative.
The MediaPanZoom module contains attributes that have been added as part of the SMIL 3.0 release. These attributes, based largely on equivalent functionality in SVG, provide a framework for panning and zooming over media content via the viewBox attribute.
This section is informative.
The SMIL MediaPanZoom module integrates the functionality of the SVG viewBox attribute and adapts it for use within the SMIL layout framework. The SMIL viewBox 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 viewBox into a SMIL layout region.
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 viewBox attribute allows users to define an area in terms of the coordinate space used by the media object that is associated with the viewBox. The viewBox may define an area that is smaller, equal to, or larger than the related media object.
The following illustration shows three views of a 300x200 pixel image. In the left view, a viewBox is shown that is the same size as the media object; in the middle view, a viewBox is defined that covers the middle part of the image only; in the right view, a viewBox is illustrated that is positioned (in both dimensions) partially outside the media object. Note that while this illustration shows the viewBox 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.
Once a portion of a media object's visible area is defined with a viewBox, the portion within the viewBox is processed further by SMIL layout as if it defined the full native view of the media object. The area within the viewBox is projected into a region in a manner that is dependent on the region element associated with that object, including any scaling dictated by the fit attribute or (if appropriate), sub-regions positioning and alignment directives.
If the region and the viewBox have the same aspect ratios, then the viewBox will, by default, fill the entire region. If the effective pixel dimensions of the region are larger then that of the viewBox, the effect will be an enlargement of the media content. If the effective pixel dimensions of the window are smaller than that of the viewBox, the effect will be a reduction in size of the media object. Other effects can be obtained by manipulating the fit attribute of the region.
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 viewBox. 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 viewBox. Examples of these effects are given later in this section.
If a viewBox 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.
This section is normative.
This module does not define any new elements. It provides extensions to the ref element (and its synonyms), and to the region element.
The viewBox attribute is added to media object references.
The viewBox is processed on the media object before any other SMIL layout processing occurs. The actual visual rendering of the content resulting from the processed viewBox 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).
The SMIL MediaPanZoom module does not extend the content model for the ref element integrating these attributes.
The viewBox attribute is added to regions definitions.
The SMIL MediaPanZoom module does not extend the content model for the region element integrating these attributes.
This section is informative.
Assume the following SMIL example:
<smil ...> <head> ... <layout> <root-layout height="200" width="300" backgroundColor="red" /> <region id="I" top="0" left="0" height="200" width="300" backgroundColor="blue" /> </layout> </head> <body> <seq> <ref id="R0" src="table.jpg" viewBox="0,0,300,200" dur="5s" region="I" /> <ref id="R1" src="table.jpg" viewBox="50,195,160,125" dur="5s" region="I" fit="meet"/> <ref id="R2" src="table.jpg" viewBox="50,195,160,125" dur="5s" region="I" fit="meetBest"/> <ref id="R3" src="table.jpg" viewBox="240,120,85,110" dur="5s" region="I" fit="meet"/> </seq> </body> </smil>
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 viewBox definition, each of which will result in the following behavior:
Note that the origin of the sub-image defined by the viewBox 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 scale (while maintaining the aspect ratio), resulting in the zoom effect.
All of the previous examples illustrate how a viewBox operates on a media object that contains a media-defined viewable extent. The viewBox 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:
<smil ...> <head> ... <layout> <root-layout height="200" width="300" backgroundColor="red" /> <region id="T" top="0" left="0" height="50" width="300" backgroundColor="blue" /> </layout> </head> <body> <seq> <ref id="R0" src="short_story.txt" viewBox="0,10,50,200" dur="10s" region="T" /> </seq> </body> </smil>
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 viewBox 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.
EdNote: exact rendering behavior needs to be defined. My own feeling is that the ratio between width and height should determine whether the text is laid out horizontally or vertically, but this needs more thought.
The ability to define a viewBox, 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:
<smil ...> <head> ... <layout> <root-layout height="200" width="300" backgroundColor="red" /> <region id="B" top="0" left="0" height="50" width="75" backgroundColor="blue" /> </layout> </head> <body> <seq> <ref id="R0" src="table_233x150.jpg" viewBox="0,0,50,75" dur="20s" region="T" fit=""meet" > <animate attributeName="viewBox" values="(25,20,50,75); (45,55,50,75);(140,40,50,75);(35,0,100,150); (0,0,100,150);" dur="20s" /> </ref> ... </seq> </body> </smil>
In this example, a image with intrinsic size of 233x150 pixels is rendered into a region of size 50x75. An initial viewBox is defined that displays a 50x75 portion of that image, positioned in its top-left corner. During the following 20 seconds, the viewBox is moved across the image according to the behavior of the animate element; the viewBox changes are scheduled at equal points across the animation timeline (in this case, every 5 seconds). During the final animation, the viewBox is extended to implement a zoom-out across the entire image. An illustration of the rendering results is shown below:
This section is normative.
This module does not define any SMIL events.
This section is normative.
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.
The functionality in this module builds on top of the functionality in the Media module, which is a required prerequisite for inclusion of the MediaPanZoom module.
The functionality in this module builds on the viewBox definition of SVG. Unlike SVG, the SMIL viewBox attribute defines a logical sub-image that contains only content within the area defined by the viewBox; SVG uses the viewBox to define a minimum viewing dimension for content, but allowing content outside the viewBox to be displayed in the region.
The MediaPanZoom module does not define a preserveAspectRatio attribute, since this functionality is already provided by the SMIL fit and registration/alignment attributes.
See the full DTD for the SMIL Layout modules.
This section is informative.
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:
Using attribute names with hyphens such as clip-begin and clip-end is problematic when using a scripting language and the DOM to manipulate these attributes. Therefore, this specification adds the attribute names clipBegin and clipEnd as an equivalent alternative to the SMIL 1.0 clip-begin and clip-end attributes. The attribute names with hyphens are deprecated.
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.
Example:
<audio src="radio.wav" clipBegin="marker=song1" clipEnd="marker=moderator1" clip-begin="npt=0s" clip-end="npt=3:50" />
SMIL 1.0 players implementing the recommended extensibility rules of SMIL 1.0 [SMIL10] 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.
The second approach is to use the following steps:
Example:
<smil xmlns="http://www.w3.org/2006/SMIL30/WD/Language"> ... <switch> <audio src="radio.wav" clipBegin="marker=song1" clipEnd="marker=moderator1" system-required="smil2" /> <audio src="radio.wav" clip-begin="npt=0s" clip-end="npt=3:50" /> </switch>
SMIL 1.0 only allowed anchor as a child element of a media element. In addition to anchor (now defined in the Linking module), the param is now allowed as children of a SMIL media object. Additionally, other new children may also be defined by the host language.
The param element provides a generalized mechanism to attach media-specific attributes to media objects. The paramGroup element provides a convenience grouping mechanism to collect commonly used param element definitions into a single unit that may be referenced by multiple media objects.
A new brush element allows the specification of solid color media objects with no associated media.