- From: Peter Thatcher <pthatcher@google.com>
- Date: Tue, 16 Feb 2016 18:35:22 -0800
- To: Adam Roach <adam@nostrum.com>
- Cc: Randell Jesup <randell-ietf@jesup.org>, "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <CAJrXDUGnB20H9qFM4aWuA3ViqEb07GfKOys-03K7_MqrpYfSWw@mail.gmail.com>
While thinking about this so more, I thought of another difficulty: if resolution is degraded, should that degradation happen before or after the max? In your use case with two layers (1 full, 1 max of 90 pixels tall), what happens when the RtpSender degrades the resolution? Let's say it degrades a video frame an original height of 360 pixels down to a height of 180 pixels. Clearly, the full layer is now 180 pixels high. But what should it do with the max-height-90-pixel layer be? Should it become 45 pixels tall or stay 90 pixels? If it should stay 90, then what happens if the video further degrades down to 1/4 of the original size, such that the full layer is also 90 pixels high? Would they both be 90? On Wed, Feb 10, 2016 at 11:28 AM, Adam Roach <adam@nostrum.com> wrote: > On 10/12/15 10:37, Peter Thatcher wrote: > > My point was that if you think we should have ".maxWidth" and > ".maxHeight" in RTCRtpEncodingParameters, that's a separate proposal. So, > if you want it, please propose it. > > > This didn't seem particularly important at the time, but we've gotten some > implementor feedback that indicates otherwise. > > Specifically, we've heard from implementors that the use of the current > proposed (sole) control for resizing simulcast streams is problematic in > the face of streams that can change size (such as captured windows, or > rotating cameras on mobile devices). > > The scenario under consideration is one in which each media source > generates two streams: one full-size, and one which must be exactly 90 > pixels tall. These are being sent to a media switch, which has no ability > to decode and re-encode streams. Some of the recipients (non-web-browsers) > do not have the ability to resize incoming streams. > > In the optimal (and admittedly typical) case, would be possible to do > something like this: > > params.encodings[1].scaleResolutionDownBy = > videoTrack.getSettings().height / 90; > > Where this falls apart is when the height of the video track *changes*. > > By contrast, if they could simply do something like: > > params.encodings[1].maxHeight = 90; > > Then the problem goes away. > > This seems relatively straightforward to spec out, and -- given that we > see real implementor need for it -- I think it makes sense to go ahead and > add it at this point. > > So, what are the arguments against maxHeight and maxWidth? > > /a >
Received on Wednesday, 17 February 2016 02:36:29 UTC