Re: [MMUSIC] Simplifying draft-westerlund-avtcore-rtp-simulcast

Christer Holmberg <christer.holmberg@ericsson.com> Sat, 30 November 2013 08:40 UTC

Return-Path: <christer.holmberg@ericsson.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 81A321AE3BE for <mmusic@ietfa.amsl.com>; Sat, 30 Nov 2013 00:40:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.361
X-Spam-Level: **
X-Spam-Status: No, score=2.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_SE=0.35, HOST_MISMATCH_NET=0.311, HTML_MESSAGE=0.001, J_CHICKENPOX_12=0.6, J_CHICKENPOX_14=0.6, J_CHICKENPOX_15=0.6, J_CHICKENPOX_16=0.6, J_CHICKENPOX_18=0.6, J_CHICKENPOX_19=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 WaJh2dhoWztY for <mmusic@ietfa.amsl.com>; Sat, 30 Nov 2013 00:40:05 -0800 (PST)
Received: from sessmg20.mgmt.ericsson.se (sessmg20.ericsson.net [193.180.251.50]) by ietfa.amsl.com (Postfix) with ESMTP id 7BC891AE364 for <mmusic@ietf.org>; Sat, 30 Nov 2013 00:40:04 -0800 (PST)
X-AuditID: c1b4fb32-b7f388e0000057e0-1f-5299a462c3e8
Received: from ESESSHC016.ericsson.se (Unknown_Domain [153.88.253.125]) by sessmg20.mgmt.ericsson.se (Symantec Mail Security) with SMTP id E5.52.22496.264A9925; Sat, 30 Nov 2013 09:40:02 +0100 (CET)
Received: from ESESSMB209.ericsson.se ([169.254.9.73]) by ESESSHC016.ericsson.se ([153.88.183.66]) with mapi id 14.02.0328.009; Sat, 30 Nov 2013 09:40:01 +0100
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Bernard Aboba <bernard_aboba@hotmail.com>, "mmusic@ietf.org" <mmusic@ietf.org>
Thread-Topic: [MMUSIC] Simplifying draft-westerlund-avtcore-rtp-simulcast
Thread-Index: AQHO7HThG+X2tMt6m0yojy1/V4PWfZo9dplH
Date: Sat, 30 Nov 2013 08:40:00 +0000
Message-ID: <867vuen3mevy8h0fwtss4hta.1385800798144@email.android.com>
References: <BLU169-W11468829F05B411E43D51E693EE0@phx.gbl>
In-Reply-To: <BLU169-W11468829F05B411E43D51E693EE0@phx.gbl>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Content-Type: multipart/alternative; boundary="_000_867vuen3mevy8h0fwtss4hta1385800798144emailandroidcom_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrHLMWRmVeSWpSXmKPExsUyM+JvrW7SkplBBv03hCz2L7nMbDF1+WMW ByaPxz1n2DyWLPnJFMAUxWWTkpqTWZZapG+XwJWx7dJStoKrBRXn9+xlamDcGtvFyMkhIWAi sb/tOxOELSZx4d56ti5GLg4hgROMEptn/2KEcBYzSlz+8Y+li5GDg03AQqL7nzZIg4hAiMSc FXvBmoUFPCRezD/DBBH3lHi5s4UVwjaSaNv9lBHEZhFQlVi09QhYnFfATWJt/w9mEFtIwEri +613bCA2p4C1xO/vD8DqGYEO+n5qDdhMZgFxiVtP5kMdKiCxZM95ZghbVOLl43+sEDU5EovP Q9zAKyAocXLmE5YJjMKzkLTPQlI2C0kZRFxP4sbUKWwQtrbEsoWvmSFsXYkZ/w6xIIsvYGRf xShZnFpcnJtuZKCXm55bopdalJlcXJyfp1ecuokRGEcHt/w22sF4co/9IUZpDhYlcd7rrDVB QgLpiSWp2ampBalF8UWlOanFhxiZODilGhglnGRNlD8/ua/hsXArY+e0499O1XxQSCzL9Ui6 Fa91Z/s2CacrO3fX+b61n3ZQV7o6wO6WqYPIvyNC2+4qS+2sWrVM6MSBpc+O37S4EtS1ouq2 zH6mR1xK+1s1Z2dr3ThwJOOQjvCH5fGSR7w6Ge9P8D/YsdNEwnGJ8kTv7Nrd4s4Ja3OTgq4o sRRnJBpqMRcVJwIALz+9unECAAA=
Subject: Re: [MMUSIC] Simplifying draft-westerlund-avtcore-rtp-simulcast
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmusic/>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 30 Nov 2013 08:40:07 -0000

Hi Bernard,

In your example, how does the answerer know that the offered m- lines are for simulcast? As far as O/A is concerned, it could just be a number of completely separate (different content etc) uni-directional streams.

Regards,

Christer

Sent from my Sony Ericsson Xperia arc S

Bernard Aboba <bernard_aboba@hotmail.com> wrote:



At IETF 88, a number of  participants (including myself) expressed the view that draft-westerlund-avtcore-rtp-simulcast was too complicated.  Below, I will attempt to explain how simulcast might be negotiated in a simplified Offer/Answer exchange based on the principles of Unified Plan.

