Re: [rtcweb] Asymmetric codecs

"Mo Zanaty (mzanaty)" <> Mon, 25 November 2013 16:13 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 36E871ADF77 for <>; Mon, 25 Nov 2013 08:13:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -9.501
X-Spam-Status: No, score=-9.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 9dpHa8dGe-Dq for <>; Mon, 25 Nov 2013 08:13:05 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 3A9DD1ADF50 for <>; Mon, 25 Nov 2013 08:13:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=17241; q=dns/txt; s=iport; t=1385395985; x=1386605585; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=SRzoKkHnVRCjN7SI0Rt66mIP2+u41sxaZ3GCJuPqfSQ=; b=F+zFMHVFElOdakjxEw9wlJAUKI3VmbbzBe8CiTJHsSuBgcJvudQ8PcAN Gk3R62Nz9woUQw8PGa1hi4HI2N2fI0xiGIRFU713uvQXVP5hffSFjBZGg MzTVPDrov4FLNJ/0R6bsIffNJhVlc2jEdGDF3QzrA5zjxkgvhyFkmVoOt Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="4.93,768,1378857600"; d="scan'208,217";a="2066396"
Received: from ([]) by with ESMTP; 25 Nov 2013 16:13:05 +0000
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id rAPGD5dm002247 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Mon, 25 Nov 2013 16:13:05 GMT
Received: from ([]) by ([]) with mapi id 14.03.0123.003; Mon, 25 Nov 2013 10:13:04 -0600
From: "Mo Zanaty (mzanaty)" <>
To: Christer Holmberg <>, Martin Thomson <>, "Paul Giralt (pgiralt)" <>
Thread-Topic: Asymmetric codecs
Thread-Index: AQHO6fk4srko9WvZvkKiVv6I72CdiA==
Date: Mon, 25 Nov 2013 16:13:04 +0000
Message-ID: <>
References: <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
user-agent: Microsoft-MacOutlook/
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_CEB8D9AC1F15Emzanatyciscocom_"
MIME-Version: 1.0
Cc: "" <>
Subject: Re: [rtcweb] Asymmetric codecs
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 25 Nov 2013 16:13:08 -0000

Re: MTI, I don’t think asymmetric codecs will solve all the MTI issues. However, it may solve some practical deployment issues regardless of MTI decisions. If products have a decoder but no encoder, it may help to express that. For example, Chrome can expose its H.264 decoder for webrtc despite no encoder. Hardware products can expose their VP8 decoder for webrtc despite no encoder.

Re: SDP, if you want asymmetric codecs over the same port, is it ok to mandate bundle to achieve this? I started with a single sendrecv m-line with all payload types that can be decoded but not necessarily encoded, as Justin suggested. That would not require bundle. However, it gets ugly when adding extra signaling for which payload types can’t be encoded and multiple O/A rounds for interop with arbitrary peers. The complexity approached bundle, so I ended up with separate sendonly/recvonly m-lines, as Martin suggested.

On 11/25/13, 2:24 AM, Christer Holmberg <<>> wrote:
First, from a pure MTI codec perspective, the question is whether usage of asymmetric codecs would solve the issues that people have.
Second, from an SDP OA/BUNDLE perspective, I don’t think we can mandate usage of BUNDLE. And, even if we did, in the initial Offer you still need to assign unique port values for each m- line (as agreed in Vancouver).
…unless, of course, you assign an SDP ‘bundle-only’ attribute to all m- lines with asymmetric codecs.

From: Mo Zanaty (mzanaty) []
Sent: 25. marraskuuta 2013 4:11
To: Christer Holmberg; Martin Thomson; Paul Giralt (pgiralt)
Subject: Asymmetric codecs

I started a draft on how to standardize support for asymmetric codecs back in September. The primary motivation was decoding H.264 and H.265 while only encoding H.264. A secondary motivation, for rtcweb, was decoding H.264 and VP8 while only encoding one of them, as Stefan mentioned. I thought it would be a trivial thing to write up by the Oct. 6 deadline for MTI proposals. The draft is still incomplete and unpublished because all solutions are ugly and overly complex for something so seemingly trivial, just like bundle and unified plan. I now sympathize with Christer and Adam for how they arrived at those (not exactly elegant) solutions, and agree with Martin that a pair of (bundled) m-lines is the most viable (although not exactly elegant) solution for asymmetric codecs.

RFC 4317 drafts originally included asymmetric codecs until they were removed in draft 02:

They were removed for fear of issues with shared ports:

Now that we (almost) have bundle, can we resurrect asymmetric codecs with separate sendonly and recvonly m-lines? Are folks ok with a dependency on bundle? I would be happy to complete a draft in that direction. (That is, a general mmusic draft on asymmetric codecs, not a rtcweb draft on MTI asymmetric codecs. I will move the discussion to mmusic after getting rtcweb opinions first.)

Some may consider this a bizarre corner case. However, for hardware codecs, it is the norm not the exception to have asymmetric encoder and decoder formats. Especially for new formats, which usually appear in hardware decoders well before hardware encoders are available. This happened for H.264, H.265, VP8, and virtually every popular codec format in virtually every popular chipset.


On 11/23/13, 9:09 AM, Christer Holmberg <<>> wrote:
Like some others, I think the must-decode-both-must-endcode-one alternative as such sounds interesting (whether it has any impact on the licence/IPR issues I'll leave to others to speak for). However, I have big concerns over the proposal to indicate sendrecv for a codec even if an entity is only able to receive/decode it. … Usage of unidirectional, sendonly/recvonly, m- line would of course solve this, and you might know that it is one option we are discussing in CLUE (for other reasons than MTI codec, though).

On 22 November 2013 16:20, Paul Giralt (pgiralt) <<>> wrote:
I gave this as an example of a possible way to do it, but that means you need two separate m= lines - one for send and one for receive. Seems strange to do this for something that you really want to be a single bi-directional stream.

On 11/22/13, 8:03 PM, Martin Thomson <<>> wrote:
The bidirectional thing in O/A is the strange way to do things.  Two lines is pretty intuitive.