rfc8849v4.txt   rfc8849.txt 
Internet Engineering Task Force (IETF) R. Even Internet Engineering Task Force (IETF) R. Even
Request for Comments: 8849 Request for Comments: 8849
Category: Standards Track J. Lennox Category: Standards Track J. Lennox
ISSN: 2070-1721 8x8 / Jitsi ISSN: 2070-1721 8x8 / Jitsi
November 2020 January 2021
Mapping RTP Streams to Controlling Multiple Streams for Telepresence Mapping RTP Streams to Controlling Multiple Streams for Telepresence
(CLUE) Media Captures (CLUE) Media Captures
Abstract Abstract
This document describes how the Real-time Transport Protocol (RTP) is This document describes how the Real-time Transport Protocol (RTP) is
used in the context of the Controlling Multiple Streams for used in the context of the Controlling Multiple Streams for
Telepresence (CLUE) protocol. It also describes the mechanisms and Telepresence (CLUE) protocol. It also describes the mechanisms and
recommended practice for mapping RTP media streams, as defined in the recommended practice for mapping RTP media streams, as defined in the
skipping to change at line 36 skipping to change at line 36
received public review and has been approved for publication by the received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841. Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata, Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc8849. https://www.rfc-editor.org/info/rfc8849.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at line 133 skipping to change at line 133
In the Point-to-Point topology, one peer communicates directly with a In the Point-to-Point topology, one peer communicates directly with a
single peer over unicast. There can be one or more RTP sessions, single peer over unicast. There can be one or more RTP sessions,
each sent on a separate 5-tuple, that have a separate SSRC space, each sent on a separate 5-tuple, that have a separate SSRC space,
with each RTP session carrying multiple RTP streams identified by with each RTP session carrying multiple RTP streams identified by
their SSRC. All SSRCs are recognized by the peers based on the their SSRC. All SSRCs are recognized by the peers based on the
information in the RTCP Source description (SDES) report that information in the RTCP Source description (SDES) report that
includes the Canonical Name (CNAME) and SSRC of the sent RTP streams. includes the Canonical Name (CNAME) and SSRC of the sent RTP streams.
There are different Point-to-Point use cases as specified in the CLUE There are different Point-to-Point use cases as specified in the CLUE
use case [RFC7205]. In some cases, a CLUE session that, at a high use case [RFC7205]. In some cases, a CLUE session that, at a high
level, is point-to-point may nonetheless have an RTP stream that is level, is Point-to-Point may nonetheless have an RTP stream that is
best described by one of the mixer topologies. For example, a CLUE best described by one of the mixer topologies. For example, a CLUE
endpoint can produce composite or switched captures for use by a endpoint can produce composite or switched captures for use by a
receiving system with fewer displays than the sender has cameras. receiving system with fewer displays than the sender has cameras.
The Media Capture may be described using an MCC. The Media Capture may be described using an MCC.
For the media mixer topology [RFC7667], the peers communicate only For the media mixer topology [RFC7667], the peers communicate only
with the mixer. The mixer provides mixed or composited media with the mixer. The mixer provides mixed or composited media
streams, using its own SSRC for the sent streams. If needed by the streams, using its own SSRC for the sent streams. If needed by the
CLUE endpoint, the conference roster information including conference CLUE endpoint, the conference roster information including conference
participants, endpoints, media, and media-id (SSRC) can be determined participants, endpoints, media, and media-id (SSRC) can be determined
skipping to change at line 162 skipping to change at line 162
distribution models and RTP stream multiplexing points. distribution models and RTP stream multiplexing points.
Most video conferencing systems today can separate multiple RTP Most video conferencing systems today can separate multiple RTP
sources by placing them into RTP sessions using the SDP description; sources by placing them into RTP sessions using the SDP description;
the video conferencing application can also have some knowledge about the video conferencing application can also have some knowledge about
the purpose of each RTP session. For example, video conferencing the purpose of each RTP session. For example, video conferencing
applications that have a primary video source and a slides video applications that have a primary video source and a slides video
source can send each media source in a separate RTP session with a source can send each media source in a separate RTP session with a
content attribute [RFC4796], enabling different application behavior content attribute [RFC4796], enabling different application behavior
for each received RTP media source. Demultiplexing is for each received RTP media source. Demultiplexing is
straightforward because each media capture is sent as a single RTP straightforward because each Media Capture is sent as a single RTP
stream, with each RTP stream being sent in a separate RTP session, on stream, with each RTP stream being sent in a separate RTP session, on
a distinct UDP 5-tuple. This will also be true for mapping the RTP a distinct UDP 5-tuple. This will also be true for mapping the RTP
streams to Capture Encodings, if each Capture Encoding uses a streams to Capture Encodings, if each Capture Encoding uses a
separate RTP session and the consumer can identify it based on the separate RTP session and the consumer can identify it based on the
receiving RTP port. In this case, SDP only needs to label the RTP receiving RTP port. In this case, SDP only needs to label the RTP
session with an identifier that can be used to identify the Media session with an identifier that can be used to identify the Media
Capture in the CLUE description. The SDP label attribute serves as Capture in the CLUE description. The SDP label attribute serves as
this identifier. this identifier.
Each Capture Encoding MUST be sent as a separate RTP stream. CLUE Each Capture Encoding MUST be sent as a separate RTP stream. CLUE
skipping to change at line 208 skipping to change at line 208
allowing the consumer to use the MC's original source attributes like allowing the consumer to use the MC's original source attributes like
the spatial information. the spatial information.
This mapping temporarily associates the SSRC of the RTP stream This mapping temporarily associates the SSRC of the RTP stream
conveying a particular MCC with the captureID of the single original conveying a particular MCC with the captureID of the single original
MC that is currently switched into the MCC. This mapping cannot be MC that is currently switched into the MCC. This mapping cannot be
used for a composed case where more than one original MC is composed used for a composed case where more than one original MC is composed
into the MCC simultaneously. into the MCC simultaneously.
If there is only one MC in the MCC, then the media provider MUST send If there is only one MC in the MCC, then the media provider MUST send
the captureID of the current constituent MC in the RTP Header the captureID of the current constituent MC in the RTP header
Extension and as an RTCP CaptureID SDES item. When the media extension and as an RTCP CaptureID SDES item. When the media
provider switches the MC it sends within an MCC, it MUST send the provider switches the MC it sends within an MCC, it MUST send the
captureID value for the MC that just switched into the MCC in an RTP captureID value for the MC that just switched into the MCC in an RTP
Header Extension and as an RTCP CaptureID SDES item as specified in header extension and as an RTCP CaptureID SDES item as specified in
[RFC7941]. [RFC7941].
If there is more than one MC composed into the MCC, then the media If there is more than one MC composed into the MCC, then the media
provider MUST NOT send any of the MCs' captureIDs using this provider MUST NOT send any of the MCs' captureIDs using this
mechanism. However, if an MCC is sending Contributing Source (CSRC) mechanism. However, if an MCC is sending Contributing Source (CSRC)
information in the RTP header for a composed capture, it MAY send the information in the RTP header for a composed capture, it MAY send the
captureID values in the RTCP SDES packets giving source information captureID values in the RTCP SDES packets giving source information
for the SSRC values sent as CSRCs. for the SSRC values sent as CSRCs.
If the media provider sends the captureID of a single MC switched If the media provider sends the captureID of a single MC switched
into an MCC, then later sends one composed stream of multiple MCs in into an MCC, then later sends one composed stream of multiple MCs in
the same MCC, it MUST send the special value "-", a single-dash the same MCC, it MUST send the special value "-", a single-dash
character, as the captureID RTP Header Extension and RTCP CaptureID character, as the captureID RTP header extension and RTCP CaptureID
SDES item. The single-dash character indicates there is no SDES item. The single-dash character indicates there is no
applicable value for the MCC constituent CaptureID. The media applicable value for the MCC constituent CaptureID. The media
consumer interprets this as meaning that any previous CaptureID value consumer interprets this as meaning that any previous CaptureID value
associated with this SSRC no longer applies. As [RFC8846] defines associated with this SSRC no longer applies. As [RFC8846] defines
the captureID syntax as "xs:ID", the single-dash character is not a the captureID syntax as "xs:ID", the single-dash character is not a
legal captureID value, so there is no possibility of confusing it legal captureID value, so there is no possibility of confusing it
with an actual captureID. with an actual captureID.
5.1. RTCP CaptureID SDES Item 5.1. RTCP CaptureID SDES Item
skipping to change at line 263 skipping to change at line 263
SDES packet in a noncompound RTCP packet. SDES packet in a noncompound RTCP packet.
5.2. RTP Header Extension 5.2. RTP Header Extension
The CaptureID is also carried in an RTP header extension [RFC8285], The CaptureID is also carried in an RTP header extension [RFC8285],
using the mechanism defined in [RFC7941]. using the mechanism defined in [RFC7941].
Support is negotiated within SDP using the URN "urn:ietf:params:rtp- Support is negotiated within SDP using the URN "urn:ietf:params:rtp-
hdrext:sdes:CaptureID". hdrext:sdes:CaptureID".
The CaptureID is sent in an RTP Header Extension because for switched The CaptureID is sent in an RTP header extension because for switched
captures, receivers need to know which original MC corresponds to the captures, receivers need to know which original MC corresponds to the
media being sent for an MCC, in order to correctly apply geometric media being sent for an MCC, in order to correctly apply geometric
adjustments to the received media. adjustments to the received media.
As discussed in [RFC7941], there is no need to send the CaptId Header As discussed in [RFC7941], there is no need to send the CaptId Header
Extension with all RTP packets. Senders MAY choose to send it only Extension with all RTP packets. Senders MAY choose to send it only
when a new MC is sent. If such a mode is being used, the header when a new MC is sent. If such a mode is being used, the header
extension SHOULD be sent in the first few RTP packets to reduce the extension SHOULD be sent in the first few RTP packets to reduce the
risk of losing it due to packet loss. See [RFC7941] for further risk of losing it due to packet loss. See [RFC7941] for further
discussion. discussion.
6. Examples 6. Examples
In this partial advertisement, the Media Provider advertises a In this partial advertisement, the media provider advertises a
composed capture VC7 made of a big picture representing the current composed capture VC7 made of a big picture representing the current
speaker (VC3) and two picture-in-picture boxes representing the speaker (VC3) and two picture-in-picture boxes representing the
previous speakers (the previous one -- VC5 -- and the oldest one -- previous speakers (the previous one -- VC5 -- and the oldest one --
VC6). VC6).
<ns2:mediaCapture <ns2:mediaCapture
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ns2:videoCaptureType" captureID="VC7" xsi:type="ns2:videoCaptureType" captureID="VC7"
mediaType="video"> mediaType="video">
<ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF> <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
skipping to change at line 512 skipping to change at line 512
Source Description Items", RFC 7941, DOI 10.17487/RFC7941, Source Description Items", RFC 7941, DOI 10.17487/RFC7941,
August 2016, <https://www.rfc-editor.org/info/rfc7941>. August 2016, <https://www.rfc-editor.org/info/rfc7941>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings,
"Negotiating Media Multiplexing Using the Session "Negotiating Media Multiplexing Using the Session
Description Protocol (SDP)", RFC 8843, Description Protocol (SDP)", RFC 8843,
DOI 10.17487/RFC8843, November 2020, DOI 10.17487/RFC8843, January 2021,
<https://www.rfc-editor.org/info/rfc8843>. <https://www.rfc-editor.org/info/rfc8843>.
[RFC8845] Duckworth, M., Ed., Pepperell, A., and S. Wenger, [RFC8845] Duckworth, M., Ed., Pepperell, A., and S. Wenger,
"Framework for Telepresence Multi-Streams", RFC 8845, "Framework for Telepresence Multi-Streams", RFC 8845,
DOI 10.17487/RFC8845, November 2020, DOI 10.17487/RFC8845, January 2021,
<https://www.rfc-editor.org/info/rfc8845>. <https://www.rfc-editor.org/info/rfc8845>.
[RFC8846] Presta, R. and S P. Romano, "An XML Schema for the [RFC8846] Presta, R. and S P. Romano, "An XML Schema for the
Controlling Multiple Streams for Telepresence (CLUE) Data Controlling Multiple Streams for Telepresence (CLUE) Data
Model", RFC 8846, DOI 10.17487/RFC8846, November 2020, Model", RFC 8846, DOI 10.17487/RFC8846, January 2021,
<http://www.rfc-editor.org/info/rfc8846>. <http://www.rfc-editor.org/info/rfc8846>.
10.2. Informative References 10.2. Informative References
[FIPS186] National Institute of Standards and Technology (NIST), [FIPS186] National Institute of Standards and Technology (NIST),
"Digital Signature Standard (DSS)", FIPS, PUB 186-4, "Digital Signature Standard (DSS)", FIPS, PUB 186-4,
DOI 10.6028/NIST.FIPS.186-4, July 2013, DOI 10.6028/NIST.FIPS.186-4, July 2013,
<https://nvlpubs.nist.gov/nistpubs/FIPS/ <https://nvlpubs.nist.gov/nistpubs/FIPS/
NIST.FIPS.186-4.pdf>. NIST.FIPS.186-4.pdf>.
skipping to change at line 619 skipping to change at line 619
<https://www.rfc-editor.org/info/rfc8108>. <https://www.rfc-editor.org/info/rfc8108>.
[RFC8285] Singer, D., Desineni, H., and R. Even, Ed., "A General [RFC8285] Singer, D., Desineni, H., and R. Even, Ed., "A General
Mechanism for RTP Header Extensions", RFC 8285, Mechanism for RTP Header Extensions", RFC 8285,
DOI 10.17487/RFC8285, October 2017, DOI 10.17487/RFC8285, October 2017,
<https://www.rfc-editor.org/info/rfc8285>. <https://www.rfc-editor.org/info/rfc8285>.
[RFC8848] Hanton, R., Kyzivat, P., Xiao, L., and C. Groves, "Session [RFC8848] Hanton, R., Kyzivat, P., Xiao, L., and C. Groves, "Session
Signaling for Controlling Multiple Streams for Signaling for Controlling Multiple Streams for
Telepresence (CLUE)", RFC 8848, DOI 10.17487/RFC8848, Telepresence (CLUE)", RFC 8848, DOI 10.17487/RFC8848,
November 2020, <https://www.rfc-editor.org/info/rfc8848>. January 2021, <https://www.rfc-editor.org/info/rfc8848>.
Acknowledgments Acknowledgments
The authors would like to thank Allyn Romanow and Paul Witty for The authors would like to thank Allyn Romanow and Paul Witty for
contributing text to this work. Magnus Westerlund helped draft the contributing text to this work. Magnus Westerlund helped draft the
security section. security section.
Authors' Addresses Authors' Addresses
Roni Even Roni Even
 End of changes. 13 change blocks. 
14 lines changed or deleted 14 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/