Re: [MMUSIC] M-line philosophy (Re: Wisdom sought: Prioritization of codecs)

Adam Roach <adam@nostrum.com> Mon, 19 November 2012 15:39 UTC

Return-Path: <adam@nostrum.com>
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 3042F21F8683 for <mmusic@ietfa.amsl.com>; Mon, 19 Nov 2012 07:39:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.346
X-Spam-Level:
X-Spam-Status: No, score=-102.346 tagged_above=-999 required=5 tests=[AWL=0.254, BAYES_00=-2.599, SPF_PASS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GoPsTo6gwDuR for <mmusic@ietfa.amsl.com>; Mon, 19 Nov 2012 07:39:02 -0800 (PST)
Received: from shaman.nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by ietfa.amsl.com (Postfix) with ESMTP id 39F4B21F84D0 for <mmusic@ietf.org>; Mon, 19 Nov 2012 07:39:00 -0800 (PST)
Received: from Orochi.local (99-152-144-32.lightspeed.dllstx.sbcglobal.net [99.152.144.32]) (authenticated bits=0) by shaman.nostrum.com (8.14.3/8.14.3) with ESMTP id qAJFcbGe045978 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Mon, 19 Nov 2012 09:38:41 -0600 (CST) (envelope-from adam@nostrum.com)
Message-ID: <50AA527C.6060200@nostrum.com>
Date: Mon, 19 Nov 2012 09:38:36 -0600
From: Adam Roach <adam@nostrum.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20121026 Thunderbird/16.0.2
MIME-Version: 1.0
To: Harald Alvestrand <harald@alvestrand.no>
References: <50A4AC20.5030306@alvestrand.no> <50A4AE7F.4040403@alvestrand.no> <50A51F04.5090502@alum.mit.edu> <50A54895.7030006@nostrum.com> <50A9BFD4.3000601@alvestrand.no>
In-Reply-To: <50A9BFD4.3000601@alvestrand.no>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Received-SPF: pass (nostrum.com: 99.152.144.32 is authenticated by a trusted mechanism)
Cc: mmusic@ietf.org
Subject: Re: [MMUSIC] M-line philosophy (Re: Wisdom sought: Prioritization of codecs)
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: Mon, 19 Nov 2012 15:39:03 -0000

On 11/18/12 23:12, Harald Alvestrand wrote:
>
> The M-line is problematic because it binds together multiple things:
>
> - A top level media type
> - A set of parameters for media transmission *in all directions* 
> (bound to payload type)
> - Transport information (the "RTP session" data)
>
>
> SDP M-lines are already problematic as soon as you want different 
> parameters in the two directions. It only goes downhill from there 
> when one does multiple flows with varying characteristics.
>
> As I said in Atlanta: SDP M-lines have been walking with one foot on 
> the "I'm an RTP session" bank of the canal and with the other foot on 
> the "I'm a media stream description" bank of the canal.

I agree with your characterization of the situation. I'm a little 
surprised that it doesn't lead you to the same conclusion as I've reached.

There are, at the moment, 176 attributes in the IANA registry that are 
applicable to m= sections:

3GPP-Adaptation-Support 3GPP-Asset-Information 3GPP-QoE-Metrics
3GPP-SRTP-Config 3gpp-videopostdecbufsize FEC FEC-OTI-extension
FEC-declaration SRTPAuthentication SRTPROCTxRate T38FaxFillBitRemoval
T38FaxMaxBuffer T38FaxMaxDatagram T38FaxRateManagement
T38FaxTranscodingJBIG T38FaxTranscodingMMR T38FaxUdpEC T38FaxVersion
T38MaxBitRate T38VendorInfo X-decbyterate X-initpostdecbufperiod
X-initpredecbufperiod X-predecbufsize aal2CPS aal2CPSSDUrate
aal2sscs3661assured aal2sscs3661unassured aal2sscs3662 aal5sscop
aalApp aalType abrParms abrSetup acap accept-types accept-wrapped-types
acfg alt alt-default-id anycast atmQOSparms atmTrfcDesc atmmap bcob
bearerSigIE bearerType cache candidate capability cbrRate cdsc
cfw-id chain channel clkrec cmid codecconfig conf confid connection
content-desc cpar cparmax cparmin cpsSDUsize creq crypto csup curr
dccp-port dccp-service-code depend des dsel ecan ecn-capable-rtp
eecid extmap fec fec-repair-flow fec-source-flow file-date
file-disposition file-icon file-range file-selector file-transfer-id
fingerprint floorctrl floorid flute-ch flute-tsi fmtp framerate
framesize fsel g.3gpp.cat g.3gpp.crs gc h248item ice-mismatch ice-pwd
ice-ufrag ike-setup imageattr inactive isup_usi key-mgmt label lang
lij max-size maxprate maxptime mbms-flowid mbms-mode mbms-repair
mid msrp-cema multicast-rtcp omr-codecs omr-m-att omr-m-bw omr-m-cksum
omr-s-att omr-s-bw omr-s-cksum onewaySel orient path pcfg portmapping-req
profileDesc prtfl psk-fingerprint ptime qos-mech-recv qos-mech-send
qosClass quality rams-updates recvonly remote-candidates repair-window
resource rtcp rtcp-fb rtcp-mux rtcp-rsize rtcp-unicast rtcp-xr
rtpmap rtpred1 rtpred2 sbc sdplang secondary-realm sendonly sendrecv
setup silenceSupp source-filter sqn ssrc ssrc-group stc stkmstream
structure tcap uiLayer1_Prot upcc userid visited-realm vsel zrtp-hash

Some of these are applicable to the RTP session; others only make sense 
as applied to a single media stream.

If we choose to make each m= section represent one media stream, then 
these attributes are applicable as-is. We get to take advantage of the 
work put in place by the 50 to 60 documents that defined the 
corresponding mechanisms with no changes whatsoever to this existing 
corpus of work.

If we choose to make each m= section represent one RTP session, in which 
multiple media streams can be placed, then the use of any of those 176 
attributes that are to be applied on the stream level becomes ambiguous. 
If we want to take advantage of them for RTCWEB (or anything else that 
leverages the work of untangling this mess), then we have to come up 
with an alternate, non-backwards-compatible syntax for conveying each of 
those attributes (cf. draft-lennox-mmusic-sdp-source-selection).

And that's *just* the issues associated with attributes -- the problem 
is even worse once you consider the more subtle (and difficult to 
predict) damage to established mechanisms, like your codec priority 
conundrum.

/a