Re: [rtcweb] MSID fallback for non-MSID case (Re: Plan A, respun)

Harald Alvestrand <harald@alvestrand.no> Wed, 15 May 2013 06:24 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 426DD21F8D7A for <rtcweb@ietfa.amsl.com>; Tue, 14 May 2013 23:24:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.7
X-Spam-Level:
X-Spam-Status: No, score=-106.7 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FB_CIALIS_LEO3=3.899, 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 UK8nC337iW7M for <rtcweb@ietfa.amsl.com>; Tue, 14 May 2013 23:24:03 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id 2478821F8B45 for <rtcweb@ietf.org>; Tue, 14 May 2013 23:24:02 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id D614039E11A; Wed, 15 May 2013 08:24:00 +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 X8qsHMDsV4sI; Wed, 15 May 2013 08:23:59 +0200 (CEST)
Received: from [192.168.1.17] (unknown [188.113.88.47]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id E396C39E01E; Wed, 15 May 2013 08:23:59 +0200 (CEST)
Message-ID: <51932A2B.1080700@alvestrand.no>
Date: Wed, 15 May 2013 08:24:43 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5
MIME-Version: 1.0
To: Emil Ivov <emcho@jitsi.org>
References: <51894846.3090102@nostrum.com> <518A304A.1030609@alvestrand.no> <518F6338.8070903@jitsi.org> <518F83E5.4060209@alvestrand.no> <518F9280.6070803@jitsi.org> <518FAD13.9050503@alvestrand.no> <CAPvvaaK1bQ+0DwAWwjN2P1RQOAY2cGC0Hf88od2ZnFA0gu6s4g@mail.gmail.com> <518FF3AE.4050505@alvestrand.no> <5191D6C3.4090604@jitsi.org> <5191FCFB.3090704@jitsi.org> <51922959.3070708@alvestrand.no> <51931EF3.7080108@jitsi.org>
In-Reply-To: <51931EF3.7080108@jitsi.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] MSID fallback for non-MSID case (Re: Plan A, respun)
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: Wed, 15 May 2013 06:24:09 -0000

On 05/15/2013 07:36 AM, Emil Ivov wrote:
>
> On 14.05.13, 15:08, Harald Alvestrand wrote:
>> On 05/14/2013 10:59 AM, Emil Ivov wrote:
>>> On 14.05.13, 09:16, Emil Ivov wrote:
>>>> Hey Harald,
>>>>
>>>> On 12.05.13, 22:55, Harald Alvestrand wrote:
>>>>> On 05/12/2013 06:03 PM, Emil Ivov wrote:
>>>>>>> Or you could signal none of them and depend on the fallback case in
>>>>>>> draft-ietf-mmusic-msid to handle them in a consistent manner, and
>>>>>>> use other methods to figure out how to handle them...
>>>>>> If you are referring to section 4.1 that you also pasted earlier in
>>>>>> this thread, it only talks about one track, per stream, per m= line.
>>>>>> This doesn't cover the conferencing case I described in my previous
>>>>>> mail (quoted above).
>>>>>>
>>>>> Changing subject as I'm replying to a subtopic, and because I was
>>>>> misunderstanding what Emil was arguing in favour of.....
>>>>>
>>>>> when I wrote that text, I didn't intend it to cover only one SSRC per
>>>>> stream.
>>>>> What I intended to say was that when, in an RTP session, a browser gets
>>>>> several SSRCs that were not mentioned in signalling, it will send
>>>>> several onaddstream signals to the application, each indicating a new
>>>>> stream being added, which has exactly one track.
>>>> Aha! OK, I understand and it sounds better now that I do.
>>> Oh, just thought of something else while reading Stefan's mail: is it
>>> really necessary that this should only happen in case no SSRCs have been
>>> defined? Why not apply that to any unknown SSRC regardless of whether or
>>> not others exist in SDP?
>>>
>>> The second bullet there talks about a possible race condition but I am
>>> not sure I see how this could occur with valid use of O/A.
>> The worrying case is:
>>
>> A sends offer
>> B sends answer (either with or without MSID)
>> B starts sending data on some SSRCs
>> A receives the data, but has not yet seen the answer
>>
>> The two cases are:
>>
>> - B sends with MSID. In this case, he expects those specific IDs to be
>> signalled in onaddstream.
>> - B sends without MSID. In this case, he expects that A will announce a
>> locally generated ID in onaddstream.
>>
>> A can't know the difference between those two before he sees the answer
>> from B.
>> In this spec, I've "solved" it by saying that we don't signal
>> onaddstream before we see the answer.
>>
>> After the first answer has been seen, either party knows that new SSRCs
>> always will be signalled, so any data on an unknown SSRC can be held
>> until the negotiation announcing it is complete - or discarded as "bad
>> data" if signalling doesn't happen in a reasonable time.
>>
>> If we were to permit unknown SSRCs when there are some MSIDs, the
>> decision to announce as "Unsignalled MediaStream" or wait for the
>> offer/answer announcing the MSID it should be announced with has to
>> depend on some other resolution mechanism. I don't like timers, and
>> haven't found a better way to do it.
> I didn't get this part. While I see the race condition that occurs
> during offer/answer, I am not sure I understand why a new SSRC received
> mid-session by either side is ambiguous. If the application had any
> intent to announce it, then presumably it would be on the verge of
> initiating a new offer/answer. If that were the case, sending the new
> stream/track could have been held off until completion of that
> offer/answer.
Exactly - IF the party sending the SSRC is able to see when the 
offer/answer completes.
The offerer is the only party that can actually know if the offer/answer 
exchange is complete.

So the ambiguity only applies if the answerer is able to announce new 
SSRCs in an answer.
Is it reasonable to remove this functionality (and thereby mandating 
Plan B's double offer/answer) in order to achieve this functionality?

>
> This way one would be able to only announce SSRCs for things such as FEC
> and simulcasting (where available) while simple streams could be
> delivered immediately.

As long as you don't need any information not carried in the RTP packet 
in order to announce the stream correctly, this would work.

>
> Emil
>
>