previous   next   contents  

23. SMIL 3.0 Set-Top Box Profile

Editors for SMIL 3.0
Pablo Cesar, CWI/Amsterdam
Dick Bulterman, CWI/Amsterdam
Luiz Fernando Gomes Soares, PUC-RIO
Editors for SMIL 2.1 Extended Mobile Profile
Dick Bulterman, CWI/Amsterdam
Daniel F. Zucker, ACCESS Co., Ltd.

Table of contents

23.1 Abstract

This secion is informative.

The SMIL STB Profile is a collection of SMIL modules that provide extensive support for the SMIL Language for a current (for 2006) STB.

Such a device is expected to have sufficient memory and processor capacity to render nontrival SMIL documents. Although not as complete as the full SMIL Language Profile, the SMIL STB Profile is rich enough to meet the needs of a wide range of interactive presentations.

The SMIL STB Profile builds on the functionality defined for the SMIL Extended Mobile Profile . The functionality of the SMIL STB Profile may be further extended by using the SMIL Basic Profile and Scalability Framework.

23.2 Relationship with the Extended Mobile Profile

This secion is informative.

The STB profile extends the SMIL Extended Mobile Profile by:

  1. Including the SMIL Text and SMIL State, modules.
  2. Including the CustomTestAttributes and MultiWindowLayout modules.
  3. Including the new attributes from the SMIL MediaParam module such as mediaOpacity, mediaBackgroundOpacity, chromaKey, chromaKeyValue, and chromaKeyTolerance attributes.
  4. Including the MediaPamZoom module.

23.3 Open Issues in this Version

This secion is informative.

The open issues at the time of writing this version of the STB Profile are:

23.4 SMIL Set-top Box Profile

This secion is informative.

The SMIL STB Profile is defined as a markup language. The syntax of this language is formally described with a document type definition (DTD) or an XML Schema which is based on the SMIL modules as defined in the "SMIL Modules".

In the text in this profile specification, the term STB Profile will be considered to refer exclusively to the STB Profile as defined in this document.

23.4.1 Design Requirements

The STB Profile design requirements are:

23.4.2 Motivations

The main motivation behind the STB Profile are:

23.5 Introduction

This secion is informative.

23.5.1 What is a STB?

A digital STB is the end-user device for Interactive Television (iTV). The key design consideration for STBs is low-cost. Hence, these devices are quite restricted in terms of their hardware configuration (similar to a PDA). The current characteristics of a typical configuration are: (1) low-power CPU, (2) small amount of flash memory, (3) dedicated hardware audio/video decoder (MPEG-2 or MPEG-4 H.264), and (4) infra-red remote control interface.

23.5.2 iTV Standards

The most imporant service provided by a STB is the audio-visual content, which typically is encoded using MPEG-2 or MPEG-4 (H.264). Two other major services are the Electronic Program Guide (EPG), that provides information about the TV schedule, and the Super Teletext, an enhanced version of the teletext service.

Because only the manufacturer has access to the STB native environment, interactive STBs include an interoperable middleware for third-party development: MHP in Europe, ACAP in USA, and ARIB in Japan. These standardized solutions are composed of a procedural environment (based on Java in MHP and ACAP, and on ECMAScript in ARIB) and a declarative environment (based on XHTML, CSS, and TV specific extensions to DOM).

Relationship of iTV Standards

Relationship between iTV Standards.

The previous mentioned standards provide a text-centric solution to a media-centric problem. Thus, because of the multimedia nature of television, incorporating SMIL capabilities in a STB provides a number of interactive services that can be synchronized with the broadcasted audio-visual material.

23.5.3 Benefits of SMIL for Modelling TV Content

The declarative solutions included in current iTV standards (e.g., XHTML + CSS + scripts, HTML + Java, and XHTML + C) impose a number of technological problems. The major technological problem is that they require the use of scripting for synchronizing XML-based applications with the audio-visual content (e.g., an script is activated, when a broadcast event is recognized). Here, we argue that a standard such as SMIL simplifies the task of service developers by providing a complete declarative solution for synchronization. In addition, the combinations currently in use (e.g., XHTML + CSS) is suitable for text-based information such as web pages. Unfortunately, the use of text in the television environment, apart from subtitles and captions, is not recommended (e.g., viewing distance requires of large fonts, so the actual screen space does not allow to render much text). Hence, a media-centric standard such as SMIL, in which media objects (audio, images, and video) can be synchronized is highly desirable.

Other major advantage of incorporating SMIL into the interactive television devices middleware is the simplicity for broadcasters to produce playlists (schedule of programs). This simplicity might be desirable for the users, as well, because they can create their own playlist with user-generated material and, probably, share it with other users.

23.5.4 Other Technologies

Other technologies that would fit the television model include Java, MPEG-4, and Flash. Java is already supported in current STB, but developers should have a deep knowledge about programming languages (e.g., synchronizing a video using JMF and some text is a non-trivial task involving the knowledge of threading) and the STB environemt, or have to adquire expensive authoring tools. Once again, a declarative approach hides the problems of "how to solve the problem" simplifying the development of services. Second, the primary problems of MPEG-4 BIFS are that it is not a one-to-one sintax language and that it is not possible for one scene to refer to other scene and being exhibit in parallel. Finally, Flash is, nowadays, a very popular technology used for multimedia content in the web. Still, being a proprietary technology, it might not be suited for STB manufacturers and the broadcast community. In addition, Flash is a non-structured technology, uses scripting, and dynamic modifications to a presentation are difficult to manage.

23.5.5 Basic Requirements

There are basic requirements that the STB Profile should take into account:

iTV planes

iTV three different Planes.

23.5.6 STB Configuration

STB environment differs from desktops and mobile terminals. Thus, the STB Profile takes into account current hardware/software restrictions, which are considered as minimal capabilities for a terminal implementing the STB Profile:

23.5.7 Scenarios

The STB Profile is intended for the following scenarios:

The stand-alone scenario only needs a SMIL player installed in the STB. It is the most simple scenario because it does not take into account the actual synchronization of the presentation with the broadcasted audio-visual content. The partial-synchronized broadcast content scenario is intended for applications such as the Super Teletext and EPG. In this case, such applications can include multimedia elements. The SMIL presentation does not need to be synchronized with the audio-visual content, but only fetchs textual information (e.g., latest news and TV shcedule). Finally, the enhanced broadcast contet scenario the SMIL presentation is actually synchonized with the audio-visual content. The following list discusses the scenarios in more detail.

  1. Stand-alone: first, the user has access to multiple multimedia items from different sources such as stored content in his STB and/or return channel capabilities. SMIL language is used as a container for that multimedia content, in which interactive elements can be included (e.g., links, buttons). The user starts the SMIL STB Profile compatible player. The presentation is visualized in the TV screen and the user can interact using the remote control. One example that fits this scenario is a photo show created from the stored pictures in a digital camera. Other example is a simple game.
  2. Partial-Synchronized (Multimedia Teletext and EPG): the player needs to access text-based information (e.g., TV content schedule, latest news) that is broadcasted or stored in an external web server. In this case, it is not necessary that the presentation is synchronized with the audio-visual content. In addition to the broadcasted text-based information, the presentation can include multimedia information such as the last speech of a famous polititian.
  3. Enhanced Broadcast Content: in this scenario, applications synchronized with the broadcast audio-visual content are delivered using the STB Profile. Thus, the SMIL player can run enhanced functionality over the typical video. Some examples include subtitles/captions, animated statics about a football player, or the comments of the coach before a football match.

SMIL Service SMIL Teletext

Two SMIL iTV Services: (left) Interactive Content and (right) Multimedia Teletext.

23.6 Normative Definition of the STB Profile

This section is normative.

23.6.1 Document Conformance

This version of SMIL provides a definition of strictly conforming STB Profile documents, which are restricted to tags and attributes from the SMIL namespace. In the future, the language described in this profile may be extended by other W3C Recommendations, or by private extensions. For these extensions, the following rules must be obeyed:

Conformant STB Profile user agents are expected to handle documents containing extensions that obey these two rules.

23.6.2 STB Profile Conformance

The STB Profile is a conforming SMIL specification. The rules for defining conformant documents are provided in the SMIL Language Conformance in the SMIL Language Profile document. Note that while the referenced section is written for the SMIL Language Profile, all of the rules apply to the STB Profile as well, with the exception that the STB Profile's namespace should be used instead of the SMIL Language Profile's namespace.

STB Profile Namespace

Documents written for the STB Profile must declare a default namespace for its elements with an xmlns attribute on the smil root element with its identifier URI:

<smil xmlns="http://www.w3.org/2006/SMIL30/STB">
   ...
</smil>  

The default namespace declaration must be

xmlns="http://www.w3.org/2006/SMIL30/STB"

Language designers and implementors wishing to extend the STB Profile must consider the implications of the use of namespace extension syntax. Please consult the section on Scalable Profiles for restrictions and recommendations for best practice when extending SMIL.

STB Profile DOCTYPE declaration

A SMIL 3.0 document can contain the following DOCTYPE declaration:

<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 3.0//EN"
                      "http://www.w3.org/2006/SMIL30/SMIL30.dtd">

The SMIL STB Profile DOCTYPE is:

<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL STB//EN"
"http://www.w3.org/2006/SMIL30/SMILSTB.dtd">

If a document contains this declaration, it must be a valid XML document.
Note that this implies that extensions to the syntax defined in the DTD are not allowed. If the document is invalid, the user agent should issue an error.

Conforming SMIL STB Profile User Agents

Since the STB Profile defines a conforming SMIL document, the rules for defining conformant user agents are the same as provided in the Conforming SMIL Language User Agents in the SMIL Language Profile document, with the exception that the conforming user agent must support the STB Profile namespace instead of the SMIL Language Profile namespace.

23.6.3 The SMIL STB Profile

The STB Profile supports the multimedia document features appropriate for STB platforms. It uses only modules from the SMIL recommendation. As the language profile includes the mandatory modules, it is a SMIL Host Language conforming language profile.

The STB Profile includes the following SMIL modules:

The collection names contained in the following table define the STB Profile vocabulary.

STB Profile
Collection Name Elements in Collection
Animation animate, set, animateMotion, animateColor
ContentControl switch, prefetch, customTest, customAttributes
Layout region, root-layout, layout, regPoint, topLayout
LinkAnchor a, area, [anchor]
MediaContent text, img, audio, video, ref, animation, textstream, brush, param, paramGroup
Metainformation meta,
Structure smil, head, body
Schedule par, seq, excl
Transition transition
SMILText smilText, br, span, textStyle, textStyling
State

In the following sections, we define the set of elements and attributes used in each of the modules included in the STB Profile. The content model for each element is described. The content model of an element is a description of elements which can appear as its direct children. The special content model "EMPTY" means that a given element may not have children.

Collection Name Attributes in Collection
Core id (ID), class (NMTOKEN), title (CDATA), alt (CDATA), longdesc (CDATA), xml:base (CDATA)
I18n xml:lang (NMTOKEN)

The id, class and title attributes in the collection Core are defined for all the elements of the STB Profile. The id attribute is used in the STB Profile to assign a unique XML identifier to every element in a SMIL document. In this document, equivalent but deprecated attributes and elements are shown in square brackets.

23.6.4 Animation Module

