Re: [rtcweb] Rejecting MediaStreamTracks in JSEP

Jonathan Lennox <jonathan@vidyo.com> Tue, 04 February 2014 16:13 UTC

Return-Path: <jonathan@vidyo.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C60121A013B; Tue, 4 Feb 2014 08:13:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.53
X-Spam-Level:
X-Spam-Status: No, score=-0.53 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, J_CHICKENPOX_14=0.6, RCVD_IN_SORBS_WEB=0.77, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 65G6kVnehdtX; Tue, 4 Feb 2014 08:13:10 -0800 (PST)
Received: from server209.appriver.com (server209f.appriver.com [8.31.233.121]) by ietfa.amsl.com (Postfix) with ESMTP id 1E1F81A0130; Tue, 4 Feb 2014 08:13:10 -0800 (PST)
X-Note-AR-ScanTimeLocal: 2/4/2014 11:13:08 AM
X-Policy: GLOBAL - vidyo.com
X-Policy: GLOBAL - vidyo.com
X-Policy: GLOBAL - vidyo.com
X-Policy: GLOBAL - vidyo.com
X-Policy: GLOBAL - vidyo.com
X-Policy: Too many policies to list
X-Primary: jonathan@vidyo.com
X-Note: This Email was scanned by AppRiver SecureTide
X-Virus-Scan: V-
X-Note-SnifferID: 0
X-Note: TCH-CT/SI:0-340/SG:5 2/4/2014 11:12:32 AM
X-GBUdb-Analysis: 0, 162.209.16.214, Ugly c=0.737366 p=-0.935988 Source White
X-Signature-Violations: 0-0-0-17513-c
X-Note-419: 15.6003 ms. Fail:0 Chk:1345 of 1345 total
X-Note: SCH-CT/SI:0-1345/SG:1 2/4/2014 11:12:55 AM
X-Note: Spam Tests Failed:
X-Country-Path: ->UNITED STATES->LOCAL
X-Note-Sending-IP: 162.209.16.214
X-Note-Reverse-DNS:
X-Note-Return-Path: jonathan@vidyo.com
X-Note: User Rule Hits:
X-Note: Global Rule Hits: G327 G328 G329 G330 G334 G335 G445
X-Note: Encrypt Rule Hits:
X-Note: Mail Class: VALID
X-Note: Headers Injected
Received: from [162.209.16.214] (HELO mail.vidyo.com) by server209.appriver.com (CommuniGate Pro SMTP 6.0.8) with ESMTPS id 69264762; Tue, 04 Feb 2014 11:13:07 -0500
Received: from 492132-EXCH1.vidyo.com ([fe80::50:56ff:fe85:4f77]) by 492133-EXCH2.vidyo.com ([fe80::50:56ff:fe85:6b62%13]) with mapi id 14.03.0146.000; Tue, 4 Feb 2014 10:13:06 -0600
From: Jonathan Lennox <jonathan@vidyo.com>
To: Justin Uberti <juberti@google.com>
Thread-Topic: [rtcweb] Rejecting MediaStreamTracks in JSEP
Thread-Index: AQHPIS46pADKsTFIzECMWWmLIWbna5qkgc6AgAAH3gCAAAMqAIAADvKAgAEOagA=
Date: Tue, 04 Feb 2014 16:13:06 +0000
Message-ID: <2DF6D660-78B3-4F53-AF39-B3651E9BBB46@vidyo.com>
References: <CAOJ7v-22T7hLMdC2je0nLk34MXQ8L+JFWLtAz--6Ryt+DMaMvQ@mail.gmail.com> <C433A27C-348A-402A-B036-07060746FADA@vidyo.com> <CAOJ7v-0S4C+P6hv2rrTCpFvvq1eVBfbuxb+QGQyAP5mG0yb2uQ@mail.gmail.com> <9E51C939-CCFE-4EA6-83BF-9B871D64CDA0@vidyo.com> <CAOJ7v-3wieadkcvhvS1EbkO42MGEzE+8z6Ex1ivWuO1z=xCgcg@mail.gmail.com>
In-Reply-To: <CAOJ7v-3wieadkcvhvS1EbkO42MGEzE+8z6Ex1ivWuO1z=xCgcg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [160.79.219.114]
Content-Type: multipart/alternative; boundary="_000_2DF6D66078B34F53AF39B3651E9BBB46vidyocom_"
MIME-Version: 1.0
Cc: Cullen Jennings <fluffy@cisco.com>, Harald Alvestrand <hta@google.com>, "rtcweb@ietf.org" <rtcweb@ietf.org>, mmusic <mmusic@ietf.org>
Subject: Re: [rtcweb] Rejecting MediaStreamTracks in JSEP
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
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: Tue, 04 Feb 2014 16:13:12 -0000

