[rtcweb] Resolution negotiation - a contribution

Harald Alvestrand <harald@alvestrand.no> Thu, 12 April 2012 08:46 UTC

Return-Path: <harald@alvestrand.no>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 69B6021F8644 for <rtcweb@ietfa.amsl.com>; Thu, 12 Apr 2012 01:46:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.299
X-Spam-Level:
X-Spam-Status: No, score=-110.299 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_19=0.6, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VGNJvRbNE6W3 for <rtcweb@ietfa.amsl.com>; Thu, 12 Apr 2012 01:46:02 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id 66F0321F8636 for <rtcweb@ietf.org>; Thu, 12 Apr 2012 01:46:02 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id A62B839E178 for <rtcweb@ietf.org>; Thu, 12 Apr 2012 10:46:01 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hcleHKqSvqBB for <rtcweb@ietf.org>; Thu, 12 Apr 2012 10:46:00 +0200 (CEST)
Received: from hta-dell.lul.corp.google.com (62-20-124-50.customer.telia.com [62.20.124.50]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id BD34039E082 for <rtcweb@ietf.org>; Thu, 12 Apr 2012 10:46:00 +0200 (CEST)
Message-ID: <4F869648.2020605@alvestrand.no>
Date: Thu, 12 Apr 2012 10:46:00 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20
MIME-Version: 1.0
To: "rtcweb@ietf.org" <rtcweb@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: [rtcweb] Resolution negotiation - a contribution
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Apr 2012 08:46:03 -0000

Hello folks,

after the IETF, I've attempted to gather together information about 
resolution negotiation and what we might need to do there.

I pulled together the paragraphs below - this may want to be 
incorporated in an I-D on "SDP usage in RTCWEB", or it may want to go 
somewhere else. Chairs' guidance is appreciated.

At the moment, I have it in xml2rfc format, so it should be easy to do 
cut-and-paste on it, but don't want to push it as a separate I-D unless 
that's what the chairs desire.
Note - there are some QUERY sections in there - I'm unsure what those 
should be resolved to.

Comments?

                          Harald

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 resulting need is:

    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 indicate the desire of the recipient for a particular spatial
       or temporal resolution on a particular video source

    o  To indicate the intent of the sender to send a video source in a
       particular spatial or temporal resolution

    This document does not mention other requirements.


3.  SDP negotiation of video resolution

    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 requirements are necessary and sufficient for establishing the
    maximum spatial and temporal resolution for all videos at call setup
    time.  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; the sending video stream MUST first be
    changed to be of a resolution that fits within both the old and the
    new bounds, or halted. <<QUERY: Is this necessary or sufficient
    restriction???>>

    An RTCWEB client MUST support per-SSRC requests for video
    resolutions, as described in
    [I-D.lennox-mmusic-sdp-source-selection].  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. <<QUERY: Do we need to extend RFC 5576
    with an "imageattr" or "framerate" attribute in the forward direction
    instead?>>


4.  Non-SDP negotiation of video resolution

    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.


5.  Relation to WebRTC API constraint

    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. <<NOTE - check the value
    of the direction of those assumptions>>.

    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.