The Animation Module provides a framework for incorporating animation into a timing framework, and a mechanism for composing the effects of multiple animations. The Animation Module uses the timing modules included in this profile for the underlying model of time. The STB Profile includes the Animation functionality of the BasicAnimation module. The BasicAnimation Module defines the semantics for the animate, set, animateMotion and animateColor elements.

In the STB Profile, Animation elements can have the following attributes and content model :

Animation Module
Elements Attributes Content model
animate Core, I18n, Timing, Test, attributeName, attributeType, targetElement, from, to, by, values, calcMode, accumulate, additive, skip-content, fill (freeze | remove | hold | auto | default) EMPTY
set Core, I18n, Timing, Test, attributeName, attributeType, targetElement, to, skip-content, fill (freeze | remove | hold | auto | default) EMPTY
animateMotion Core, I18n, Timing, Test, targetElement, origin, from, to, by, values, calcMode, accumulate, additive, skip-content, fill (freeze | remove | hold | auto | default) EMPTY
animateColor Core, I18n, Timing, Test, attributeName, attributeType, targetElement, from, to, by, values, calcMode, accumulate, additive, skip-content, fill (freeze | remove | hold | auto | default) EMPTY

This profile adds the animate, set, animateMotion and animateColor elements to the content model of the par, seq, and excl elements of the Timing and Synchronization Modules. It also adds these elements to the content model of the body element of the Structure Module.

Specifying the target element of the animation

The animation target elements supported in the STB Profile are the region element defined in the Layout Modules, the area [anchor] element defined in the Linking Modules and the text, img, audio, animation, video, ref, textstream and the brush elements defined in the Media Objects modules.

The STB Profile uses the targetElement attribute to identify the element to be affected by animation elements. As recommended in the BasicAnimation Module when the targetElement attribute is supported, this profile excludes the XLink attributes href, type, actuate and show from the animate, set, animateMotion and animateColor elements.

Specifying the target attribute of the animation

The target attributes of the animations are a subset of those of the region, area [anchor], and media elements. The animatable attributes of the region, area [anchor], and media elements are listed in the table below.

The area [anchor] element has the coords attribute which can be subject to animation. The attribute coords is considered of type string in this profile. This means that only discrete non-additive animation is supported on this attribute.

Media elements have the following region attributes which can be subject to animation: left, right, top, bottom, width, height, z-index and backgroundColor [background-color].

Elements Target Element Target Attributes
animate region soundLevel, left, right, top, bottom, width, height, z-index, backgroundColor [background-color], regionName
area [anchor] coords(string)
text, img, audio, animation, video, ref, textstream left, right, top, bottom, width, height, z-index, backgroundColor [background-color]
brush left, right, top, bottom, width, height, z-index, backgroundColor [background-color], color
set region soundAlign, soundLevel, left, right, top, bottom, width, height, z-index, backgroundColor [background-color], regionName
area [anchor] coords(string)
text, img, audio, animation, video, ref, textstream left, right, top, bottom, width, height, z-index, backgroundColor [background-color]
brush left, right, top, bottom, width, height, z-index, color
animateMotion region Animates the top and left attributes of the region.
text, img, audio, animation, video, ref, textstream Animates the top and left attributes of the sub-region associated with the media element.
animateColor region backgroundColor [background-color]
text, img, audio, animation, video, ref, textstream backgroundColor [background-color]
brush color

Integration definitions

The STB Profile defines a set of integration definitions as required by the Animation modules. These definitions are:

23.6.5 Content Control Modules

The Content Control Modules provide a framework for selecting content based on a set of test attributes. The Content Control Modules define semantics for the switch and prefetch elements. The STB Profile includes the Content Control functionality of the BasicContentControl, PrefetchControl and SkipContentControl modules.

In the STB Profile, Content Control elements can have the following attributes and content model :

Content Control Module
Elements Attributes Content model
switch Core, I18n, Test ((Schedule | MediaContent | ContentControl | LinkAnchor | Animation)* | (layout )*)
prefetch Core, I18n, Test, Timing, mediaSize, mediaTime, bandwidth, src, skip-content, clipBegin, clipEnd EMPTY
customTest EMPTY
customAttributes EMPTY

This profile adds the switch element to the content model of the par, seq and excl elements of the Timing and Synchronization Modules, of the body and the head elements of the Structure Module, of the content model of the a element of the Linking Modules.

Content Control functionality is used to define the attribute set "Test":

Collection Name Attributes in Collection
Test systemBitrate [system-bitrate], systemCaptions [system-captions], systemLanguage [system-language], system-overdub-or-caption, systemRequired [system-required], systemScreenSize [system-screen-size],systemScreenDepth [system-screen-depth], systemOverdubOrSubtitle, systemAudioDesc, systemOperatingSystem, systemCPU, systemComponent

The Test attributes collection is added to all the elements defined in the STB Profile. A STB user agent must support all of the values for the systemOperatingSystem and systemCPU attributes listed in the Content Control Modules. In addition, the user agent should accept namespaced values as future extensions, and not declare a syntax error. The user agent should return false for unrecognized values of the systemOperatingSystem and systemCPU attributes.

23.6.6 Layout Modules

The Layout Modules provide a framework for spatial layout of visual components. The Layout Modules define semantics for the region, root-layout, layout and the regPoint elements. The STB Profile includes the Layout functionality of the BasicLayout, AudioLayout, SubRegionLayout, BackgroundTilingLayout, AlignmentLayout, OverrideLayout modules.

In the STB Profile, Layout elements can have the following attributes and content model :

