Re: [rtcweb] An input for discussing congestion control (Fwd: New Version Notification for draft-alvestrand-rtcweb-congestion-00.txt)

Randell Jesup <> Mon, 19 September 2011 13:17 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 497EE21F8B9A for <>; Mon, 19 Sep 2011 06:17:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.524
X-Spam-Status: No, score=-2.524 tagged_above=-999 required=5 tests=[AWL=0.075, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id imWRWaOd9rme for <>; Mon, 19 Sep 2011 06:17:02 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id B051C21F8481 for <>; Mon, 19 Sep 2011 06:17:02 -0700 (PDT)
Received: from ([] helo=[]) by with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from <>) id 1R5dkr-0007qo-Lm for; Mon, 19 Sep 2011 08:19:25 -0500
Message-ID: <>
Date: Mon, 19 Sep 2011 09:16:03 -0400
From: Randell Jesup <>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.1) Gecko/20110830 Thunderbird/6.0.1
MIME-Version: 1.0
References: <> <> <> <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
Subject: Re: [rtcweb] An input for discussing congestion control (Fwd: New Version Notification for draft-alvestrand-rtcweb-congestion-00.txt)
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 19 Sep 2011 13:17:03 -0000

On 9/19/2011 4:29 AM, Henrik Lundin wrote:
> Tim,
> The problem that we are trying to attack with the proposal is perhaps 
> better described as "available bandwidth estimation" rather than 
> congestion control. I _would_ like to try and separated it from 
> codecs. The bandwidth estimator should inform the sender of the 
> current feasible rate between two endpoints, and it should then be up 
> to the sending client (application, codecs, channel coding, etc) to 
> figure out a way to stay within that limit, while maintaining an 
> acceptable quality for the use-case at hand.

Right - I think we're in agreement (and Tim is) that this is the best 
tack to take on the problem - involve the application in figuring out 
how to meet the bandwidth limits.  This part of it will largely be an 
API specification problem; figuring out how to set up the API to tell 
the JS app what is available, and the interfaces for responding to that.

> On Mon, Sep 19, 2011 at 10:21 AM, Tim Panton < 
> <>> wrote:
>     I'd like to lurk  on any BoF list, if I may,
>     but I have a feeling that congestion control isn't quite such a
>     self-contained problem
>     as forming a BoF list might imply.
>     Roughly, my argument is that any modern congestion control for RTC
>     needs to involve the application
>     and the codec.

Absolutely agree.

>     Here's an example:
>            I'm in a video conference with 4 other people and I'm
>     exceeding the available downlink
>     bandwidth. What I want is that the video degrades (framerate of
>     quality) without _any_ degradation
>     of the video.

I'm a little confused by that wording, but I suspect we agree.  The app 
might want ask the senders to cut their framerate or cut their 
resolution, or cut quality but keep framerate & resolution, or ask the 
senders to switch to lower-bandwidth parameters unless the VAD decides 
the person is talking, etc.  No one answer is the 'right' one for every 
app or situation.

>     I might even want to drop all the video but keep the audio and
>     screenshare alive.


>            Conversely if I'm watching an ice hockey game - I'd rather
>     lose audio quality than frame-rate.
>     But in _both_ cases I'd like the app to try and tweak the encoder
>     params to get within the available bandwidth
>     before we start injecting delay or dropping frames.
>     So my proposal is that the web app is given a chance to get within
>     the available bandwidth
>     before the system starts putting hard constraints on the RTP level.
>     All of which makes it something we need to discuss in a holistic
>     fashion with the rest of the API.

Randell Jesup