Re: [MMUSIC] Possible BUNDLE alternative syntax: explicit m-line for bundled session

Harald Alvestrand <harald@alvestrand.no> Fri, 10 August 2012 05:45 UTC

Return-Path: <harald@alvestrand.no>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2305111E80E5 for <mmusic@ietfa.amsl.com>; Thu, 9 Aug 2012 22:45:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -109.457
X-Spam-Level:
X-Spam-Status: No, score=-109.457 tagged_above=-999 required=5 tests=[AWL=-0.659, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_12=0.6, J_CHICKENPOX_15=0.6, J_CHICKENPOX_16=0.6, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Dbu3rRlBdPco for <mmusic@ietfa.amsl.com>; Thu, 9 Aug 2012 22:45:16 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id A05AB11E80DF for <mmusic@ietf.org>; Thu, 9 Aug 2012 22:45:15 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id EEEF939E170; Fri, 10 Aug 2012 07:45:12 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id neKOHGwf+l20; Fri, 10 Aug 2012 07:45:10 +0200 (CEST)
Received: from [IPv6:2001:470:de0a:27:4ca5:d00a:49a2:b939] (unknown [IPv6:2001:470:de0a:27:4ca5:d00a:49a2:b939]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id B4B2F39E130; Fri, 10 Aug 2012 07:45:10 +0200 (CEST)
Message-ID: <50249FFB.7000905@alvestrand.no>
Date: Fri, 10 Aug 2012 07:45:31 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20120714 Thunderbird/14.0
MIME-Version: 1.0
To: Bernard Aboba <bernard_aboba@hotmail.com>
References: <CE457B53-341D-48C8-8CD7-2A0958407F37@vidyo.com> <50222D44.5040105@alvestrand.no> <BLU401-EAS1263CBF056291C5313CA95193CD0@phx.gbl>, <502258CA.5030009@alvestrand.no> <BLU002-W14079A44079EFA284B8E94793CC0@phx.gbl>
In-Reply-To: <BLU002-W14079A44079EFA284B8E94793CC0@phx.gbl>
Content-Type: multipart/alternative; boundary="------------050200010904000701070106"
Cc: "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] Possible BUNDLE alternative syntax: explicit m-line for bundled session
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
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: Fri, 10 Aug 2012 05:45:17 -0000

On 08/09/2012 06:57 PM, Bernard Aboba wrote:
>
> Harald said:
> > Bernard, since I'm so easily confused by how people transmit layers of
> > layered codecs, can you illustrate the particular scheme you want to
> > use, and can't think of how to represent in Jonathan's scheme?
>
> [BA]  I am looking at RFC 5583 "Signaling Media Decoding Dependency in 
> SDP". An
> example of how this would be used with H.264/SVC is included in RFC 
> 6190, Section 7.3.4:
>
>        a=group:DDP L1 L2
>        m=video 20000 RTP/AVP 96
>        a=rtpmap:96 H264/90000
>        a=fmtp:96 profile-level-id=4de00a; packetization-mode=0;mst-mode=NI-T;
>        a=mid:L1
>        m=video 20002 RTP/AVP 97
>        a=rtpmap:97 H264-SVC/90000
>        a=fmtp:97 profile-level-id=53001F; packetization-mode=1;
>         mst-mode=NI-TC; sprop-operation-point-info=<2,0,1,0,53000c,
>        3200,352,288,384,512>,<3,1,2,0,53001F,6400,704,576,768,1024>;
>        a=mid:L2
>        a=depend:97 lay L1:96
>
> Here the a=depend line is expressing the decoding dependency (layered 
> in this case).

Interesting..... I do not see a way in that syntax to express a 
relationship between multiple video tracks in the same session. Is this 
expected to be done by matching SSRC across the sessions?


> Let us assume that there is also audio, as in Jonathan's example:
>
>         m=audio 10000 RTP/AVP 0 8 97
>         a=mid:foo
>         b=AS:200
>         a=rtpmap:0 PCMU/8000
>         a=rtpmap:8 PCMA/8000
>         a=rtpmap:97 iLBC/8000
>
> Does the entire SDP offer with BUNDLE and dependency grouping look 
> like this (ignoring RTP/RTCP mux for the moment)?
>
>         v=0
>         o=alice 2890844526 2890844526 IN IP4 host.atlanta.com
>         s=
>         c=IN IP4 host.atlanta.com
>         t=0 0
>         a=group:BUNDLE foo L1 L2 baz
>         a=group:DDP L1 L2
>         m=audio 10000 RTP/AVP 0 8 98
>         a=mid:foo
>         b=AS:200
>         a=rtpmap:0 PCMU/8000
>         a=rtpmap:8 PCMA/8000
>         a=rtpmap:98 iLBC/8000
>         a=candidate:1 1 UDP 1694498815 host.atlanta.com 10000 typ host
>         m=video 20000 RTP/AVP 96
>         a=rtpmap:96 H264/90000
>         a=fmtp:96 profile-level-id=4de00a; packetization-mode=0;mst-mode=NI-T;
>         a=mid:L1
>         m=video 20002 RTP/AVP 97
>         a=rtpmap:97 H264-SVC/90000
>         a=fmtp:97 profile-level-id=53001F; packetization-mode=1;
>         mst-mode=NI-TC; sprop-operation-point-info=<2,0,1,0,53000c,
>        3200,352,288,384,512>,<3,1,2,0,53001F,6400,704,576,768,1024>;
>         a=mid:L2
>         a=depend:97 lay L1:96
>         a=candidate:1 1 UDP 1694498815 host.atlanta.com 20002 typ host
>         m=bundle 10000 RTP/AVP 0 8 96 97 98
>         a=mid:baz
>         b=AS:1200
>         a=full-rtpmap:0 audio/PCMU/8000
>         a=full-rtpmap:8 audio/PCMA/8000
>         a=full-rtpmap:98 audio/iLBC/8000
>         a=full-rtpmap:96 H264/90000
>         a=full-rtpmap:97 H264-SVC/90000
>         a=depend:97 lay L1:96
>         a=candidate:1 1 UDP 1694498815 host.atlanta.com 10000 typ host
>
I think you can't BUNDLE L1 and L2 together, since the whole point of 
having L1 and L2 is transport separation, and if SSRC matching is used 
to figure out which video stream in L2 is an enhancement layer for which 
video stream in L1, mapping them into the same RTP stream would be 
physically impossible.

So if one BUNDLEs audio and L1 video, the SDP should look like this:
>   
>         v=0
>         o=alice 2890844526 2890844526 IN IP4 host.atlanta.com
>         s=
>         c=IN IP4 host.atlanta.com
>         t=0 0
>         a=group:BUNDLE foo L1 baz
>         a=group:DDP L1 L2
>         m=audio 10000 RTP/AVP 0 8 98
>         a=mid:foo
>         b=AS:200
>         a=rtpmap:0 PCMU/8000
>         a=rtpmap:8 PCMA/8000
>         a=rtpmap:98 iLBC/8000
>         a=candidate:1 1 UDP 1694498815 host.atlanta.com 10000 typ host
>         m=video 20000 RTP/AVP 96
>         a=rtpmap:96 H264/90000
>         a=fmtp:96 profile-level-id=4de00a; packetization-mode=0;mst-mode=NI-T;
>         a=mid:L1
>         m=video 20002 RTP/AVP 97
>         a=rtpmap:97 H264-SVC/90000
>         a=fmtp:97 profile-level-id=53001F; packetization-mode=1;
>         mst-mode=NI-TC; sprop-operation-point-info=<2,0,1,0,53000c,
>        3200,352,288,384,512>,<3,1,2,0,53001F,6400,704,576,768,1024>;
>         a=mid:L2
>         a=depend:97 lay L1:96
>         a=candidate:1 1 UDP 1694498815 host.atlanta.com 20002 typ host
>         m=bundle 10000 RTP/AVP 0 8 96 97 98
>         a=mid:baz
>         b=AS:1200
>         a=full-rtpmap:0 audio/PCMU/8000
>         a=full-rtpmap:8 audio/PCMA/8000
>         a=full-rtpmap:98 audio/iLBC/8000
>         a=full-rtpmap:96 H264/90000
>         a=candidate:1 1 UDP 1694498815 host.atlanta.com 10000 typ host

That is - "you can't get there from here, so you shouldn't try".

(I think there's a possibility of carrying all these in a single session 
using MSID to represent the relationships, but that's not something I 
want to chew on for the moment.)

             Harald