Layout Module
Elements Attributes Content model
region Core, I18n, Test, backgroundColor [background-color], backgroundImage, backgroundRepeat, bottom, fit (fill | hidden | meet | meetBest | scroll | slice), height, left, mediaAlign, regAlign, regionName, regPoint, right, showBackground (always | whenActive), skip-content, soundAlign, soundLevel, top, width, z-index region*
root-layout Core, I18n, Test, backgroundColor [background-color], backgroundImage, backgroundRepeat, width, height, skip-content EMPTY
layout Core, I18n, Test, type (root-layout | region | regPoint)*
regPoint Core, I18n, Test, top, bottom, left, right, regAlign ( topLeft|topMid | topRight | midLeft | center | midRight | bottomLeft | bottomMid | bottomRight ), skip-content EMPTY
topLayout EMPTY

The attribute collection SubregionAttributes is defined as follows:

Collection Name Attributes in Collection
SubregionAttributes top, left, bottom, right, width, height, z-index, fit, backgroundColor [background-color], mediaAlign, regPoint, regAlign, soundAlign, soundLevel

This profile adds the layout element to the content model of the head element of the Structure Module. It also adds this element to the content model of the switch element of the Content Control Modules, when the switch element is a child of the head element. The profile also adds the following a

23.6.7 Linking Modules

The Linking Modules provide a framework for relating documents to content, documents and document fragments. The Linking Modules define semantics for the a and area [anchor] elements. They define also the semantics of a set of attributes defined for these elements. The STB Profile includes the Linking functionality of the BasicLinking and LinkingAttributes modules.

Both the a and area [anchor] elements have an href attribute, whose value must be a valid URI.

Support for URIs with XPointer fragment identifier syntax is not required.

In the STB Profile, Linking elements can have the following attributes and content model :

Linking Module
Elements Attributes Content model
a Core, I18n, Timing, Test, href, sourceLevel, destinationLevel, sourcePlaystate (play | pause | stop) 'pause', destinationPlaystate (play | pause) 'play', show (new | replace | pause) 'replace', accesskey, tabindex, target, external, actuate (Schedule | MediaContent | ContentControl | Animation )*
area [anchor] Core, I18n, Timing, Test, shape, coords, href, nohref, sourceLevel, destinationLevel, sourcePlaystate, destinationPlaystate, show, accesskey, tabindex, target, external, actuate, shape, fragment, skip-content (animate | set)*

This profile adds the a element to the content model of the par, seq, and excl elements of the Timing and Synchronization Modules. It also adds these elements to the content model of the body element of the Structure Module.

In the STB Profile, a value of onLoad set on the attribute actuate indicates that the link is automatically traversed when the linking element becomes active. For linking elements containing SMIL timing, this is when the active duration of the linking element begins.

Linking behavior in the STB Profile may be used to navigate within a document or to link across documents. When linking to destinations outside the current document, implementations may ignore the values "play" and "pause" of the sourcePlaystate attribute, and the values "new" and "pause" of the show attribute; in these cases, the semantics of the "stop" attribute (for sourcePlaystate ) and the "replace" attribute (for show) should be used. If an implementation ignores the values of the sourcePlaystate and show attributes, it may also ignore the sourceLevel attribute.

The attribute tabindex specifies the position of the element in the tabbing order at a particular instant for the current document. The tabbing order defines the order in which elements will receive focus when navigated by the user via an input device such as a keyboard. At any particular point in time, only active elements are taken into account for the tabbing order; inactive elements are ignored.

When a media object element has a tabindex attribute and becomes active, then its ordered tab index is inserted in the SMIL tab index at the location specified by the media object's tabindex attribute value. This assumes that the media object itself has tab indices, such as embedded HTML with tabindex attributes. This enables all link starting points in a SMIL presentation to have a place on the ordered list to be tab-keyed through, including those in embedded presentations.

The STB Profile does not define four-way navigation in the current release. A definition for four-way navigation is expected in the future version of SMIL.

23.6.8 Media Object Modules

The Media Object Modules provide a framework for declaring media. The Media Object Modules define semantics for the ref, animation, audio, img, video, text, textstream, param, paramGroup and brushbrush elements. The STB Profile includes the Media Object functionality of the BasicMedia, MediaClipping, MediaParam, BrushMedia and MediaAccessibility modules.

In the STB Profile, media elements can have the following attributes and content model:

Media Object Module
Elements Attributes Content model
text, img, audio, animation, video, ref, textstream Core, I18n, Timing, Test, SubregionAttributes, region, fill (freeze | remove | hold | transition | auto | default), author, copyright, abstract, src, type, erase, mediaRepeat, paramGroup, sensitivity, tabindex, transIn, transOut, clipBegin [clip-begin], clipEnd [clip-end], readIndex, endsync. (param | area [anchor] | switch | Animation)*
brush Core, I18n, Timing, Test, SubregionAttributes, abstract, region, fill (freeze | remove | hold | transition | auto | default), author, copyright, color, skip-content, erase, sensitivity, tabindex, transIn, transOut, readIndex, endsync. (param | area [anchor]| switch | Animation)*
param Core, I18n, Test, name, value, valuetype (data | ref | object), type, skip-content EMPTY
paramGroup Core, I18n, Test, skip-content (param)*

This profile adds the ref, animation, audio, img, video, text, textstream and brush elements to the content model of the par, seq, and excl elements of the Timing and Synchronization Modules and also adds these elements to the content model of the body element of the Structure Module. It also adds these elements to the content model of the a element of the Linking Modules. Lastly, this profile adds the paramGroup element to the region element of the Layout Modules.

The following elements are allowed as children of a media object reference: anchor, area [anchor], param, animate, set, animateColor, animateMotion. The a element is not included in this list. The switch element is allowed, with the restriction that in this case the content of the switch may only be from the same set of elements as is listed above.

Widely Supported Content Types

This section is informative.

The members of the W3C SYMM Working Group recommend that at least the following content types and file formats be supported by STB user agents:

Media Object Integration Requirements

This section is normative.

