W3C

INTERNET DRAFT
draft-hoschka-smilsdp-01.txt
August 30, 1998
Expires February 1, 1999

Integrating SDP Functionality Into SMIL

Philipp Hoschka, W3C


1. Status of this Memo

This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress." Distribution of this memo is unlimited.

This is an update of http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00. It fixes a bug in the example that was pointed out in feedback, and adds pointers to the definitions of the SMIL elements used in the example. The draft has been presented at the 42nd IETF meeting. The conclusion was that this draft provides an interim solution at best. Future work should focus less on keeping in line with the current SDP structure, but rather integrate SDP functionality more directly into SMIL, while reusing the values that have been registered for SDP. Consequently, there are currently no plans for further work on this draft.

Table of Contents

2. Abstract

This document describes an approach for integrating the functionality currently contained in SDP (Session Announcement Protocol) into SMIL (Synchronized Multimedia Integration Language). The motivation is to make it easier for SMIL authors to interface with the existing RTP/MBone infrastructure. Currently, this requires maintaining two different sets of files, each of which use a different text format. Another motivation is to save one network round-trip per RTSP URL in the SMIL file, since the information contained in the SDP file is now directly included in the SMIL file.

3. Example

The following shows how the sdp example contained in the SDP RFC can be integrated into a SMIL file, using the mapping defined in this document.

SDP announcement:

      v=0
      o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
      s=SDP Seminar
      i=A Seminar on the session description protocol
      u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
      e=mjh@isi.edu (Mark Handley)
      c=IN IP4 224.2.17.12/127
      t=2873397496 2873404696
      a=recvonly
      m=audio 49170 RTP/AVP 0
      m=video 51372 RTP/AVP 31
      m=application 32416 udp wb
      a=orient:portrait

Inclusion in SMIL file:

      <smil 
         xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
        <head>
         <sdp:origin username="mhandley" session-id="2890844526" 
              version="2890842807" network-type="IN"
              address-type="IP4" address="126.16.64.4"
          />
         <sdp:times start-time="2873397496" stop-time="2873404696" />
         <meta name="title" content="SDP Seminar" />
         <sdp:info xml:lang="en">
            A Seminar on the session description protocol
         </sdp:info>
         <sdp:uri>
           http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
         </sdp:uri>
         <sdp:email>ph@w3.org</sdp:email>
        </head>
        <body>
          <par>
            <audio src="mbone:224.2.17.12/127" sdp:port="49170"
                   sdp:transport="RTP/AVP" sdp:fmt-list="0" />
            <video src="mbone:224.2.17.12/127" sdp:port="51372"
                   sdp:transport="RTP/AVP" sdp:fmt-list="31" />
            <ref src="mbone:224.2.17.12/127" sdp:port="32416"
                 sdp:transport="udp" type="application/wb" >
              <sdp:attribute attribute-name="orient" value="portrait" /> 
            </ref>
          </par>
        </body>
      </smil>

This example uses the following SMIL elements:

3. Mapping Approach

Only the information contained in a SDP session announcement is mapped onto SMIL. An SDP session announcement consists of several fields. These fields can either be session level fields, or media level fields. In general, information contained in SDP session level fields are mapped into information contained within the "head" part of a SMIL document. Information contained in SDP media level fields is mapped onto information assiocated with individual media objects in a SMIL document.

The mapping below allows integrating all information in a SDP announcement into SMIL.

SDP information is included in a SMIL document in two different ways:

4. Integrating SDP Fields into SMIL

4.1 Origin

This SDP field requires defining a new element.

4.1.1 origin Element

This represents the information of the "orgin" field in SDP. It is mandatory for a SMIL document that is transmitted in a multicast announcement.

Element Attributes
username
Syntax and semantics defined in SDP specification. This is an optional attribute, and the default value is "-".
session-id
Syntax and semantics defined in SDP specification
version
Syntax and semantics defined in SDP specification
network-type
Syntax and semantics defined in SDP specification. This is an optional attribute, and the default value is "IN".
address-type
Syntax and semantics defined in SDP specification. This is an optional attribute, and the default value is "IP4".
address
Syntax and semantics defined in SDP specification
Element Content

"origin" is an empty element.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:origin username="mhandley" session-id="2890844526" 
              version="2890842807" network-type="IN"
              address-type="IP4" address="126.16.64.4"
    />
    ...
  </head>
  ...
</smil>

4.2 Session Name

This SDP field can be mapped onto the "title" property of the SMIL "meta" element.

