INTERNET DRAFT
draft-hoschka-smilsdp-00.txt
August 7, 1998
Expires January 1, 1999
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 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.
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" /> <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> </body> </smil>
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:
This SDP field requires defining a new 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.
"origin" is an empty element.
<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>
This SDP field can be mapped onto the "title" property of the SMIL "meta" element.
<smil> <head> <meta name="title" content="SDP Seminar" /> ... </head> ... </smil>
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.
"info" element contains the text of the session description.
<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>
For media-level use, the "info" field can be mapped onto the "title" attribute.
<smil> <body> <audio src="http://www.w3.org/audio.au" title="Audio of SDP seminar" /> </body> </smil>
This SDP field requires defining a new element.
The element can only occur within the "head" part of a SMIL document.
The element contains the URI value.
<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>
This SDP field requires defining a new element.
The element can only occur within the "head" part of a SMIL document.
The element contains the email address
<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"> <head> <sdp:email>ph@w3.org</sdp:email> ... </head> ... </smil>
This session-level SDP field requires defining a new element.
The element can only occur within the "head" part of a SMIL document.
The element contains the phone number.
<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>
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
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 into SMIL, a "meta" element can be used for defining a base URI.
<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.
<smil> <body> <audio src="mbone:224.2.1.1./127/3" /> </body> </smil>
This SDP field requires defining a new element.
"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.
<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.
<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>
This session-level SDP field requires defining a new element.
The element can only occur within the "head" part of a SMIL document.
The "times" element can contain the following element:
<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>
This session-level SDP field requires defining a new 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.
"repeat-times" is an empty element.
<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>
This session-level SDP field requires defining a new 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).
"time-adjustement" is an empty element.
<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>
This SDP field can be used both at the session-level and at the media level. It requires defining a new element.
"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.
<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.
<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>
Unless specified otherwise, SDP attributes are mapped onto a generic "attribute" element.
"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.
<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.
<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>
The "m" SDP field is mapped onto attributes within SMIL media objects.
The following attributes can be added to all SMIL media objects:
<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.
"rtpmap" is an empty element
<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>
The following "suggested attributes" of SDP are not mapped onto an "attribute" element:
All other "suggested attributes" are mapped onto an "attribute" element.
Integrating SDP functionality with SMIL has been originally suggested by several other people to me in private.