The MediaParam module defines the erase attribute, and defers definition of the "display area" to the language profile. "Display area" for the purposes of the STB Profile corresponds to a SMIL BasicLayout region. The effects of erase="never" apply after the active duration of the media object and any fill period (defined by SMIL Timing and Synchronization), and only until other media plays to the region targeted by the media object, or until the same media object restarts.

23.6.9 Metainformation Module

The Metainformation Module provides a framework for describing a document, either to inform the human user or to assist in automation. The Metainformation Module defines semantics for the meta and elements. The STB Profile includes the Metainformation functionality of the Metainformation module.

In the STB Profile, Metainformation elements can have the following attributes and content model :

Metainformation Module
Elements Attributes Content model
meta Core, I18n, skip-content, content (CDATA), name (CDATA) EMPTY
Core, I18n, skip-content EMPTY

This profile adds the meta element to the content model of the head element of the Structure Module.

The content model of metadata is empty. Profiles that extend the STB Profile may define the RDF (Resource Description Framework) schema to be used in extending the content model of the metadata element. The Resource Description Framework is defined in the W3C RDF Recommendation [RDFsyntax].

23.6.10 Structure Module

The Structure Module provides a framework for structuring a SMIL document. The Structure Module defines semantics for the smil, head, and body elements. The STB Profile includes the Structure functionality of the Structure module.

In the STB Profile, the Structure elements can have the following attributes and content model :

Structure Module
Elements Attributes Content model
smil Core, I18n, Test, xmlns (head?,body?)
head Core, I18n (meta*,(,meta*)?,((layout|switch),meta*)?, (transition+,meta*)?, (paramGroup+,meta*)?)
body Core, I18n, Timing, fill, abstract, author, copyright (Schedule | MediaContent | ContentControl | a )*

The body element acts as the root element to span the timing tree. The body element has the behavior of a seq element. Timing on the body element is supported. The syncbase of the body element is the application begin time, which is implementation dependent, as is the application end time. Note that the effect of fill on the body element is between the end of the presentation and the application end time, and therefore the effect of fill is implementation dependent.

23.6.11 Timing and Synchronization Modules

The Timing and Synchronization Modules provide a framework for describing timing structure, timing control properties and temporal relationships between elements. The Timing and Synchronization Modules define semantics for par, seq and excl elements. In addition, these modules define semantics for attributes including begin, dur, end, repeat (deprecated), repeatCount, repeatDur, min, max. The STB Profile includes the Timing and Synchronization functionality of the BasicInlineTiming, EventTiming, MinMaxTiming, RepeatTiming, MultiArcTiming, AccessKeyTiming, BasicTimeContainers, BasicExclTimeContainers modules.

In the STB Profile, Timing and Synchronization elements can have the following attributes and content model :

