[rtcweb] JSEP Section 6
Bernard Aboba <bernard.aboba@gmail.com> Thu, 27 October 2016 00:54 UTC
Return-Path: <bernard.aboba@gmail.com>
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 59E7C1295AD for <rtcweb@ietfa.amsl.com>; Wed, 26 Oct 2016 17:54:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 8knnDjpZCa4b for <rtcweb@ietfa.amsl.com>; Wed, 26 Oct 2016 17:54:33 -0700 (PDT)
Received: from mail-vk0-x234.google.com (mail-vk0-x234.google.com [IPv6:2607:f8b0:400c:c05::234]) (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 BB895129406 for <rtcweb@ietf.org>; Wed, 26 Oct 2016 17:54:32 -0700 (PDT)
Received: by mail-vk0-x234.google.com with SMTP id d65so16430332vkg.0 for <rtcweb@ietf.org>; Wed, 26 Oct 2016 17:54:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc; bh=SGXGUs3zxx74AqX4q44RBuArGrcxaIx/IdTBsfRXx1g=; b=y0gOYuIJJrtMPi2ohoQVaAagi1wkB9dihVCri9VkSWb0Pn3aiMR2Gwx5nHsS2RmM7G sdbbJY/5XfX6iZbeeBvyU2TWIgqh5+cQsU5Ry5+BlzAxyaGeEO5yYE6tyq0E1r/o/oMr lS00/yUNy0wll/FyfsdxrtAaWvOAclcWy8PsCiVdcNflLxqVYHdZwZVKwH9dxRDGQJ// 9LNQLW/STMT60pQO0yv/tUkSzCCxVIK8mLbsGviBB9BQRErZSCK487o9C1cWtupYKePH BqSxFv4YKBr6tVrHhXRltCGzmZSWdl9/teQB61oupGT9AakN+8qrve/Ep4G/B3ngIMiz cROg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=SGXGUs3zxx74AqX4q44RBuArGrcxaIx/IdTBsfRXx1g=; b=BLL+NKbpv6PMgNJbkAhkMcXXXtwItknaAxV3/hiOXmR87KjHOqqmWPHPHvffaajska 3jhJqGjAiaaGu5pKsB++PloUWL56ESqv2MPoKBvUKAYJ3H/JVgSa+aJUH/gO9oaciNlK WEKBcWafvWwDdtOHE1+GEroic7XBB9y1+1RelzhtWKH97Pm+OApbmpHNaT7NS2So8xBx /CSrrcaYhPMa9Ii4fih9WliySfJHgpE2VHVHBuJvqj9iLgZogEnkN6pB2y8PyIX+XMqF hUuoq6dKA3LRdpSVGT9GC2nCSSIz0bJnC8pImnfY5/FQI9m3W7ac0LkBzKXRJtgGr7Ni JwbA==
X-Gm-Message-State: ABUngvcHt3CE0K/ceOBcNzdMZ+trVQBVd1tPn/ZYXtNYFoAgMPRdMNRoGg6Rc2zbf2yUqq1OPGBNkbnQjS44gQ==
X-Received: by 10.31.130.74 with SMTP id e71mr3882565vkd.34.1477529671479; Wed, 26 Oct 2016 17:54:31 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.176.16.88 with HTTP; Wed, 26 Oct 2016 17:54:11 -0700 (PDT)
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Wed, 26 Oct 2016 17:54:11 -0700
Message-ID: <CAOW+2dv1C9z0gFF35kmSgnDkLXaHwkJfVQC8Z+=_BVQ0Z-PX9A@mail.gmail.com>
To: "rtcweb@ietf.org" <rtcweb@ietf.org>
Content-Type: multipart/alternative; boundary="001a114485f436b9fd053fce2f71"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/QIOK7FXTV6Q-gWMwfKxOaAweI8A>
Cc: Robin Raymond <robin@myjoe.com>
Subject: [rtcweb] JSEP Section 6
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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: Thu, 27 Oct 2016 00:54:35 -0000
Some comments. Construct a table mapping payload type to RtpReceiver for each RtpReceiver configured to receive from this transport and for each payload type that RtpReceiver is configured to receive. The payload types of a given RtpReceiver are found in the m= section corresponding to that RtpReceiver in the local description. If any payload type could map to more than one RtpReceiver, map to the RtpReceiver whose m= section appears earliest in the local description. [BA] In the case where a payload type can map to more than one RtpReceiver, what if the earliest m-line is "send-only" or "inactive"? Wouldn't you want to map to the RtpReceiver whose m-line is "recv-only" or "send-recv" and is earliest? If the packet's payload type is in the payload type table, update the the incoming SSRC mapping table to include an entry that maps the packet's SSRC to the RtpReceiver for that payload type. In addition, deliver the packet to the associated RtpReceiver and stop. [BA] I believe that PT-based SSRC latching breaks two of Cullen's proposed use cases (see: https://mailarchive.ietf.org/arch/msg/rtcweb/cvcpy-Rnj4ntL66haNnKHy2_Yvw ): Codec change, case 1: The PTs are all unique, and no SSRCs were signaled in SDP There is no RID, MID, FEC or RTX. Sender switches codecs, and the PT changes (but SSRC stays the same). The packet goes to the receiver that matches the new PT. Codec change, case 2: The PTs are all unique and SSRCs are signaled in SDP. There is no RID, MID, FEC or RTX. Sender switches codecs and the PT changes (but SSRC stays the same). SSRC does not match any signaled ones. The packet goes to the receiver that matches the new PT. [BA] For the RTCP routing, it is more clear to use the RFC 3550 terms for the various SSRC fields. For exchange, change: "If the packet is of type SR, and the sender SSRC for the packet is found in the incoming SSRC table, deliver a copy of the packet to the RtpReceiver associated with that SSRC. In addition, for each report block in the report whose SSRC is found in the outgoing SSRC table, deliver a copy of the RTCP packet to the RtpSender associated with that SSRC." To: "If the packet is of type SR, and the "SSRC of sender" for the packet is found in the incoming SSRC table, deliver a copy of the packet to the RtpReceiver associated with that SSRC. In addition, for each report block in the report whose "SSRC of source" is found in the outgoing SSRC table, deliver a copy of the RTCP packet to the RtpSender associated with that SSRC." [BA] Change: "If the packet is of type RR, for each report block in the packet whose SSRC is found in the outgoing SSRC table, deliver a copy of the RTCP packet to the RtpSender associated with that SSRC." To: "If the packet is of type RR, for each report block in the packet whose "SSRC of source" is found in the outgoing SSRC table, deliver a copy of the RTCP packet to the RtpSender associated with that SSRC." [BA] The RTCP SDES packet has no "SSRC of packet sender" field, so change: "If the packet is of type SDES, and the sender SSRC for the packet is found in the incoming SSRC table, deliver the packet to the RtpReceiver associated with that SSRC. In addition, for each chunk in the packet that contains a MID that is in the table mapping MID to RtpReceiver, update the incoming SSRC mapping table to include an entry that maps the SSRC for that chunk to the RtpReceiver associated with that MID. (This case can occur when RTCP for a source is received before any RTP packets.)" To: "If the packet is of type SDES, for each chunk containing an "SSRC/CSRC" field found in the incoming SSRC table, deliver the packet to the RtpReceiver associated with that SSRC. In addition, for each chunk in the packet that contains a MID that is in the table mapping MID to RtpReceiver, update the incoming SSRC mapping table to include an entry that maps the SSRC for that chunk to the RtpReceiver associated with that MID. (This case can occur when RTCP for a source is received before any RTP packets.)" [BA] Change: "If the packet is of type BYE, for each SSRC indicated in the packet that is found in the incoming SSRC table, deliver a copy of the packet to the RtpReceiver associated with that SSRC." To: "If the packet is of type BYE, for each "SSRC/CSRC" indicated in the packet that is found in the incoming SSRC table, deliver a copy of the packet to the RtpReceiver associated with that SSRC." [BA] Change: "If the packet is of type RTPFB or PSFB, as defined in [RFC4585 <https://tools.ietf.org/html/rfc4585>], and the media source SSRC for the packet is found in the outgoing SSRC table, deliver the packet to the RtpSender associated with that SSRC." To: "If the packet is of type RTPFB or PSFB, as defined in [RFC4585 <https://tools.ietf.org/html/rfc4585>], and the "SSRC of media source" for the packet is found in the outgoing SSRC table, deliver the packet to the RtpSender associated with that SSRC." [BA] Since FIR feedback messages can contain multiple FCI fields, I think you need to add the following text (see RFC 5104 Section 4.3.1.1): "In addition, for FIR feedback messages, as defined in [RFC5104], for each "SSRC" indicated in an FCI entry, deliver a copy of the packet to the RtpSender associated with that SSRC.
- [rtcweb] JSEP Section 6 Bernard Aboba