mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-30 21:22:15 -05:00
0.12
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1887 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
parent
4a37fec1c8
commit
02462c6e4c
83
xep-0180.xml
83
xep-0180.xml
@ -20,13 +20,19 @@
|
|||||||
</dependencies>
|
</dependencies>
|
||||||
<supersedes/>
|
<supersedes/>
|
||||||
<supersededby/>
|
<supersededby/>
|
||||||
<shortname>TO BE ASSIGNED</shortname>
|
<shortname>NOT_YET_ASSIGNED</shortname>
|
||||||
&stpeter;
|
&stpeter;
|
||||||
<author>
|
<author>
|
||||||
<firstname>Milton</firstname>
|
<firstname>Milton</firstname>
|
||||||
<surname>Chen</surname>
|
<surname>Chen</surname>
|
||||||
<email>Milton.Chen@vseelab.com</email>
|
<email>Milton.Chen@vseelab.com</email>
|
||||||
</author>
|
</author>
|
||||||
|
<revision>
|
||||||
|
<version>0.12</version>
|
||||||
|
<date>2008-05-28</date>
|
||||||
|
<initials>psa</initials>
|
||||||
|
<remark><p>Specified default value for profile attribute; clarified relationship to SDP offer-answer model; moved some attributes from payload-type element to optional parameter elements.</p></remark>
|
||||||
|
</revision>
|
||||||
<revision>
|
<revision>
|
||||||
<version>0.11</version>
|
<version>0.11</version>
|
||||||
<date>2008-02-28</date>
|
<date>2008-02-28</date>
|
||||||
@ -133,7 +139,9 @@
|
|||||||
<p>A Jingle video session is described by a content type that contains one application format and one transport method. The application format consists of one or more encodings contained within a wrapper <description/> element qualified by the 'urn:xmpp:tmp:jingle:apps:video-rtp' namespace &NSNOTE;. In the language of <cite>RFC 4566</cite> each encoding is a payload-type; therefore, each <payload-type/> element specifies an encoding that can be used for the audio stream, as illustrated in the following example.</p>
|
<p>A Jingle video session is described by a content type that contains one application format and one transport method. The application format consists of one or more encodings contained within a wrapper <description/> element qualified by the 'urn:xmpp:tmp:jingle:apps:video-rtp' namespace &NSNOTE;. In the language of <cite>RFC 4566</cite> each encoding is a payload-type; therefore, each <payload-type/> element specifies an encoding that can be used for the audio stream, as illustrated in the following example.</p>
|
||||||
<example caption="Video description format"><![CDATA[
|
<example caption="Video description format"><![CDATA[
|
||||||
<description xmlns='urn:xmpp:tmp:jingle:apps:video-rtp'>
|
<description xmlns='urn:xmpp:tmp:jingle:apps:video-rtp'>
|
||||||
<payload-type id='96' name='theora' clockrate='90000' height='720' width='1280'>
|
<payload-type id='96' name='theora' clockrate='90000'>
|
||||||
|
<parameter name='height' value='720'/>
|
||||||
|
<parameter name='width' value='1280'/>
|
||||||
<parameter name='delivery-method' value='inline'/>
|
<parameter name='delivery-method' value='inline'/>
|
||||||
<parameter name='configuration' value='somebase16string'/>
|
<parameter name='configuration' value='somebase16string'/>
|
||||||
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
||||||
@ -144,7 +152,7 @@
|
|||||||
</description>
|
</description>
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>The &DESCRIPTION; element is intended to be a child of a &CONTENT; element as specified in <cite>XEP-0166</cite>.</p>
|
<p>The &DESCRIPTION; element is intended to be a child of a &CONTENT; element as specified in <cite>XEP-0166</cite>.</p>
|
||||||
<p>The &DESCRIPTION; element SHOULD possess a 'profile' attribute that specifies the profile of RTP in use as would be encapsulated in SDP (e.g., "RTP/AVP" or "UDP/TLS/RTP/SAVP").</p>
|
<p>The &DESCRIPTION; element SHOULD possess a 'profile' attribute that specifies the profile of RTP in use as would be encapsulated in SDP (e.g., "RTP/AVP" or "UDP/TLS/RTP/SAVP"). If not included, the default value of "RTP/AVP" MUST be assumed.</p>
|
||||||
<p>The encodings SHOULD be provided in order of preference by placing the most-preferred &PAYLOADTYPE; element as the first child of the &DESCRIPTION; element (etc.).</p>
|
<p>The encodings SHOULD be provided in order of preference by placing the most-preferred &PAYLOADTYPE; element as the first child of the &DESCRIPTION; element (etc.).</p>
|
||||||
<p>The allowable attributes of the &PAYLOADTYPE; element are as follows:</p>
|
<p>The allowable attributes of the &PAYLOADTYPE; element are as follows:</p>
|
||||||
<table caption='Payload-Type Attributes'>
|
<table caption='Payload-Type Attributes'>
|
||||||
@ -166,57 +174,21 @@
|
|||||||
<td>positiveInteger</td>
|
<td>positiveInteger</td>
|
||||||
<td>RECOMMENDED</td>
|
<td>RECOMMENDED</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>height</td>
|
|
||||||
<td>The vertical extent of the displayed video, in pixels</td>
|
|
||||||
<td>positiveInteger</td>
|
|
||||||
<td>RECOMMENDED</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>id</td>
|
<td>id</td>
|
||||||
<td>A unique identifier for the payload type</td>
|
<td>A unique identifier for the payload type</td>
|
||||||
<td>positiveInteger</td>
|
<td>positiveInteger</td>
|
||||||
<td>REQUIRED</td>
|
<td>REQUIRED</td>
|
||||||
</tr>
|
</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>
|
<tr>
|
||||||
<td>name</td>
|
<td>name</td>
|
||||||
<td>A name for the payload type</td>
|
<td>A name for the payload type</td>
|
||||||
<td>string</td>
|
<td>string</td>
|
||||||
<td>RECOMMENDED for static payload types, REQUIRED for dynamic payload types</td>
|
<td>RECOMMENDED for static payload types, REQUIRED for dynamic payload types</td>
|
||||||
</tr>
|
</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>
|
</table>
|
||||||
<p>In Jingle Video, the encodings are used in the context of RTP. 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 payload IDs are represented in the 'id' attribute.</p>
|
<p>In Jingle Video, the encodings are used in the context of RTP. 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 payload IDs are represented in the 'id' attribute.</p>
|
||||||
<p>Each <payload-type/> element MAY contain one or more child elements that specify particular parameters related to the payload. For example, as described in &rtpspeex;, the "cng", "mode", and "vbr" parameters may be specified in relation to usage of the Speex <note>See <<link url='http://www.speex.org/'>http://www.speex.org/</link>>.</note> codec. Where such parameters are encoded via the "fmtp" SDP attribute, they shall be represented in Jingle via the following format:</p>
|
<p>Each <payload-type/> element MAY contain one or more child elements that specify particular parameters related to the payload. For example, as described in &rtptheora;, the "configuration", "configuration-uri", "delivery-method", "height", "sampling", and "width" parameters may be specified in relation to usage of the Theora <note>See <<link url='http://www.theora.org/'>http://www.theora.org/</link>>.</note> codec. Where such parameters are encoded via the "fmtp" SDP attribute, they shall be represented in Jingle via the following format:</p>
|
||||||
<code><![CDATA[
|
<code><![CDATA[
|
||||||
<parameter name='foo' value='bar'/>
|
<parameter name='foo' value='bar'/>
|
||||||
]]></code>
|
]]></code>
|
||||||
@ -224,7 +196,7 @@
|
|||||||
</section1>
|
</section1>
|
||||||
|
|
||||||
<section1 topic='Negotiating a Jingle Video Session' anchor='negotiation'>
|
<section1 topic='Negotiating a Jingle Video Session' anchor='negotiation'>
|
||||||
<p>When the initiator sends a session-initiate stanza to the responder, the &DESCRIPTION; element includes all of the payload types that the initiator can receive for Jingle video (each one encapsulated in a separate &PAYLOADTYPE; element):</p>
|
<p>When the initiator sends a session-initiate stanza to the responder, the &DESCRIPTION; element includes all of the payload types that the initiator can send and/or receive for Jingle video, each one encapsulated in a separate &PAYLOADTYPE; element (the rules specified in &rfc3264; SHOULD be followed regarding inclusion of payload types).</p>
|
||||||
<example caption="Initiation"><![CDATA[
|
<example caption="Initiation"><![CDATA[
|
||||||
<iq from='romeo@montague.net/orchard'
|
<iq from='romeo@montague.net/orchard'
|
||||||
to='juliet@capulet.com/balcony'
|
to='juliet@capulet.com/balcony'
|
||||||
@ -236,7 +208,9 @@
|
|||||||
sid='v1d30k1ll3dth3r4d10st4r'>
|
sid='v1d30k1ll3dth3r4d10st4r'>
|
||||||
<content content='initiator' name='this-is-the-video-content'>
|
<content content='initiator' name='this-is-the-video-content'>
|
||||||
<description xmlns='urn:xmpp:tmp:jingle:apps:video-rtp' profile='RTP/AVP'>
|
<description xmlns='urn:xmpp:tmp:jingle:apps:video-rtp' profile='RTP/AVP'>
|
||||||
<payload-type id='96' name='theora' clockrate='90000' height='720' width='1280'>
|
<payload-type id='96' name='theora' clockrate='90000'>
|
||||||
|
<parameter name='height' value='720'/>
|
||||||
|
<parameter name='width' value='1280'/>
|
||||||
<parameter name='delivery-method' value='inline'/>
|
<parameter name='delivery-method' value='inline'/>
|
||||||
<parameter name='configuration' value='somebase16string'/>
|
<parameter name='configuration' value='somebase16string'/>
|
||||||
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
||||||
@ -269,7 +243,7 @@
|
|||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.net/orchard'
|
||||||
type='result' />
|
type='result' />
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>If the responder wishes to accept the content definition, it MUST send a content-accept action to the initiator, which SHOULD include a list of the payload types that it can receive. The list that the responder sends MAY include any payload types (not a subset of the payload types sent by the initiator) but SHOULD retain the ID numbers specified by the initiator. The order of the &PAYLOADTYPE; elements indicates the responder's preferences, with the most-preferred types first.</p>
|
<p>If the responder wishes to accept the content definition, it MUST send a content-accept action to the initiator, which SHOULD include a list of the payload types that it can send and/or receive. The list that the responder sends MAY include any payload types (not a subset of the payload types sent by the initiator) but SHOULD retain the ID numbers specified by the initiator. The order of the &PAYLOADTYPE; elements indicates the responder's preferences, with the most-preferred types first.</p>
|
||||||
<example caption="Responder accepts content type"><![CDATA[
|
<example caption="Responder accepts content type"><![CDATA[
|
||||||
<iq from='juliet@capulet.com/balcony'
|
<iq from='juliet@capulet.com/balcony'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.net/orchard'
|
||||||
@ -281,7 +255,9 @@
|
|||||||
sid='v1d30k1ll3dth3r4d10st4r'>
|
sid='v1d30k1ll3dth3r4d10st4r'>
|
||||||
<content content='initiator' name='this-is-the-video-content'>
|
<content content='initiator' name='this-is-the-video-content'>
|
||||||
<description xmlns='urn:xmpp:tmp:jingle:apps:video-rtp' profile='RTP/AVP'>
|
<description xmlns='urn:xmpp:tmp:jingle:apps:video-rtp' profile='RTP/AVP'>
|
||||||
<payload-type id='96' name='theora' height='720' width='1280'>
|
<payload-type id='96' name='theora' clockrate='90000'>
|
||||||
|
<parameter name='height' value='720'/>
|
||||||
|
<parameter name='width' value='1280'/>
|
||||||
<parameter name='delivery-method' value='inline'/>
|
<parameter name='delivery-method' value='inline'/>
|
||||||
<parameter name='configuration' value='somebase16string'/>
|
<parameter name='configuration' value='somebase16string'/>
|
||||||
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
||||||
@ -314,7 +290,9 @@
|
|||||||
sid='v1d30k1ll3dth3r4d10st4r'>
|
sid='v1d30k1ll3dth3r4d10st4r'>
|
||||||
<content content='initiator' name='this-is-the-video-content'>
|
<content content='initiator' name='this-is-the-video-content'>
|
||||||
<description xmlns='urn:xmpp:tmp:jingle:apps:video-rtp' profile='RTP/AVP'>
|
<description xmlns='urn:xmpp:tmp:jingle:apps:video-rtp' profile='RTP/AVP'>
|
||||||
<payload-type id='96' name='theora' height='720' width='1280'>
|
<payload-type id='96' name='theora' clockrate='90000'>
|
||||||
|
<parameter name='height' value='720'/>
|
||||||
|
<parameter name='width' value='1280'/>
|
||||||
<parameter name='delivery-method' value='inline'/>
|
<parameter name='delivery-method' value='inline'/>
|
||||||
<parameter name='configuration' value='somebase16string'/>
|
<parameter name='configuration' value='somebase16string'/>
|
||||||
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
||||||
@ -371,17 +349,18 @@ m=video 9000 RTP/AVP 28
|
|||||||
<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>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>
|
<p>For example, consider a VC-1 payload such as that described in &rfc4425;:</p>
|
||||||
<example caption="Jingle format for dynamic payload-type"><![CDATA[
|
<example caption="Jingle format for dynamic payload-type"><![CDATA[
|
||||||
<payload-type id='98' name='vc1' height='288' width='352'/>
|
<payload-type id='98' name='vc1'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>That Jingle-formatted information would be mapped to SDP as follows:</p>
|
<p>That Jingle-formatted information would be mapped to SDP as follows:</p>
|
||||||
<example caption="SDP mapping of dynamic payload-type"><![CDATA[
|
<example caption="SDP mapping of dynamic payload-type"><![CDATA[
|
||||||
m=video 49170 RTP/AVP 98
|
m=video 49170 RTP/AVP 98
|
||||||
a=rtpmap:98 vc1/90000
|
a=rtpmap:98 vc1/90000
|
||||||
a=fmtp:98 width=352;height=288;
|
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>As noted, if additional parameters are to be specified, they shall be represented as attributes of the <payload-type/> element or its child <parameter/> element, as in the following example.</p>
|
<p>As noted, if additional parameters are to be specified, they shall be represented as attributes of the <payload-type/> element or its child <parameter/> element, as in the following example.</p>
|
||||||
<example caption="Jingle format for dynamic payload-type with parameters"><![CDATA[
|
<example caption="Jingle format for dynamic payload-type with parameters"><![CDATA[
|
||||||
<payload-type id='96' name='theora' height='720' width='1280'>
|
<payload-type id='96' name='theora' clockrate='90000'>
|
||||||
|
<parameter name='height' value='720'/>
|
||||||
|
<parameter name='width' value='1280'/>
|
||||||
<parameter name='delivery-method' value='inline'/>
|
<parameter name='delivery-method' value='inline'/>
|
||||||
<parameter name='configuration' value='somebase16string'/>
|
<parameter name='configuration' value='somebase16string'/>
|
||||||
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
<parameter name='sampling' value='YCbCr-4:2:2'/>
|
||||||
@ -499,7 +478,7 @@ delivery-method=inline; configuration=somebase16string;
|
|||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element ref='payload-type' minOccurs='0' maxOccurs='unbounded'/>
|
<xs:element ref='payload-type' minOccurs='0' maxOccurs='unbounded'/>
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
<xs:attribute name='profile' use='optional' type='xs:string'/>
|
<xs:attribute name='profile' use='required' type='xs:string' default='RTP/AVP'/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|
||||||
@ -510,14 +489,8 @@ delivery-method=inline; configuration=somebase16string;
|
|||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
<xs:attribute name='channels' type='xs:integer' use='optional' default='1'/>
|
<xs:attribute name='channels' type='xs:integer' use='optional' default='1'/>
|
||||||
<xs:attribute name='clockrate' type='xs:short' use='optional'/>
|
<xs:attribute name='clockrate' type='xs:short' use='optional'/>
|
||||||
<xs:attribute name='height' type='xs:nonNegativeInteger' use='optional'/>
|
|
||||||
<xs:attribute name='id' type='xs:unsignedByte' use='required'/>
|
<xs:attribute name='id' type='xs:unsignedByte' use='required'/>
|
||||||
<xs:attribute name='layer' type='xs:nonNegativeInteger' use='optional'/>
|
|
||||||
<xs:attribute name='name' type='xs:string' use='optional'/>
|
<xs:attribute name='name' type='xs:string' use='optional'/>
|
||||||
<xs:attribute name='transparent' type='xs:boolean' use='optional'/>
|
|
||||||
<xs:attribute name='width' type='xs:nonNegativeInteger' use='optional'/>
|
|
||||||
<xs:attribute name='x' type='xs:integer' use='optional'/>
|
|
||||||
<xs:attribute name='y' type='xs:integer' use='optional'/>
|
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user