Typically in simulcast we have an endpoint sending multiple streams in parallel to the Selective Forwarding Unit (SFU), while receiving one among a set of potential streams from the SFU, with the SFU being able to switch between the streams that it is sending to the endpoint without signaling.  RFC 3264 describes how to handle each of these situations.

With respect to sending multiple streams in parallel, RFC 3264 Section 5.1 states the following:

If the offerer wishes to only send media on a stream to its peer, it MUST mark the stream as sendonly with the "a=sendonly" attribute.  We  refer to a stream as being marked with a certain direction if a direction attribute was present as either a media stream attribute or a session attribute. For sendonly RTP streams, the payload type numbers indicate the value of the payload type field in RTP packet the offerer is planning to send for that codec...  In all cases, the formats in the "m=" line MUST be listed in order of preference, with the first format listed being preferred.  In this case, preferred means that the recipient of the offer SHOULD use the format with the highest preference that is acceptable to it. If multiple media streams of different types are present, it means that the offerer wishes to use those streams at the same time.  A typical case is an audio and a video stream as part of a videoconference.

If multiple media streams of the same type are present in an offer,  it means that the offerer wishes to send (and/or receive) multiple streams of that type at the same time...  Each stream MAY use different encodings.

With respect to receiving one among a set of potential streams, here is what RFC 3264 Section 5.1 says:

If the offerer wishes to only receive media from its peer, it MUST mark the stream as recvonly... If multiple formats are listed, it means that the offerer is capable of making use of any of those formats during the session.  In other words, the answerer MAY change formats in the middle of the session, making use of any of the formats listed, without sending a new offer.  For a sendonly stream, the offer SHOULD indicate those formats the offerer is willing to send for this stream.  For a recvonly stream,  the offer SHOULD indicate those formats the offerer is willing to receive for this stream....

For recvonly RTP streams, the payload type numbers indicate the value of the payload type field in RTP packets the offerer is expecting to  receive for that codec.

Based on the above:

1. An offer from an endpoint to an SFU would include an m=line for each potential simulcast stream to be sent, each including an a=sendonly line.  The offer would also include a single m=line (with a=recvonly) describing the streams that the endpoint is prepared to receive, each with their own payload type.

2. An answer from an SFU to an endpoint would accept or reject each of the simulcast streams that the endpoint is proposing to send (with an a=recvonly line).  In addition, the answer would include a single m=line (with a=sendonly) indicating the streams from among those proposed by the endpoint that the SFU is prepared to send.  The SFU can then switch between those streams without having to signal the endpoint.

Since it is possible for the Answerer to accept/reject each of the proposed streams the Offerer is proposing to send, an Answerer can indicate how many streams it is prepared to receive (might only be one if simulcast isn't supported).   Similarly, an Answerer can select those simulcast streams it is prepared to send (might only be one if simulcast isn't supported).

Example Offer (leaving out BUNDLE, rtp/rtcp multiplexing, and audio):

   v=0
   o=alice 2362969037 2362969040 IN IP4 192.0.2.156
   s=Simulcast Enabled Unified Plan Client
   t=0 0
   c=IN IP4 192.0.2.156
   b=AS:665
   m=video 49300 RTP/AVP 97
   a=sendonly
   b=AS:520
   a=rtpmap:97 H264/90000
   a=fmtp:97 profile-level-id=42c01e
   a=imageattr:97 send [x=640,y=360]
   m=video 49302 RTP/AVP 98
   a=sendonly
   a=rtpmap:98 H264/90000
   a=fmtp:98 profile-level-id=42c01e
   a=imageattr:98 send [x=320,y=180]
   m=video 49304 RTP/AVP 100 99
   a=recvonly
   a=rtpmap:100 H264/90000
   a=fmtp:100 profile-level-id=42c01e
   a=imageattr:100 recv [x=640,y=360]
   a=rtpmap:99 H264/90000
   a=fmtp:99 profile-level-id=42c01e
   a=imageattr:99 recv [x=320,y=180]


Example Answer:

   v=0
   o=server 823479283 1209384938 IN IP4 192.0.2.2
   s=Answer to Simulcast Enabled Unified Plan Client
   t=0 0
   c=IN IP4 192.0.2.43
   b=AS:665
   m=video 48000 RTP/AVP 97
   a=recvonly
   b=AS:520
   a=rtpmap:97 H264/90000
   a=fmtp:97 profile-level-id=42c01e
   a=imageattr:97 recv [x=640,y=360]
   m=video 48002 RTP/AVP 98
   a=recvonly
   a=rtpmap:98 H264/90000
   a=fmtp:98 profile-level-id=42c01e
   a=imageattr:98 recv [x=320,y=180]
   m=video 48004 RTP/AVP 100 99
   a=sendonly
   a=rtpmap:100 H264/90000
   a=fmtp:100 profile-level-id=42c01e
   a=imageattr:100 send [x=640,y=360]
   a=rtpmap:99 H264/90000
   a=fmtp:99 profile-level-id=42c01e
   a=imageattr:100 send [x=320,y=180]