Example

<smil>
  <head>
    <meta name="title" content="SDP Seminar" />
    ...
  </head>
  ...
</smil>

4.3 Session Info

This SDP field can be used in the session-level section and in a media-level section.

For mapping session-level use into SMIL, this requires defining a new element.

4.3.1 info Element

Element Attributes
xml:lang
Syntax and semantics defined in XML specifiation
Element Content

"info" element contains the text of the session description.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:info xml:lang="en">
      A Seminar on the session description protocol
    </sdp:info>
    ...
  </head>
  ...
</smil>

4.3.2 Media level use

For media-level use, the "info" field can be mapped onto the "title" attribute.

Example

<smil>
  <body>
    <audio src="http://www.w3.org/audio.au" title="Audio of SDP seminar" />
  </body>
</smil>

4.4 URI

This SDP field requires defining a new element.

4.4.1 uri Element

The element can only occur within the "head" part of a SMIL document.

Element Attributes
This element has no attributes.
Element Content

The element contains the URI value.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:uri>http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps</sdp:uri>
    ...
  </head>
  ...
</smil>

4.5 Email Address

This SDP field requires defining a new element.

4.5.1 email Element

The element can only occur within the "head" part of a SMIL document.

Element Attributes
This element has no attributes.
Element Content

The element contains the email address

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:email>ph@w3.org</sdp:email>
    ...
  </head>
  ...
</smil>

4.6 Phone

This session-level SDP field requires defining a new element.

4.6.1 phone Element

The element can only occur within the "head" part of a SMIL document.

Element Attributes
This element has no attributes.
Element Content

The element contains the phone number.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:phone>+1 617 256 8113</sdp:phone>
    ...
  </head>
  ...
</smil>

4.7 Connection Data

The information of this SDP field is contained in the URI identifying the resource.

The network type can either be deduced from the URI scheme, or be completely transparent.

Determining the address type is either not necessary (because the URI contains a hostname), or it can be derived from the URI scheme.

For addressing resources that are multicast, a new "mbone" URI scheme is needed. It looks as follows:

"mbone:"<base multicast address>"/"<ttl>"/"<number of addresses>

@@ check whether consistent with guidelines for doing URIs

Example

mbone:224.2.1.1./127/3

This SDP field can be used in the session-level section and in a media-level section.

For mapping session-level use of connection data into SMIL, a "meta" element can be used for defining a base URI.

Example

<smil>
  <head>
    <meta name="base" content="rtsp://www.w3.org/" />
    ...
  </head>
  ...
</smil>

For mapping media-level use into SMIL, the connection data field can be mapped onto the "src" attribute of a media-object element.

Example

<smil>
  <body>
    <audio src="mbone:224.2.1.1./127/3" />
  </body>
</smil>

4.8 Bandwidth

This SDP field requires defining a new element.

4.8.1 bandwidth Element

Element Attributes
modifier
Syntax and semantics defined in SDP specifiation
bandwidth
Syntax and semantics defined in SDP specifiation
Element Content

"bandwidth" is an empty element.

The "bandwidth"  SDP field can be used in the session-level section and in a media-level section.

Use this field in the session-level section is mapped onto using the "bandwidth" element in the "head" part of a SMIL document.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:bandwidth modifier="CT" bandwidth="28"/>
    ...
  </head>
  ...
</smil>

Use of this field in the media-level section is mapped onto using the "bandwitdh" element as content of a SMIL media object.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <body>
    <audio src="mbone:224.2.1.1./127/3">
      <sdp:bandwidth modifier="CT" bandwidth="28"/>
    </audio>
  </body>
</smil>

4.9 Times

This session-level SDP field requires defining a new element.

4.9.1 times Element

The element can only occur within the "head" part of a SMIL document.

Element Attributes
start-time
Syntax and semantics defined in SDP specifiation
stop-time
Syntax and semantics defined in SDP specifiation
Element Content

The "times" element can contain the following element:

repeat-time
Defined below
zone-adjustement
Defined below
Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:times start-time="3034423619" stop-time="3042462419" />
  </head>
  ..
</smil>

4.10 Repeat Time

This session-level SDP field requires defining a new element.

4.10.1 repeat-time Element

The element can only occur within the "head" part of a SMIL document as content of a "time" element. The "time" element can contain not more than one "repeat-time" element.

