Re: [rtcweb] Interaction between MediaStream API and signaling

Randell Jesup <randell-ietf@jesup.org> Sat, 14 April 2012 02:26 UTC

Return-Path: <randell-ietf@jesup.org>
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 CB7C611E809F for <rtcweb@ietfa.amsl.com>; Fri, 13 Apr 2012 19:26:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.031
X-Spam-Level:
X-Spam-Status: No, score=-2.031 tagged_above=-999 required=5 tests=[AWL=0.568, BAYES_00=-2.599]
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 FZkmM929zAx3 for <rtcweb@ietfa.amsl.com>; Fri, 13 Apr 2012 19:26:50 -0700 (PDT)
Received: from r2-chicago.webserversystems.com (r2-chicago.webserversystems.com [173.236.101.58]) by ietfa.amsl.com (Postfix) with ESMTP id A1BAE11E809D for <rtcweb@ietf.org>; Fri, 13 Apr 2012 19:26:21 -0700 (PDT)
Received: from pool-108-16-41-249.phlapa.fios.verizon.net ([108.16.41.249] helo=[192.168.1.12]) by r2-chicago.webserversystems.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from <randell-ietf@jesup.org>) id 1SIsgu-0005dm-Mr for rtcweb@ietf.org; Fri, 13 Apr 2012 21:26:20 -0500
Message-ID: <4F88DF63.5080803@jesup.org>
Date: Fri, 13 Apr 2012 22:22:27 -0400
From: Randell Jesup <randell-ietf@jesup.org>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20120312 Thunderbird/11.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <4F7575FB.8010201@ericsson.com> <4F762813.6040506@jesup.org> <4F76937B.9020901@ericsson.com> <4F7698EF.1090306@ericsson.com> <CAOJ7v-0TKsJ9kF73w357GXEGfyNeheZb5Unfqm0hf_PN6tmOQw@mail.gmail.com> <4F79AFD1.8030401@ericsson.com>
In-Reply-To: <4F79AFD1.8030401@ericsson.com>
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 - r2-chicago.webserversystems.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - jesup.org
X-Source:
X-Source-Args:
X-Source-Dir:
Subject: Re: [rtcweb] Interaction between MediaStream API and signaling
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: Sat, 14 Apr 2012 02:26:51 -0000

A reply I hadn't sent...

On 4/2/2012 9:55 AM, Stefan Hakansson LK wrote:
> On 04/02/2012 05:16 AM, Justin Uberti wrote:
>>>> Yes. Just like in SIP. And so when you send an OFFER (or
>> modified
>> re-OFFER), you must be ready to receive data per that offer
>> even if no
>> ANSWER has been received - just like in SIP. And if its a
>> re-offer, you
>> need to accept the old, and accept the new (though you could
>> probably
>> use reception of obviously new-OFFER media to turn off
>> decoding/rendering old-OFFER in preparation for the ANSWER).
>>
>> The flip side of this is the responder has to infer when the
>> sender
>> switches over to the result of the ANSWER from the media.
>> For example:
>>
>> A B
>> <--- H.261 --->
>> re-OFFER(VP8) --->
>> <-- ANSWER(VP8) (delayed in reception)
>> <-----------VP8 (A should infer that B ANSWERed
>> and accepted VP8)
>> ----------> H.261
>> <-- ANSWER(VP8) (received)
>> <--------VP8----------> (B should infer by reception of
>> VP8 that ANSWER
>> was received)
>>
>> (Personally, I hate inferences, but without a 3 (or 4) way
>> handshake,
>> you have to). If you switches of codecs are staged, then
>> this isn't
>> (much) of a problem. Either leave old codec on the list, or
>> leave it on
>> the list until accept, and then re-OFFER to remove the
>> un-used codec.
>>

[ Stefan responded: ]

>> I think I understand what you mean, and this would work fine as
>> long as
>> you just switch codecs that are used in already set-up MediaStreams.

Ah, but how do you know which stream the packets are for:
in bundle, the packets are designated by SSRC, but without the ANSWER 
you can't figure it out, and on ANSWER the SSRCs could change.  Or if 
you change from non-bundle to bundle (admittedly, it's unclear when one 
would do so, but we're discussing a protocol, and that's not disallowed 
I assume).

We have to consider, since we're designing a protocol, not only the 
preferred and likely negotiations, but all possible negotiations. 
Painful, but true.

>> This may have been a very bad example. Probably you can tell them
>> apart on the SSRC. But even so, the A browser won't know what the
>> VP8 stream (if it has an unknown SSRC) represents without receiving
>> the ANSWER.
>>
>>
>> I think this is only an issue if you decide to add streams in the
>> ANSWER. But even so, eventually the ANSWER arrives and you can start
>> demuxing/decoding appropriately.
>
> Yes, I agree to that it is only an issue if you add streams in the
> answer. Perhaps it is a model we should move away from - but that is the
> model used in the basic examples of the JSEP draft.

Even if you don't add streams you could change the Bundle; or the SSRC's 
could change messing up demux until ANSWER, etc.

> I think there is a risk of clipping if you start sending immediately,
> but can only start demuxing/decoding once an answer is received.

I would agree.



-- 
Randell Jesup
randell-ietf@jesup.org