Internet DRAFT - draft-alvestrand-rtcweb-resolution
draft-alvestrand-rtcweb-resolution
Network Working Group H. Alvestrand
Internet-Draft Google
Intended status: Standards Track April 30, 2012
Expires: November 1, 2012
RTCWEB Resolution Negotiation
draft-alvestrand-rtcweb-resolution-00
Abstract
This draft offers a proposal for a fragment of the SDP usage rules
for RTCWEB: Requirements for supporting resolution negotiation.
It proposes to use SDP both for initial and within-call resolution
configuration, and suggests that COP should be mentioned as an
optional, not mandatory, mechanism.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents 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 "work in progress."
This Internet-Draft will expire on November 1, 2012.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
Alvestrand Expires November 1, 2012 [Page 1]
Internet-Draft Resolution negotiation April 2012
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Initial negotiation of parameters . . . . . . . . . . . . . . 4
4. Per-stream declaration of desired video resolution . . . . . . 5
4.1. SDP-based per-stream declaration . . . . . . . . . . . . . 5
4.2. COP-based per-stream declaration . . . . . . . . . . . . . 6
4.3. Tradeoffs discussion . . . . . . . . . . . . . . . . . . . 6
5. Usage considerations . . . . . . . . . . . . . . . . . . . . . 7
6. Relation to WebRTC API constraints . . . . . . . . . . . . . . 8
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
8. Security Considerations . . . . . . . . . . . . . . . . . . . 9
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9
10.1. Normative References . . . . . . . . . . . . . . . . . . . 9
10.2. Informative References . . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 10
Alvestrand Expires November 1, 2012 [Page 2]
Internet-Draft Resolution negotiation April 2012
1. Introduction
This draft offers a proposal for a fragment of the SDP usage rules
for RTCWEB: Requirements for supporting resolution negotiation.
It proposes to use SDP, [RFC6236] in particular, both for initial and
within-call resolution configuration, with the "a=recv-
ssrc:imageattr" mechanism from
[I-D.lennox-mmusic-sdp-source-selection] as a per-stream mechanism,
and suggests that Codec Operation Point (COP) specified in
[I-D.westerlund-avtext-codec-operation-point] should be mentioned as
an optional, not mandatory, mechanism.
2. Requirements
The relevant requirement for video resolution negotiation from the
RTCWEB use cases document
[I-D.ietf-rtcweb-use-cases-and-requirements] is:
o F25 The browser SHOULD use encoding of streams suitable for the
current rendering (e.g. video display size) and SHOULD change
parameters if the rendering changes during the session.
The scenarios from which this requirement is derived are:
o 4.2.1 Simple Video Communication Service - user changes size of
video during the session.
o 4.2.2 Simple Video Communication Service, NAT/FW that blocks UDP -
as above
o 4.2.3 Simple Video Communication Service, global service provider
- as above
o 4.2.4 Simple Video Communication Service, enterprise aspects - as
above
o 4.2.5 Simple Video Communication Service, access change -
bandwidth available changes dramatically during call (wired
Ethernet to 3G)
o 4.2.6 Simple Video Communication Service, QoS - as 4.2.5
o 4.2.7 Simple Video Communication Service with sharing - as above
o 4.2.8 Simple video communication service with inter-operator
callling - as above
Alvestrand Expires November 1, 2012 [Page 3]
Internet-Draft Resolution negotiation April 2012
o 4.2.10 Multiparty video communication - user changes size of video
o (4.3.3 Video conferencing system with central server does NOT list
F25 as a derived requirement, but notes that "it is important that
the delay from when a video stream is selected for display until
the video can be displayed is short").
Formulating the requirements in a form more amenable to
implementation, there needs to be specified functions that allow the
implementation:
o To negotiate a maximum spatial resolution for all videos at call
setup time
o To negotiate a maximum temporal resolution ("frame rate") across
all videos at call setup time
o To negotiate other parameters as needed to ensure that the sender
will not send a stream that the receiver is unable to handle.
o To indicate the desire of the recipient for a particular spatial
or temporal resolution on a particular video source, at any given
time during the call
o To indicate the intent of the sender to send a video source in a
particular spatial or temporal resolution, at any given time
during the call
This document does not mention other requirements.
3. Initial negotiation of parameters
We assume that the normal (payload-dependent) procedures for codec
negotiation are sufficient to negotiate any codec parameters needed
to ensure that the decoder can handle all incoming streams.
After the initial negotiation, the following variables MUST have a
known value for each RTP session (represented by one or more m=
lines):
o The maximum X-resolution of any handlable video stream
o The maximum Y-resolution of any handlable video stream
o The maximum bitrate in bits per second
Alvestrand Expires November 1, 2012 [Page 4]
Internet-Draft Resolution negotiation April 2012
o The maximum framerate in frames per second
An RTCWEB client MUST support negotiation of resolution using the
"imageattr" attribute, as documented in [RFC6236].
An RTCWEB client MUST support a SAR value of 1.0 (square pixels), and
MAY choose to support only the 1.0 value of the "sar" attribute.
The interpretation of the negotiation is that any video stream in the
m= line containing the a=imageattr attribute will have a resolution
within the bounds established by the negotiation.
An RTCWEB client MUST support negotiation of the "a=framerate"
attribute, as specified in [RFC4566] section 6. Note that this is an
upper bound on framerate; there is no lower bound negotiated.
These bounds MAY be renegotiated over the course of the call, but
MUST NOT be renegotiated to render any currently transmitted video
stream out of bounds
These bounds may be supplemented by payload-specific mechanisms, and
there is no guarantee that all resolutions within the bounds can be
supported.
4. Per-stream declaration of desired video resolution
4.1. SDP-based per-stream declaration
An RTCWEB client MUST support per-SSRC requests for video
resolutions, as described in
[I-D.lennox-mmusic-sdp-source-selection]. To be precise, it MUST
support the a=remote-ssrc:<ssrc> framerate: and a=remote-
ssrc:<ssrc>imageattr: attributes.
This satisfies the requirement to indicate the desire of the
recipient for a particular spatial or temporal resolution.
We assume that the media sent from a sender to a receiver contains
enough information inside the media format to tell what the
resolution and framerate is.
The bounds specified for a single stream MUST be within the bounds
previously negotiated for the whole session.
This mechanism does not form a negotiation; as specified in the
referenced document, it is a declaration by the recipient of what
stream formats he desires, and the sender will respond by changing
Alvestrand Expires November 1, 2012 [Page 5]
Internet-Draft Resolution negotiation April 2012
the video he sends. The sender SHOULD honor the requests by the
receiver.
The mere fact that a stream is within the bounds negotiated for the
session is not a sufficient condition for guaranteeing that the
stream will be accepted; any number of issues, including temporary
lack of resources at the recipient. Thus, the sender MUST always be
prepared for one or more media streams to be refused by the
recipient.
4.2. COP-based per-stream declaration
An RTCWEB client MAY support the COP mechanism
[I-D.westerlund-avtext-codec-operation-point] to negotiate the
resolution of video within the limits established by the SDP
negotiation without the need for additional SDP exchanges.
4.3. Tradeoffs discussion
This section may be deleted before publication as an RFC; its main
purpose is to discuss the decision to make the SDP-based mechanism a
MUST and the COP-based mechanism a MAY.
Both mechanisms work by having the receiver declare a wish for a
resolution, and the sender switching to that resolution. The main
differences are:
o In SDP, given the nature of the RTCWEB signalling model, the
notification that a change is needed must be sent to the
Javascript, which then has to use the createOffer mechanism to
create a suitable SDP object, and use whatever mechanism is used
for negotiation to send that request to the sender.
o In COP, the decision to signal can possibly be taken either at
Javascript level or inside the browser, but once the decision is
taken, all further messaging is done by the browser using RTCP
packets; Javascript is not involved.
o For SDP, signalling follows the signalling path, which may be via
a data channel along the media path, or may be via a completely
different mechanism.
o For COP, signalling always follows the media path's return path.
o For SDP, the unbounded nature of the imageattr= specification
allows a wide variety of sizes to be requested, including possibly
unsuitable ones.
Alvestrand Expires November 1, 2012 [Page 6]
Internet-Draft Resolution negotiation April 2012
o For COP, the list of alternatives is created explicitly using the
Operation Point mechanism.
o For SDP, the signalling transport is (presumably) done using a
reliable transport
o For COP, timeout and retransmission must be implemented in the
requester.
o For SDP, if imageattr= is already supported, the changes to the
parsers involved are small.
o For COP, support involves embedding a completely new functionality
set within the RTCP components of the RTP-supporting libraries.
o For SDP, the defining draft specifies some other mechanisms that
are not mentioned here, such as "pause".
o For COP, the defining draft specifies some configurations that are
not part of the RTCWEB requirements set, such as multicast.
o SDP does not consider the case of substreams for scalable video
media.
o COP deos consider configuration of substreams.
o For SDP, an IPR disclosure seeming to assert RF licensing has been
made against the defining draft [ipr-ssrc].
o For COP, an IPR disclosure asserting RAND (not RF) licensing has
been made against the defining draft, with no assertion on which
parts of the draft it applies to. [ipr-cop]
5. Usage considerations
This section notes briefly some of the situations in which resizing
might be desirable.
o Change of display window size on screen (window manager resize,
for instance)
o Changing the display target between a smaller and a larger window
("large current talker", for instance)
o Retargeting of the display to a different display surface ("attach
external monitor", for instance)
Alvestrand Expires November 1, 2012 [Page 7]
Internet-Draft Resolution negotiation April 2012
o Temporary CPU or GPU overload due to media stream processing
conflicting with other tasks, including handling a large number of
media streams
o Recovery from such overload situations
o <<< more? >>>
Adaptation to bandwidth changes (congestion control) is NOT included
in this set, since a more correct model for this is that it should be
detected by the sender and the receiver operating in tandem, and the
sender should decide which flows, if any, need their bitrates
changed.
Turning video streams off (mute) is also not included; use of "size =
0" has been suggested as one mechanism for video mute, but this
proposed mechanism is not addressed in this memo.
6. Relation to WebRTC API constraints
It is intended that the resolution negotiation be influenced by the
constraints set by the application of either mandatory or optional
constraints at the WebRTC API, as registered in the registry
established by [I-D.burnett-rtcweb-constraints-registry].
The following relationships hold for all attributes that the
implementation intends to satisfy (note that the constraints listed
here have NOT been registered yet):
video-min-height >= value of imageattr y= xyrange lower bound
video-max-height <= value of imageattr y= xyrange upper bound
video-min-framerate is not represented in SDP
video-max-framerate <= value of a=framerate attribute
video-min-aspect-ratio <= value of imageattr "par=" prange lower
bound
video-max-aspect-ratio >= value of imageattr "par=" prange upper
bound
The implementation is free to increase "min" values or decrease "max"
values (make requirements more restrictive) and add "step" in order
to fit with its implementation restrictions.
Alvestrand Expires November 1, 2012 [Page 8]
Internet-Draft Resolution negotiation April 2012
Constraints specified at PeerConnection creation time are reflected
as SDP-wide values. Constraints specified when creating a
MediaStream or attaching a MediaStream to a PeerConnection are
reflected as ssrc-specific values.
The envisioned usage is that the application will not use the values
specified by the client directly, but choose the minimum of the
specified bounds and the implementation limitations of the browser,
adjusted for any odd requirements of the codec or soft/hardware, and
choose a representation in the SDP that adequately represents the
possible configurations.
7. IANA Considerations
This document makes no request of IANA.
Note to RFC Editor: this section may be removed on publication as an
RFC.
8. Security Considerations
All considerations related to normal usage of SDP apply to this memo.
9. Acknowledgements
10. References
10.1. Normative References
[I-D.burnett-rtcweb-constraints-registry]
Burnett, D., "IANA Registry for RTCWeb Media Constraints",
draft-burnett-rtcweb-constraints-registry-00 (work in
progress), March 2012.
[I-D.ietf-rtcweb-use-cases-and-requirements]
Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real-
Time Communication Use-cases and Requirements",
draft-ietf-rtcweb-use-cases-and-requirements-06 (work in
progress), October 2011.
[I-D.lennox-mmusic-sdp-source-selection]
Lennox, J. and H. Schulzrinne, "Mechanisms for Media
Source Selection in the Session Description Protocol
(SDP)", draft-lennox-mmusic-sdp-source-selection-03 (work
Alvestrand Expires November 1, 2012 [Page 9]
Internet-Draft Resolution negotiation April 2012
in progress), January 2012.
[I-D.westerlund-avtext-codec-operation-point]
Westerlund, M., Burman, B., and L. Hamm, "Codec Operation
Point RTCP Extension",
draft-westerlund-avtext-codec-operation-point-00 (work in
progress), March 2012.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[RFC6236] Johansson, I. and K. Jung, "Negotiation of Generic Image
Attributes in the Session Description Protocol (SDP)",
RFC 6236, May 2011.
10.2. Informative References
[ipr-cop] "Telefonaktiebolaget LM Ericsson (publ)'s Statement about
IPR related to
draft-westerlund-avtext-codec-operation-point-00 -
https://datatracker.ietf.org/ipr/1701/", March 2012.
[ipr-ssrc]
"Vidyo, Inc.'s Statement about IPR related to
draft-lennox-mmusic-sdp-source-selection-00 -
https://datatracker.ietf.org/ipr/1170/".
Author's Address
Harald Alvestrand
Google
Email: harald@alvestrand.no
Alvestrand Expires November 1, 2012 [Page 10]