On Feb 3, 2014, at 7:05 PM, Justin Uberti <juberti@google.com<mailto:juberti@google.com>>
 wrote:

On Mon, Feb 3, 2014 at 3:11 PM, Jonathan Lennox <jonathan@vidyo.com<mailto:jonathan@vidyo.com>> wrote:

On Feb 3, 2014, at 6:00 PM, Justin Uberti <juberti@google.com<mailto:juberti@google.com>>
 wrote:

On Mon, Feb 3, 2014 at 2:32 PM, Jonathan Lennox <jonathan@vidyo.com<mailto:jonathan@vidyo.com>> wrote:
On Feb 3, 2014, at 2:27 PM, Justin Uberti <juberti@google.com<mailto:juberti@google.com>> wrote:

Also, this essentially makes recv-appId the converse of MSID; for simplicity, I think we should consider unifying these concepts into a single document.

AppID (as I envision it, as the author) and MSID (as I understand it) have rather different scopes, which are visible once sources are sent using more than one packet stream.

For example, an m-line which has both a primary encoded stream (of media) and a redundancy stream (of rtx packets) would have two appid values, but only one msid.  On the receive side, if you wanted to receive both a primary encoded stream and a redundancy stream, you would have two recv-appid values.

As such, appid and msid are solving different (though related) problems, and I don't think unifying them is a good idea.

Perhaps we need a recv-msid, explicitly?

That would be fine by me - it would allow a single invention (msid + recv-msid) to focus on solving the three identified problems with MSTs in unified-plan:
- correlation of a MediaStreamTrack to m= line in signaling (msid)
- correlation of packets from a MST to m= line ahead of signaling (recv-msid)
- rejection of an individual MST (recv-msid)

Based on your description, appid seems to go one or two levels down from a MST to an individual RTP flow, but we can let that develop on its own, separate from the timetable of webrtc 1.0 and unified plan.

Points 1 and 3 make sense to me, and are I think what msid is for; but I don't think point 2 will work.

I don't think a single, m-line-wide, identifier will work for the correlation-ahead-of-signaling problem, once you have multiple RTP flows in the m-line.  That's why we've designed appid the way we have.

I think appid is the right solution to point 2.  More specifically, the problem appid is solving is better expressed as the correlation of packets from an RTP flow to an m-line; the correlation from the m-line to a MST is a separate step, and is msid's job.

Agree that msid should map m-line to MST, but it would seem recv-msid could map RTP flow to m=line as well as indicate whether the receiver is in fact interested in receiving the MST associated with said m= line. Note that recv-msid doesn't specify an actual MSID; its purpose is to indicate that the receiver wants to receive data from the remote side's MST, and provide a mechanism for the sender to mark the data accordingly. (Which ends up seeming a lot like appid.)

Generally, I am hesitant to depend on 3 things if we think we could get by with only 2.

I understand that, but I'm also hesitant to have one mechanism do two (it seems to me) fairly unrelated things, especially where the scenarios in which the problems it's solving are applicable vary fairly widely.

As far as I can tell, the only use case anyone's identified for MSID is WebRTC, whereas the disambiguation problem occurs (and thus appid and recv-appid are applicable) for anything using Bundle with Unified-like semantics.