Re: [rtcweb] JSEP: Issues with a=ssrc and RTP payload type switching
Harald Alvestrand <harald@alvestrand.no> Mon, 08 June 2015 09:19 UTC
Return-Path: <harald@alvestrand.no>
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 4DC0D1B2DD1 for <rtcweb@ietfa.amsl.com>; Mon, 8 Jun 2015 02:19:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.31
X-Spam-Level:
X-Spam-Status: No, score=-1.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_14=0.6, T_RP_MATCHES_RCVD=-0.01] 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 Ixq7cSgDmgs0 for <rtcweb@ietfa.amsl.com>; Mon, 8 Jun 2015 02:19:19 -0700 (PDT)
Received: from mork.alvestrand.no (mork.alvestrand.no [IPv6:2001:700:1:2::117]) by ietfa.amsl.com (Postfix) with ESMTP id EAD591B2DCE for <rtcweb@ietf.org>; Mon, 8 Jun 2015 02:19:18 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mork.alvestrand.no (Postfix) with ESMTP id 52AF37C0A3A; Mon, 8 Jun 2015 11:19:17 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at alvestrand.no
Received: from mork.alvestrand.no ([127.0.0.1]) by localhost (mork.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j0KN_mc2sV-J; Mon, 8 Jun 2015 11:19:15 +0200 (CEST)
Received: from [IPv6:2001:470:de0a:27:fd19:c332:d33e:eb48] (unknown [IPv6:2001:470:de0a:27:fd19:c332:d33e:eb48]) by mork.alvestrand.no (Postfix) with ESMTPSA id 6624C7C05D7; Mon, 8 Jun 2015 11:19:15 +0200 (CEST)
Message-ID: <55755E12.8020201@alvestrand.no>
Date: Mon, 08 Jun 2015 11:19:14 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: Magnus Westerlund <magnus.westerlund@ericsson.com>, Roman Shpount <roman@telurix.com>
References: <556EF4F9.1060700@ericsson.com> <556F5E5C.5080600@alvestrand.no> <CAD5OKxs4_hVc-7haF7vik7+PNU33Ox9Jin35tzrPhiaekENLvQ@mail.gmail.com> <557556ED.8050206@ericsson.com>
In-Reply-To: <557556ED.8050206@ericsson.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/gmFX7OOiEShs17k0XQUh5jr5Ybs>
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: Mon, 08 Jun 2015 09:19:21 -0000
Den 08. juni 2015 10:48, skrev Magnus Westerlund: > Roman Shpount skrev den 2015-06-04 23:02: >> On Wed, Jun 3, 2015 at 4:06 PM, Harald Alvestrand <harald@alvestrand.no >> <mailto:harald@alvestrand.no>> wrote: >> >> >> If we want to have a mechanism that: >> >> a) allows PT switching >> b) uses different clock rates (and therefore different SSRCs) >> c) doesn't need renegotiation on SSRC change >> >> I would think that the initial SDP would have to contain a=ssrc >> fields for *all* the possible SSRCs - that is, one "a=ssrc:<nnnn> >> cname:<cname>" line per payload type. >> >> Section 5.2.1 already specifies that there will be multiple a=ssrc >> lines (and a=ssrc-group lines) in the case of RTX data. So it's not >> exactly a novel solution. >> >> >> I agree with one small correction -- it is not a separate SSRC per >> payload type, but separate SSRC per clock rate. For instance, if you >> have G.711 audio, RFC 4733 tones and CN at 8KHz, there is going to be a >> payload type for each of them, but all this media should use the same >> SSRC. Opus, RFC 4733 tones and CN at 48Khz (and you will need to specify >> to different payloads for tones and CN for different clock rates), will >> use second SSRC. >> >> The reason for separate SSRCs is to have RTCP reports to work correctly, >> which requires to use the same time units for all the media under >> particular SSRC. Multiple payloads running with the same clock rate can >> re-use the same SSRC without any issues. It actually is beneficial to >> use the same SSRC since they can be synchronized based on the RTP time >> stamps which would be more precise then ntp time. > > However, this can't work as RFC 7160 says in Section 4.1: > > 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. > > Note the second sentence. One would still have to do a new round of > signalling to prime a new SSRC for the previous rate after having > switched to be able to switch back to that Payload Type. Hm. I missed that when reviewing the clock-rate doc. So that means one uses up an SSRC for every clock rate switch. That seems silly; is it possible that this should be considered an erratum for RFC 7160? > I would to some degree argue that renegotiation is not needed here. My > preference would be for a solution that rather use header extensions to > indicate what "purpose" the new RTP stream has so that one understands > that this is the replacement for an earlier RTP stream. That would of course be incompatible with anything that came before. > For the cases where a source is encoded into a single encoded stream and > put in one RTP stream I think all the necessary indications are there. > MID for which m line it belongs. The PT will indicate if it a source RTP > stream or an Redundancy RTP stream (FEC or RTX). > > It is when one comes to scalability layers sent in multiple RTP streams > it becomes problematic to determine on RTP level which is which, without > looking into payload header info to determine which layer the payload > contains. But I just can't imagine switching clock rates for different layers of a scalability-encoded stream. Should we just not solve the problem of behaving bizarrely for this case? > > Having said that I do wonder if this will be a problem, especially in > gateways to legacy. Where this behaviour will make the legacy peer fall > over. Thus requiring a gateway that remap back to a single stable SSRC, > possibly with loss of synch information. Please remember that there are > reasons why the SSRC change was made as the required behaviour. Are there legacy gateways that will NOT fall over on a clock rate + SSRC switch? If so - what do these legacy gateways do when switching back to the original PT? New SSRC, or back to a previously used SSRC? > > 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] 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