Timing and Synchronization Module
Elements Attributes Content model
par Core, I18n, Timing, Test, endsync, fill (freeze | remove | hold | auto | default), abstract, author, copyright, region (Schedule | MediaContent | ContentControl | a | Animation)*
seq Core, I18n, Timing, Test, fill (freeze | remove | hold | auto | default), abstract, author, copyright, region (Schedule | MediaContent | ContentControl | a | Animation) *
excl Core, I18n, Timing, Test, endsync, skip-content, fill (freeze | remove | hold | auto | default ), abstract, author, copyright, region ((Schedule | MediaContent | ContentControl | a | Animation)*

The Attribute collection Timing is defined as follows:

Collection Name Attributes in Collection
Timing begin, dur, end, repeat, repeatCount, repeatDur, min, max

This profile adds the par, seq, and excl elements to the content model of the body element of the Structure Module and adds these elements to the content model of the a element of the Linking Modules.

Elements of the Media Object Modules have the attributes describing timing and properties of contents.

Supported Event Symbols

The STB Profile specifies which types of events can be used as part of the begin and end attribute values. The supported events are described as Event-symbols according to the syntax introduced in the SMIL Timing and Synchronization module.

The supported event symbols in the DTB Profile are:

Event example
focusInEvent (In DOM Level 2: "DOMFocusIn") end="foo.focusInEvent + 3s"
focusOutEvent (In DOM Level 2: "DOMFocusOut") begin="foo.focusOutEvent"
activateEvent (In DOM Level 2: "DOMActivate") begin="foo.activateEvent"
beginEvent begin="foo.beginEvent + 2s"
endEvent end="foo.endEvent + 2s"
repeatEvent end="foo.repeatEvent"
inBoundsEvent end="foo.inBoundsEvent"
outOfBoundsEvent begin="foo.outOfBoundsEvent + 5s"

As defined by the SMIL syncbase timing semantics, any event timing attributes that reference an invalid time-value description will be treated as if "indefinite" were specified.

Event semantics

focusInEvent:
Raised when a media element gets the keyboard focus in its rendering space, i.e., when it becomes the media element to which all subsequent keystroke-event information is passed. Once an element has the keyboard focus, it continues to have it until a user action or DOM method call either removes the focus from it or gives the focus to another media element, or until its rendering space is removed. Only one media element can have the focus at any particular time. The focusInEvent is delivered to media elements only, and does not bubble.
focusOutEvent:
Raised when a media element loses the keyboard focus from its rendering space, i.e., when it stops being the media element to which all subsequent keystroke-event information is passed. The focusOutEvent is delivered to media elements only, and does not bubble.
activateEvent:
Raised when a media element is activated by user input such as by a mouse click within its visible rendering space or by specific keystrokes when the element has the keyboard focus. The activateEvent is delivered to media elements only, and does not bubble.
beginEvent:
Raised when the element actually begins playback of its active duration. If an element does not ever begin playing, this event is never raised. If an element has a repeat count, beginEvent is only raised at the beginning of the first iteration. The beginEvent is delivered to elements that support timing, such as media elements and time containers, and does not bubble.
endEvent:
Raised when an element actually ends playback; this is when its active duration is reached or whenever a playing element is stopped. In the following example,
<ref id="x" end="30s" src="15s.mpg" />
<ref id="y" end="10s" src="20s.mpg" />
<ref id="z" repeatCount="4" src="5s.mpg" />

x.endEvent occurs at roughly 30s when the active duration is reached, y.endEvent occurs at roughly 10s when the playback of the continuous media is ended early by the active duration being reached, and z.endEvent occurs at roughly 20s when the fourth and final repeat has completed, thus reaching the end of its active duration. The endEvent is delivered to elements which support timing, such as media elements and time containers, and does not bubble.

repeatEvent:
Raised when the second and subsequent iterations of a repeated element begin playback. An element that has no repeatDur, repeatCount, or repeat attribute but that plays two or more times due to multiple begin times will not raise a repeatEvent when it restarts. Also, children of a time container that repeats will not raise their own repeatEvents when their parent repeats and they begin playing again. The repeatEvent is delivered to elements which support timing, such as media elements and time containers, and does not bubble.
inBoundsEvent:
Raised when one of the following happens:
  • by any input from the mouse or other input device that brings the mouse cursor from outside to within the bounds of a media element's rendering space, regardless of what part, if any, of that rendering space is visible at the time, i.e., z-order is not a factor.
  • by any other action that moves the "cursor" or "pointer", as defined by the implementation, from outside to within the bounds of a media element's rendering space, regardless of what part, if any, of that rendering space is visible at the time, i.e., z-order is not a factor. An implementation may decide, for instance, to raise an inBoundsEvent on an element whenever it gets the focus, including when keystrokes give it the focus.

A media element's bounds are restrained by the bounds of the region in which it is contained., i.e., a media element's bounds do not extend beyond its region's bounds. The inBoundsEvent is delivered to media elements only, and does not bubble.

Note that, unlike with keyboard focus which can only be active on one object at a time, the state of being within an object's bounds can be true for multiple objects simultaneously. For instance, if one object is on top of another and the cursor is placed on top of both objects, both would have raised an inBoundsEvent more recently than the raising of any respective outOfBoundsEvent. If a player does not support a pointer cursor, then these players will typically not generate the inBoundsEvent and outOfBoundEvent events.

outOfBoundsEvent:
Raised when one of the following happens:
  • by any input from the mouse or other input device that brings the mouse cursor from within to outside the bounds of a media element's rendering space, regardless of what part, if any, of that rendering space is visible at the time,
  • by any other action that moves the "cursor" or "pointer", as defined by the implementation, from within to outside the bounds of a media element's rendering space, regardless of what part, if any, of that rendering space is visible at the time.

A media element's bounds are restrained by its region's bounds, i.e., a media element's bounds do not extend beyond its region's bounds. The outOfBoundsEvent is delivered to media elements only, and does not bubble.

Order of raising of simultaneous events:

There will be cases where events occur simultaneously. To ensure that each STB implementation handles them in the same order, the following order must be used to resolve ties:

  1. InBoundsEvent
  2. focusInEvent (should follow 1)
  3. activateEvent (should follow 2)
  4. OutOfBoundsEvent
  5. focusOutEvent (should follow 4)
  6. endEvent
  7. beginEvent (must follow 6)
  8. repeatEvent

Events are listed in order of precedence, e.g., if event #6 in this list occurs at the same time as event #7, then #6 must be raised prior to #7.

The InBoundsEvent, focusInEvent, OutOfBoundsEvent, activateEvent, and focusOutEvent events do not bubble and are delivered to the target media element.

The beginEvent, endEvent and repeatEvent events do not bubble and are delivered to the timed element on which the event occurs.

Extending the set of supported events

The STB Profile supports an extensible set of events. In order to resolve possible name conflicts with the events that are supported in this profile qualified event names are supported. Namespace prefixes are used to qualify the event names. As a result, the colon is reserved in begin and end attributes for qualifying event names.

For example:

<smil ... xmlns:example="http://www.example.com">
   <img id="foo" .../> 
   <audio begin="foo.example:focusInEvent".../>
    ... 
</smil>

Integration definitions

A SMIL document's begin time is defined as the moment a user agent begins the timeline for the overall document. A SMIL document's end time is defined as equal to the end time of the body element.

23.6.12 Transition Effects Modules

The Transition Effects Modules provide a framework for describing transitions such as fades and wipes. The Transition Modules define semantics for the transition element. The STB Profile includes the functionality of the BasicTransitions and FullScreenTransitions modules.

In the STB Profile, Transition Effects elements have the following attributes and content model :

Transition Effects Module
Elements Attributes Content model
transition Core, I18n, Test, dur, type, subtype, startProgress, endProgress, direction, fadeColor, scope, skip-content EMPTY

This profile adds the transition element to the content model of the head element of the Structure Module.

The Transition Effects Modules add transIn and transOut attributes to ref, animation, audio, img, video, text, textstream and brush elements of the Media Object Modules.

The Transition Effects Modules add the transition value to the fill attribute for all elements on which this value of the fill attribute is supported.

23.6.13 SMILText Module

To be updated

In the STB Profile, SMILText elements have the following attributes and content model :

SMILText Module
Elements Attributes Content model
smilText EMPTY
br EMPTY
span EMPTY
textStyle EMPTY
textStyling EMPTY

23.6.14 State Module

To be updated

23.7 Appendix A: SMIL 3.0 Document Type Definition

This section is normative.

The STB Profile Document Type Definition is defined as a set of SMIL 3.0 modules. All SMIL 3.0 modules are integrated according to the guidelines in the W3C Note "Synchronized Multimedia Modules based upon SMIL 1.0" [SMIL-MOD], and defined within their respective module sections.

Examples

This section is informative.

The following examples provide an indication of the use of the STB Profile that provides an interactive service for a digital television programs.

Example 1: in this example, an interactive application can be launched by the user, while watching television content.

00 <smil>
01  <head>

...
02   <layout>
03    <root-layout height="640" width="810" backgroundColor="black"/>
04    <region id="background_region" height="100%" width="100%" z-index="1"/>
05    <region id="video_region" height="100%" width="100%" z-index="2"/>
06    <region id="publicity_bat_region" left="68%" height="32%" width="32%" z-index="1"/> 
07    <region id="icon_bat_region" left="12%" top="24%" height="39" width="68" z-index="1"/>

08   </layout>
09  </head>
10  <body>
 
    ...

11   <par>
12    <img id="background_image" region="background_region" src="..."/> 
13     <excl id="tv_content" dur="indefinite">

14      <priorityClass peers="pause">
15       <par begin="0s">
16        <video id="video_content" region="video_region" src="..."/>
17        <par begin="18s" dur="1s"> 
18         <img id=”icon_battery” region=”icon_bat_region” src=".."/>
19         <img id=”launch_battery_commercial” begin=”accesskey(YELLOW_KEY)/>

20        </par>
21        <par id="battery_publicity" begin="launch_battery_commercial.begin">
22         <animate targetElement="video_content" attributeName="top" to="0"/>
23         <animate targetElement="video_content" attributeName="left" to="20"/>
24         <animate targetElement="video_content" attributeName="width" to="424"/>
25         <animate targetElement="video_content" attributeName="height" to="286"/>

26         <video id="commercial" region="publicity_bat_region" src="..." begin="0s"/>
27        </par>
28       </par> 
29      </priorityClass>
30     </excl>
31    </par>

32   </body>
33 </smil>

The video is transmitted to the user (line 16). After 18 seconds, an icon that indicates the user that he can launch an interactive application is shown to the end-user during one second (line 17-20). If the user presses the correct remote control key (line 19) during that interval:

  1. The video is paused (line 14)
  2. The size and location of the video are modified (lines 22 to 25)
  3. A commercial is shown to the end-user (line 26)

When the commercial finishes, everything comes back to normal because of the nature of the exclusive. In case the user does not press the button, the video content is not interrupted. In addition, in combination with customControls the actual commercial (e.g., targeted to a specific user), the language of the commercial (e.g., targeted to a specific country), and even to not to have the commercial icon at all (e.g., if the end-user is paying a fee for non-commercial content).

Example 2: the following example provides an indication of the use of the STB Profile that provides a number of digital television packages:

00  <smil>
01   <head>
...
02    <layout>

03     <root-layout height="640" width="810" backgroundColor="black"/>
04     <region id="background_region" height="100%" width="100%" z-index="1"/>
05     <region id="video_region" height="100%" width="100%" z-index="2"/>
06     <region id="subtitles_region" height="20%" width="100%" z-index="1"/>
07     <region id="package_logo_region" left="80%" top="20%" height="20%" width="20%" z-index="1"/>
08     <region id="program_logo_region" left="60%" top="20%" height="20%" width="20%" z-index="1"/>
09    </layout>
10   </head>

11   <body>
 
    ...

12    <par>
13     <img id="background_image" region="background_region" src="..."/>  
14     <seq>
15       <video id="documental_south_america" src="..." region="video_region"/>
16       <video id="news_at_9" src="..." region="video_region"/>
17       <video id="series_friends" src="..." region="video_region"/>
18       <video id="movie_city_of_god" src="..." region="video_region"/>
19     </seq>  
20    </par>

21   </body>
22  </smil>

This television content is simply composed of a sequence of video fragments.

Example 3: the following example extends Example 2 by including the metadata of each package:

    ...
15       <video id="documental_south_america" src="..." region="video_region">
16        <metadata ..."metadata of the video"...>
    ...
17        </metadata>
18       </video>
    ...

Example 4: The following example extends Example 2 by including a number of sequences within each package:

    ...
14     <seq>
15       <seq>
16        <video id="documental_south_america" src="..." region="video_region" clipBegin="00:00:00" clipEnd="00:00:15"/>
17        <video id="documental_south_america" src="..." region="video_region" clipBegin="00:00:15" clipEnd="00:00:30"/>
18       </seq>
19     </seq>
    ...

The package contains two (sequence one in line 16 and sequence 2 in line 17).

Example 5: the following example extends Example 4 by including the metadata of sequence of the package:

  
    ...
15        <video id="documental_south_america" src="..." region="video_region" clipBegin="00:00:00" clipEnd="00:00:15">
16         <metadata ..."metadata of the video"...>
    ...
17         </metadata>
18        </video>
    ...

The metadata associated to the video is included between lines 16 and 17.

Example 6: the following example extends Example 4 by including the subtitles of each of the sequences:

    ...
15       <seq>
16        <par>
17         <video id="documental_south_america" src="..." region="video_region" clipBegin="00:00:00" clipEnd="00:00:15"/>
18          <smilText region="subtitles_region"/>
19           subtitles of sequence one in program one in package one
20          </smilText>
21        </par>
22       </seq>
    ...

In this case, we include a parallel in to synchronize the video and the subtitles.

Example 7: the following example provides an indication of the use of the STB Profile that provides a rich-content digital television channel:

00  <smil>

01   <head>
...
02    <layout>
03     <root-layout height="640" width="810" backgroundColor="black"/>
04     <region id="background_region" height="100%" width="100%" z-index="1"/>
05     <region id="video_region" height="100%" width="100%" z-index="2"/>
06     <region id="subtitles_region" height="20%" width="100%" z-index="1"/> 

07     <region id="package_logo_region" left="80%" top="20%" height="20%" width="20%" z-index="1"/>
07     <region id="program_logo_region" left="60%" top="20%" height="20%" width="20%" z-index="1"/>
08    </layout>
09   </head>
10   <body>
 
    ...

11    <par>

12     <img id="background_image" region="background_region" src="..."/>  
13     <seq>
14      <par>
15       <img id="package_1_logo" region="package_logo_region" src="..." mediaOpacity="80%">
16        <metadata ..."metadata of package one"...>
    ...
17        </metadata>

         </img>
18       <seq>
19        <par>
20         <img id="program_1_1_logo" region="program_logo_region src="..." mediaOpacity="80%"">
21          <metadata ..."metadata of program one in package one"...>
    ...
22          </metadata>

23         </img>
24         <seq> 
25          <par>   
26           <video clipBegin="00:00:00" clipEnd="00:15:00" src="..." region="video_region">
27            <metadata ..."metadata of this video sequence"...>
    ...
28            </metadata>

29           </video>
30           <smilText region="subtitles_region"/>
31            subtitles of sequence one in program one in package one
32           </smilText>
33          </par> 
34          <par>   
35           <video clipBegin="00:15:00" clipEnd="00:30:00" src="..." region="video_region">

36            <metadata ..."metadata of this video sequence"...>
    ...
37            </metadata>
38           </video>
39           <smilText region="subtitles_region"/>
40            subtitles of sequence two in program one in package one
41           </smilText>
42          </par>

43         </seq>
44        </par>
45        <par>
46         <img id="program_1_2_logo" region="program_logo_region src="..." mediaOpacity="80%"">
47          <metadata ..."metadata of program two in package one"...>
    ...
48          </metadata>

49         </img>
50         <seq> 
51          <par>   
52           <video clipBegin="00:00:00" clipEnd="00:15:00" src="..." region="video_region">
53            <metadata ..."metadata of this video sequence"...>
    ...
54            </metadata>

55           </video>
56           <smilText region="subtitles_region"/>
57            subtitles of sequence one in program two in package one
58           </smilText>
58          </par> 
60          <par>   
61           <video clipBegin="00:15:00" clipEnd="00:30:00" src="..." region="video_region">

62            <metadata ..."metadata of this video sequence"...>
    ...
63            </metadata>
64           </video>
65           <smilText region="subtitles_region"/>
66            subtitles of sequence two in program two in package one
67           </smilText>
68          </par>

69         </seq>
70        </par>
71       </seq>
72      </par>
73      <par>
74       <img id="package_2_logo" region="package_logo_region" src="..." mediaOpacity="80%">

75        <metadata ..."metadata of package two"...>
    ...
76        </metadata>
         </img>
77       <seq>
78        <par>
79         <img id="program_2_1_logo" region="program_logo_region src="..." mediaOpacity="80%"">

80          <metadata ..."metadata of program one in package two"...>
    ...
81          </metadata>
82         </img>
83         <seq> 
84          <par>   
85           <video clipBegin="00:00:00" clipEnd="00:15:00" src="..." region="video_region">

86            <metadata ..."metadata of this video sequence"...>
    ...
87            </metadata>
88           </video>
89           <smilText region="subtitles_region"/>
90            subtitles of sequence one in program one in package two
91           </smilText>
92          </par> 

93          <par>   
94           <video clipBegin="00:15:00" clipEnd="00:30:00" src="..." region="video_region">
95            <metadata ..."metadata of this video sequence"...>
    ...
96            </metadata>
97           </video>
98           <smilText region="subtitles_region"/>

99            subtitles of sequence two in program one in package two
100          </smilText>
101         </par>
102        </seq>
103       </par>
104       <par>
105        <img id="program_2_2_logo" region="program_logo_region src="..." mediaOpacity="80%"">

106         <metadata ..."metadata of program two in package two"...>
    ...
107         </metadata>
108        </img>
109        <seq> 
110         <par>   
111          <video clipBegin="00:15:00" clipEnd="00:00:15" src="..." region="video_region">

112           <metadata ..."metadata of this video sequence"...>
    ...
113           </metadata>
114          </video>
115          <smilText region="subtitles_region"/>
116           subtitles of sequence one in program two in package two
117          </smilText>
118         </par> 

119         <par>   
120          <video clipBegin="00:00:15" clipEnd="00:00:30" src="..." region="video_region">
121           <metadata ..."metadata of this video sequence"...>
    ...
122           </metadata>
123          </video>
124          <smilText region="subtitles_region"/>

125           subtitles of sequence two in program two in package two
126          </smilText>
127         </par>
128        </seq>
129       </par>
130      </seq>
131     </par>

132    </seq>
133   </par>
133  </body>
134 </smil>

In this example, two different packages (package one from line 14 to 72 and package two from line 73 to 131) are broadcasted. In addition, an image of the logo of each package is transmitted to the end-user device (line 15 represents the image of the logo of package one) together with the metadata defining each package (lines 16 to 17 represent the metadata associated to package one).

If we take a closer look at one of the packages, for example package one (from line 14 to 72), it contains two programs (program one from line 19 to 44 and program two from line 45 to 70). In addition, an image of the logo of each program is transmitted to the end-user device (line 20 represents the image of the logo of program one in package one) togeher with the metadata defining each package (lines 21 to 22 represent the metadata associated to program one in package one).

If we take a closer lool at one of the programs, for example program one (from line 19 to 44), it contains two sequences (sequence one from line 25 to 33 and sequence two from line 34 to 44). Each sequence is composed of video content (lines 26 to 29 for sequence one), metadata associated to the video content (lines 27 to 28 for sequence one), and the subtitles (lines 30 to 32 for sequence one).

This complex example shows the richness of the SMIL STB Profile; in which the level of granularity of the content (and metadata) can be defined by the broadcaster. In addition, it provides the means for fine-grained searching of content. In addition, packages coming, for example, from other sources (e.g., optical disk) can be combined with broascast packages. Finally, end-user generated content can be included as well.


previous   next   contents