Re: [rtcweb] JSEP: Issues with a=ssrc and RTP payload type switching
Bernard Aboba <bernard.aboba@gmail.com> Wed, 03 June 2015 18:17 UTC
Return-Path: <bernard.aboba@gmail.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 3BAA51AD068 for <rtcweb@ietfa.amsl.com>; Wed, 3 Jun 2015 11:17:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.399
X-Spam-Level:
X-Spam-Status: No, score=-1.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_14=0.6, 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 tBqLAZ_5mehu for <rtcweb@ietfa.amsl.com>; Wed, 3 Jun 2015 11:17:41 -0700 (PDT)
Received: from mail-wi0-x231.google.com (mail-wi0-x231.google.com [IPv6:2a00:1450:400c:c05::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AABC71AD06B for <rtcweb@ietf.org>; Wed, 3 Jun 2015 11:17:40 -0700 (PDT)
Received: by wibut5 with SMTP id ut5so111766560wib.1 for <rtcweb@ietf.org>; Wed, 03 Jun 2015 11:17:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=+kZkEpj8KuyiEvtZQJgOtfH8qymGT7gTb92yhO0jRBo=; b=U2iG6OwU6kPpG0GjbJjAQG9nwqy+BlTFdtPT7Bg3MOLBjyAvaEOCRvdN2nzyHNvH00 rGHZj07t4WkovgKHlF2krf1SHH2RI3o8dEAlZt0Awt//LpHUcmFLTWl7buGxg8XdRpML 6rdF2JuaKdlTEh5qBdExzamd9GlAw2wIeMFkj60LUQvSfJfPMoj7zgxP0aLLuNhaO3o3 2/fuiCyI7ptIODDtTBQyItHafqE4LAsOHHgxgcXnNaQBrtPkXWwnd49hi2UxtgJ6a/pX M99BT5dJe3xsxoK8NLMc5UyWPvXiQsGT5rFoeuxLYneMuf9ajWskHSlQAas6WjWoXzf8 WyuQ==
X-Received: by 10.180.95.67 with SMTP id di3mr43108724wib.78.1433355459138; Wed, 03 Jun 2015 11:17:39 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.27.54.16 with HTTP; Wed, 3 Jun 2015 11:17:18 -0700 (PDT)
In-Reply-To: <556EF4F9.1060700@ericsson.com>
References: <556EF4F9.1060700@ericsson.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Wed, 03 Jun 2015 11:17:18 -0700
Message-ID: <CAOW+2dugUZjEnjXZiyNYe_rsKNUE9N2aHsVoP2inOesF-C-WSQ@mail.gmail.com>
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
Content-Type: multipart/alternative; boundary="f46d044287e2fa997d0517a112d9"
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/o40XPfNBTNFGv77y6Hc57-lIpCQ>
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] JSEP: Issues with a=ssrc and RTP payload type switching
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: Wed, 03 Jun 2015 18:17:44 -0000
Magnus said: "This in itself should not be a significant issue. The binding to the right media block in the SDP is done using MID. Which, will be sent in an RTP header extension to ensure that stream upon reception is correctly associated. The RTP synchronization information will arrive in RTCP or even in the RTP header extension if the peers both supports RFC 6051. Thus minimal media impacts is to be expected." [BA] I do agree that this is a basic scenario that should work. However, Section 5.2.1 of draft-ietf-rtcweb-rtp-usage indicates that RFC 6051 is RECOMMENDED, but not mandatory. "B. The next question is if a RTP payload type change actually requires the node that performs the change to actually initiate an Offer/answer exchange to update their a=ssrc values?" [BA]Today in audio scenarios the use of a=ssrc is not very prevalent outside of WebRTC, and yet the switching scenario you describe still typically works without an additional O/A exchange. So a developer experienced in legacy systems might be surprised if another O/A exchange was needed. So I wonder if the a=ssrc line should always be required (and if it is not there, whether the audio scenario should be expected to "just work"). One argument in favor of requiring a=ssrc is that at the RTP level the switching scenario may not be that easily distinguished from a scenario where multiple SSRCs are being received at once (where a mediadiscarded Event might be appropriate). Also, in video scenarios the a=ssrc line is much more common (e.g. where one of several simulcast streams is being received, the SSRC can change along with characteristics of the video such as framerate and resolution). Overall though, IMHO the behavior in this scenario is currently under-specified. The Unified Plan document included some text relating to this, but it doesn't seem to have made its way into any WG work items. On Wed, Jun 3, 2015 at 5:37 AM, Magnus Westerlund < magnus.westerlund@ericsson.com> wrote: > Hi, > > I want raise for discussion the fact that I think JSEP does not handle RTP > payload type switching as currently specified. > > So lets walk through a case of RTP payload type switching and what it > means according to the specifications we do have. > > So we have an established PeerConnection with one audio track for which we > have negotiated the possibility to send both PCM and OPUS. If the sender > decides to switch RTP payload type, lets say from OPUS to PCM. The reason > is actually not important, but lets say due to a "replace track" API call > as currently being discussed on W3C WebRTC group. > > When that RTP payload type switch from OPUS to PCM we also have an RTP > timestamp rate change, from 48 kHz to 8 kHz. As specified in RTP usage > (Section 4.3): > > If performing changes between two RTP payload types that use > different RTP clock rates, an RTP sender MUST follow the > recommendations in Section 4.1 of [RFC7160]. > > So lets look at what RFC 7160 says: > > 4.1. RTP Sender (with RTCP) > > An RTP Sender with RTCP turned on MUST use a different SSRC for each > different clock rate. An RTCP BYE MUST be sent and a new SSRC MUST > be used if the clock rate switches back to a value already seen in > the RTP stream. > > Thus, this Payload type change forces the use of a new SSRC. > > This in itself should not be a significant issue. The binding to the right > media block in the SDP is done using MID. Which, will be sent in an RTP > header extension to ensure that stream upon reception is correctly > associated. The RTP synchronization information will arrive in RTCP or even > in the RTP header extension if the peers both supports RFC 6051. Thus > minimal media impacts is to be expected. > > But, discussing what happens in this case with Stefan Håkansson we did > look into JSEP. And here we clearly have some short commings in the > specification. > > A. First of all there is an assumption that the value of a=ssrc will not > change. For example Section 5.2.2 (Subsequent Offers): > > o For MediaStreamTracks that are still present, the "a=msid", > "a=ssrc", and "a=ssrc-group" lines MUST stay the same. > > If an RTP payload type switching has occured that forces a SSRC change > then I expect that the actually used SSRCs are included in the offer. Thus, > both a=ssrc and a=ssrc-group can change in subsequent offers. > > B. The next question is if a RTP payload type change actually requires the > node that performs the change to actually initiate an Offer/answer exchange > to update their a=ssrc values? > > Clearly JSEP needs to be updated to address these issues. > > Cheers > > Magnus Westerlund > > ---------------------------------------------------------------------- > Services, Media and Network features, Ericsson Research EAB/TXM > ---------------------------------------------------------------------- > Ericsson AB | Phone +46 10 7148287 > Färögatan 6 | Mobile +46 73 0949079 > SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com > ---------------------------------------------------------------------- > > _______________________________________________ > rtcweb mailing list > rtcweb@ietf.org > https://www.ietf.org/mailman/listinfo/rtcweb >
- [rtcweb] JSEP: Issues with a=ssrc and RTP payload… Magnus Westerlund
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Bernard Aboba
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Harald Alvestrand
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Roman Shpount
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Magnus Westerlund
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Harald Alvestrand
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Magnus Westerlund
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Simon Perreault
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Magnus Westerlund
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Simon Perreault
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Harald Alvestrand
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Simon Perreault
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Harald Alvestrand
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Magnus Westerlund
- Re: [rtcweb] JSEP: Issues with a=ssrc and RTP pay… Christer Holmberg