git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@859 4b5297f7-1745-476d-ba37-a9c6900126ab
xep-0352-v0.2
Peter Saint-Andre 2007-05-23 18:04:17 +00:00
parent a30c4b375b
commit 25dbbfee79
1 changed files with 34 additions and 17 deletions

View File

@ -27,6 +27,12 @@
<surname>Chen</surname>
<email>Milton.Chen@vseelab.com</email>
</author>
<revision>
<version>0.8</version>
<date>2007-05-23</date>
<initials>psa</initials>
<remark><p>Corrected examples to use video codecs; added clockrate attribute.</p></remark>
</revision>
<revision>
<version>0.7</version>
<date>2007-05-23</date>
@ -109,15 +115,14 @@
<p>A Jingle video session is described by one or more encodings contained within a wrapper &DESCRIPTION; element. In the language of <cite>RFC 4566</cite> these encodings are payload-types; therefore, each &lt;payload-type/&gt; child element specifies an encoding that can be used for the video stream. Such encodings are often used in the context of the Real-time Transfer Protocol (RTP; see <cite>RFC 3550</cite>) but may be used in other contexts as well. The most common encodings for the Audio/Video Profile (AVP) of RTP are listed in &rfc3551; (these "static" types are reserved from payload ID 0 through payload ID 95), although other encodings are allowed (these "dynamic" types use payload IDs 96 to 127) in accordance with the dynamic assignment rules described in Section 3 of <cite>RFC 3551</cite>. The &PAYLOADTYPE; element's 'id' attribute is REQUIRED and its 'name' attribute is RECOMMENDED. The encodings SHOULD be provided in order of preference.</p>
<example caption="Video Description Format"><![CDATA[
<description xmlns='http://www.xmpp.org/extensions/xep-0180.html#ns'>
<payload-type id='96' name='theora' height='720' width='1280'>
<payload-type id='96' name='theora' clockrate='90000' height='720' width='1280'>
<parameter name='delivery-method' value='inline'/>
<parameter name='configutation' value='somebase16string'/>
<parameter name='sampling' value='YCbCr-4:2:2'/>
</payload-type>
<payload-type id='18' name='G729'/>
<payload-type id='99' name='IPCMWB'/>
<payload-type id='105' name='L16' transparent='true'/>
<payload-type id='13' name='CN'/>
<payload-type id='28' name='nv' clockrate='90000'/>
<payload-type id='25' name='CelB' clockrate='90000'/>
<payload-type id='32' name='MPV' clockrate='90000'/>
</description>
]]></example>
<p>The &DESCRIPTION; element is intended to be a child of a &CONTENT; element as specified in <cite>XEP-0166</cite>.</p>
@ -127,51 +132,67 @@
<th>Attribute</th>
<th>Description</th>
<th>Datatype/Units</th>
<th>Inclusion</th>
</tr>
<tr>
<td>channels</td>
<td>The number of channels (e.g., 2 for stereoscopic video)</td>
<td>positiveInteger (defaults to 1)</td>
<td>OPTIONAL</td>
</tr>
<tr>
<td>clockrate</td>
<td>The sampling frequency in Hertz</td>
<td>positiveInteger</td>
<td>RECOMMENDED</td>
</tr>
<tr>
<td>height</td>
<td>The vertical extent of the displayed video, in pixels</td>
<td>positiveInteger</td>
<td>RECOMMENDED</td>
</tr>
<tr>
<td>id</td>
<td>A unique identifier for the payload type</td>
<td>positiveInteger</td>
<td>REQUIRED</td>
</tr>
<tr>
<td>layer</td>
<td>The relationship of a layer to the "bottom" of the stack, where 0 = bottom (the first layer)</td>
<td>nonNegativeInteger</td>
<td>OPTIONAL</td>
</tr>
<tr>
<td>name</td>
<td>A name for the payload type</td>
<td>string</td>
<td>RECOMMENDED for static payload types, REQUIRED for dynamic payload types</td>
</tr>
<tr>
<td>transparent</td>
<td>Whether or not a layer is transparent</td>
<td>boolean</td>
<td>OPTIONAL</td>
</tr>
<tr>
<td>width</td>
<td>The horizontal extent of the displayed video, in pixels</td>
<td>positiveInteger</td>
<td>RECOMMENDED</td>
</tr>
<tr>
<td>x</td>
<td>The horizontal starting point of a tile, in pixels from the origin point</td>
<td>positiveInteger</td>
<td>OPTIONAL</td>
</tr>
<tr>
<td>y</td>
<td>The vertical starting point of a tile, in pixels from the origin point</td>
<td>positiveInteger</td>
<td>OPTIONAL</td>
</tr>
</table>
<p>Each &lt;payload-type/&gt; element MAY contain one or more child elements that specify particular parameters related to the payload. For example, as described in <cite>draft-ietf-avt-rtp-theora</cite> <note>This Internet-Draft has expired; see &lt;<link url='http://svn.xiph.org/trunk/theora/doc/draft-ietf-avt-rtp-theora-00.txt'>http://svn.xiph.org/trunk/theora/doc/draft-ietf-avt-rtp-theora-00.txt</link>&gt; for an archived version.</note>, the "configuration", "configuration-uri", "delivery-method", and "sampling", parameters may be specified in relation to usage of the Theora <note>See &lt;<link url='http://www.theora.org/'>http://www.theora.org/</link>&gt;.</note> codec. Where such parameters are encoded via the "fmtp" SDP attribute, they shall be represented in Jingle via the following format:</p>
@ -194,14 +215,14 @@
sid='v1d30k1ll3dth3r4d10st4r'>
<content content='initiator' name='this-is-the-video-content' profile='RTP/AVP'>
<description xmlns='http://www.xmpp.org/extensions/xep-0167.html#ns'>
<payload-type id='96' name='theora' height='720' width='1280'>
<payload-type id='96' name='theora' clockrate='90000' height='720' width='1280'>
<parameter name='delivery-method' value='inline'/>
<parameter name='configutation' value='somebase16string'/>
<parameter name='sampling' value='YCbCr-4:2:2'/>
</payload-type>
<payload-type id='18' name='G729'/>
<payload-type id='103' name='L16' clockrate='16000' channels='2'/>
<payload-type id='98' name='x-ISAC' clockrate='8000'/>
<payload-type id='28' name='nv' clockrate='90000'/>
<payload-type id='25' name='CelB' clockrate='90000'/>
<payload-type id='32' name='MPV' clockrate='90000'/>
</description>
<transport xmlns='http://www.xmpp.org/extensions/xep-0176.html#ns-udp'/>
</content>
@ -244,12 +265,8 @@
<parameter name='configutation' value='somebase16string'/>
<parameter name='sampling' value='YCbCr-4:2:2'/>
</payload-type>
<payload-type id='18' name='G729'/>
<payload-type id='0' name='PCMU' />
<payload-type id='102' name='iLBC'/>
<payload-type id='4' name='G723'/>
<payload-type id='8' name='PCMA'/>
<payload-type id='13' name='CN'/>
<payload-type id='32' name='MPV' clockrate='90000'/>
<payload-type id='33' name='MP2T' clockrate='90000'/>
</description>
<transport xmlns='http://www.xmpp.org/extensions/xep-0176.html#ns-udp'/>
</content>
@ -310,10 +327,10 @@ m=<media> <port> <transport> <fmt list>
<p>In the context of Jingle video sessions, the &lt;media&gt; is "video", the &lt;port&gt; is the preferred port for such communications (which may be determined dynamically), the &lt;transport&gt; is whatever transport method is negotiated via the Jingle negotiation (e.g., "RTP/AVT"), and the &lt;fmt list&gt; is the payload-type ID.</p>
<p>For example, consider the following static payload-type:</p>
<example caption="Jingle Format for Static Payload-Type"><![CDATA[
<payload-type id="13" name="CN"/>
<payload-type id="28" name="nv"/>
]]></example>
<example caption="SDP Mapping of Static Payload-Type"><![CDATA[
m=video 9999 RTP/AVP 13
m=video 9000 RTP/AVP 28
]]></example>
<p>If the payload type is dynamic (payload-type IDs 96 through 127 inclusive), it SHOULD be mapped to an SDP media field plus an SDP attribute field named "rtpmap".</p>
<p>For example, consider a VC-1 payload such as that described in &rfc4425;:</p>