Re: [rtcweb] Plan A, respun

Paul Kyzivat <pkyzivat@alum.mit.edu> Fri, 17 May 2013 15:51 UTC

Return-Path: <pkyzivat@alum.mit.edu>
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 AFD8221F96FF for <rtcweb@ietfa.amsl.com>; Fri, 17 May 2013 08:51:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.329
X-Spam-Level:
X-Spam-Status: No, score=-0.329 tagged_above=-999 required=5 tests=[AWL=0.108, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, RDNS_NONE=0.1]
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 uaF84tel1QlI for <rtcweb@ietfa.amsl.com>; Fri, 17 May 2013 08:51:31 -0700 (PDT)
Received: from qmta05.westchester.pa.mail.comcast.net (qmta05.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:48]) by ietfa.amsl.com (Postfix) with ESMTP id 6C76321F9702 for <rtcweb@ietf.org>; Fri, 17 May 2013 08:51:21 -0700 (PDT)
Received: from omta05.westchester.pa.mail.comcast.net ([76.96.62.43]) by qmta05.westchester.pa.mail.comcast.net with comcast id cykk1l0030vyq2s553rKMd; Fri, 17 May 2013 15:51:19 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta05.westchester.pa.mail.comcast.net with comcast id d3rK1l0133ZTu2S3R3rKRU; Fri, 17 May 2013 15:51:19 +0000
Message-ID: <519651F6.60305@alum.mit.edu>
Date: Fri, 17 May 2013 11:51:18 -0400
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <51894846.3090102@nostrum.com> <518A304A.1030609@alvestrand.no> <518F6338.8070903@jitsi.org> <518F83E5.4060209@alvestrand.no> <519519DB.6050702@nostrum.com> <519524EA.3000509@alvestrand.no> <51952860.5030906@nostrum.com> <5195304B.10706@alvestrand.no> <CABcZeBO+miF-euyyKFDrpMUdnV-Ej2QaZgKmiMc2Yp08QUyz7A@mail.gmail.com> <5195CEDF.9040109@alvestrand.no>
In-Reply-To: <5195CEDF.9040109@alvestrand.no>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1368805879; bh=CvecQFWVIbFo+RuWP88kTlLj33Pm4vjuArhYlX4rI8c=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=ncuA2+5Sm4B2SRk9IlRIPBE7jV9V12SRObkatDs0UFl7q3TON6CMSOwYsPF1vf6qF N/mJNAcYp2TymkncoI7islV9aAN7u5GIUsVFohVeofn+VYPVNGxE7PLtfD7x9Z9wR1 xxnzYqyqEvGCBukRGS3BlNJP6WLyraUZHIriu2GTWSJchtMw6kmIfcTd8b7IILaEXd D8GVIlGGPpWKBXI4fOI8Chwztvv9wCQpj0GuXzLzQ4NSWHIHMrd+Fu1rCRdM4iGk0B k5+mubYbTy+SS/JycnTN019EZ8cxag/Xyq06jHS3ibE6XLoia6C52fs0d5IvNKRVM/ 8Nnx2U/1kALvw==
Subject: Re: [rtcweb] 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: Fri, 17 May 2013 15:51:35 -0000

ISTM we may be mixing up two things when discussing demuxing:

* getting packets to the correct instance of the correct decoder.

Any of these proposals can handle the first. The only constraint is that 
a particular PT must be consistently mapped to the same codec and 
parameters in each bundled m-line where it appears. Its not necessary to 
restrict a PT to a particular m-line to achieve this.

* associating those packets with a particular m-line in the bundle.

There must be some combination of fields within each RTP packet that are 
unique to a particular bundled media section (m-line and friends) in the 
bundle to achieve this. That could be:

- SSRC
- PT
- the value of some RTP header extension that matches some
   new SDP attribute
- some combination of the above

This is important because it then binds that instance of the decoder to 
all the properties of the SDP media section.