Element Attributes
interval
Syntax and semantics defined in SDP specifiation
active-duration
Syntax and semantics defined in SDP specifiation
offsets
A comma seperated list of values whose semantics is defined in the SDP specification
Element Content

"repeat-times" is an empty element.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:times start-time="3034423619" stop-time="3042462419" >
      <sdp:repeat-times interval="604800" active-duration="3600" 
           offsets="0, 9000" />
    </sdp:times>
  </head>
  ...
</smil>

4.11 Time Adjustement

This session-level SDP field requires defining a new element.

4.11.1 time-adjustement Element

The element can only occur within the "head" part of a SMIL document as content of a "time" element. The "time" element can contain multiple "time-adjustement" elements, one for each adjustement (note that this leads to a different structure than used by the "z" field in sdp).

Element Attributes
adjustement-time
Syntax and semantics defined in SDP specifiation
offset
Syntax and semantics defined in SDP specifiation
Element Content

"time-adjustement" is an empty element.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:times start-time="3034423619" stop-time="3042462419" >
      <sdp:repeat-times interval="604800" active-duration="3600" 
           offsets="0, 9000" />
      <sdp:time-adjustement adjustement-time="2882844526" offset="-1h" />
      <sdp:time-adjustement adjustement-time="2898848070" offset="0" />
    </sdp:times>
  </head>
  ...
</smil>

4.12 Encryption Keys

This SDP field can be used both at the session-level and at the media level. It requires defining a new element.

4.12.1 key Element

Element Attributes
method
Syntax and semantics defined in SDP specifiation
encryption-key
Syntax and semantics defined in SDP specifiation
Element Content

"key" is an empty element.

To mimic SDP use of encryption keys at the session-level, the "keys" element is included in the "head" part of the SMIL document.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:key method="clear" key="3042462419" />
  </head>
  ...
</smil>

To mimic SDP-use of encryption keys at the media-level, the "keys" element is included in the content of a SMIL media object element.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <body>
    <audio src="mbone:224.2.1.1./127/3">
      <sdp:key method="clear" key="3042462419" />
    </audio>
  </body>
</smil>

4.13 Attributes

Unless specified otherwise, SDP attributes are mapped onto a generic "attribute" element.

4.13.1 attribute Element

Element Attributes
attribute-name
Syntax and semantics defined in SDP specifiation
value
Syntax and semantics defined in SDP specifiation
Element Content

"attribute" is an empty element

If the attribute is used on the session-level, it is contained in the "head" section of the SMIL document.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <head>
    <sdp:attribute attribute-name="keywords" 
        value="SDP, SMIL, Format, Multimedia" />
  </head>
  ...
</smil>

Otherwise, it is included in the content of a SMIL media-object element.

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <body>
    <audio src="mbone:224.2.1.1./127/3">
      <sdp:attribute attribute-name="ptime" key="40" />
    </audio>
  </body>
</smil>

4.14 Media Announcements

The "m" SDP field is mapped onto attributes within SMIL media objects.

The following attributes can be added to all SMIL media objects:

port
Syntax and semantics defined in SDP specifiation
transport
Syntax and semantics defined in SDP specifiation
fmt-list
Comma-seperated list of values whose syntax and semantics is defined in SDP specifiation

Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <body>
    <audio src="mbone:224.2.1.1./127/3" sdp:port="49170" 
           sdp:transport="RTP/AVP" sdp:fmt-list="31">
    </audio>
  </body>
</smil>

If the media object uses the RTP format, and uses a dynamic payload type, SDP requires the use of the "rtpmap" attribute field. This is mapped onto the "rtpmap" element, which is contained in the content of the media object element.

4.14.1 rtpmap Element

Element Attributes
payload
Syntax and semantics defined in SDP specifiation
encoding
Syntax and semantics defined in SDP specifiation
Element Content

"rtpmap" is an empty element

Example
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00">
  <body>
    <audio src="mbone:224.2.1.1./127/3" sdp:port="49170" 
           sdp:transport="RTP/AVP" sdp:fmt-list="96,97.98">
      <rtpmap payload="96" encoding="L8/8000" />
      <rtpmap payload="97" encoding="L16/8000" />
      <rtpmap payload="98" encoding="L16/11025/2" />
    </audio>
  </body>
</smil>

4.15 Suggested Attributes

The following "suggested attributes" of SDP are not mapped onto an "attribute" element:

All other "suggested attributes" are mapped onto an "attribute" element.

Acknowledgements

Integrating SDP functionality with SMIL has been originally suggested by several other people to me in private.

Authors Address