I don't think it is necessary to make a single choice from the above 
list. In some cases it may be possible to infer this, by analyzing the 
SDP and identifying what combination of properties uniquely identifies 
each m-line. But in some cases it may be ambiguous. If so, then I think 
we should signal what should be used.

For instance, demux by SSRC and demux by clue capture id may yield 
conflicting results. (A  single SSRC may move from one capture to another.)

So, rather than argue about which is the right way, can't we just 
discuss how to signal which one to use?

	Thanks,
	Paul


On 5/17/13 2:31 AM, Harald Alvestrand wrote:
> On 05/17/2013 01:28 AM, Eric Rescorla wrote:
>>
>>
>> On Thu, May 16, 2013 at 12:15 PM, Harald Alvestrand
>> <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote:
>>
>>             If the true limit at which one has to change allocation
>>             strategy were to become 96, not 32, it actually
>>             strengthens my "falling off a cliff" argument
>>
>>
>>         And, to be clear, it's not a cliff. For any given session
>>         (without a=ssrc:), you have to allocate ceiling(streams/96)
>>         ports. It's not like you go from using one port to using 97
>>         ports when you add the 97th stream. You go from one port to
>>         two, which will handle 192 streams.
>>
>>
>>     Going from one port to two ports is a cliff.
>>     We may have differing opinions on how tall it is.
>>
>>
>> Harald,
>>
>> I am not following how this is a discriminating factor between Plan A and
>> Plan B.
>>
>> In both Plan A and Plan B, any media stream which is intended to be
>> independently processable by a legacy endpoint must appear on its
>> own m-line. That means it must also have its own independent ports,
>> even if you are hoping to eventually be able to mux it via BUNDLE.
>
> I agree with this characterization - the two proposals have the same
> number of ports in the initial offer.
>
> I quibble about the characterization "any media stream which is intended
> to be
> independently processable by a legacy endpoint must appear on its
> own m-line." As Bernard has said, the field of deployed applications is
> diverse enough to make this question confusing - both "independently
> processable" and "legacy endpoint" may need further qualification in
> order to make that statement unequivocally true.
>
>>
>> In both Plan A and Plan B, it is possible to indicate additional media
>> streams that are not processable by a legacy endpoint but that
>> will be processable by a new endpoint:
>>
>> - In Plan A, this is done by marking them bundle-only
>> - In Plan B, this is done by having them be additional SSRCs on one
>>   of the extant m-lines.
>>
>>
>>
>> Regardless of Plan A versus Plan B, bundle contemplates having
>> multiple media flows on the same media 5-tuple. Thus, it must
>> be possible to demux the flows somehow. As I read Plan A,
>> it proposes using both PT and SSRC to demux whereas plan B
>> only wants to use SSRC? So, the implication is that a Plan A
>> endpoint must:
>>
>> 1. Demux on both PT and SSRC (this is trivial, I think you will agree)
>
> The demuxing is trivial. In fact, I don't think it's even necessary to
> describe it as "demux on PT"; you can't allow SSRC collision between two
> tracks with different PT anyway.
>
>> 2. When acting as offerer, either always offer SSRC or conditionally
>> offer SSRC when the # of PTs is excessive.
>>
>> I don't understand why you think that plan A means more ports than
>> plan B. Presumably we can simply specify that bundle requires
>> SSRC muxing, in which case plan A and plan B behave identically.
>>
>> What am I missing?
>
> This particular issue is about what happens when you run out of payload
> types to multiplex on.
>
> In Plan A as I currently understand Adam, any application that needs
> less than 96 M-lines (Adam's number) can use a single port, and use the
> payload type to indicate the M-line.
>
> If there are 97 M-lines, if I've understood Adam correctly, one could
> use two ports and two bundles, with some subset of the M-lines being
> allocated to one bundle and another subset of the M-lines allocated to
> the other bundle.
>
> In Plan B, there is no difference in the mechanism used to multiplex 96
> SSRCs from the mechanism used to multiplex 97 SSRCs, and it does not
> matter for the multiplexing how many M-lines they are distributed over.
>
>
>
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb
>