Re: [rtcweb] Offer/answer for heterogeneous encode/decode

Harald Alvestrand <> Sun, 24 November 2013 16:39 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 065C01AE2FD for <>; Sun, 24 Nov 2013 08:39:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.825
X-Spam-Status: No, score=-6.825 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_18=0.6, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.525] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id k3vRoSRJzQOO for <>; Sun, 24 Nov 2013 08:39:41 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 71D0F1ADF46 for <>; Sun, 24 Nov 2013 08:39:41 -0800 (PST)
Received: from localhost (localhost []) by (Postfix) with ESMTP id CF69A39E0E1 for <>; Sun, 24 Nov 2013 17:39:03 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id tVYWu8673KJc for <>; Sun, 24 Nov 2013 17:39:02 +0100 (CET)
Received: from (unknown [IPv6:2620:0:1043:1:7646:a0ff:fe90:e2bb]) by (Postfix) with ESMTPSA id AEAB939E070 for <>; Sun, 24 Nov 2013 17:39:02 +0100 (CET)
Message-ID: <>
Date: Sun, 24 Nov 2013 17:38:57 +0100
From: Harald Alvestrand <>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0
MIME-Version: 1.0
References: <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
Subject: Re: [rtcweb] Offer/answer for heterogeneous encode/decode
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: Sun, 24 Nov 2013 16:39:44 -0000

On 11/23/2013 01:20 AM, Paul Giralt (pgiralt) wrote:
> On Nov 22, 2013, at 7:06 PM, Martin Thomson <> wrote:
>> On 22 November 2013 15:44, Paul Giralt (pgiralt) <> wrote:
>>> While you’re right that it would work for this scenario, my point was really
>>> that Offer/Answer is not really asymmetric as implied earlier. Take for
>>> example the hypothetical case where you are only able to decode VP8 but only
>>> able to encode H.264. If I offer VP8 as my only codec (because it’s the only
>>> thing I’m able to decode therefore I never want anyone to send me anything
>>> other than VP8) I cannot send H.264 in the offer because that implies I’m
>>> able to decode it. The other side then wants to say it can only receive
>>> H.264 so it would have to send back an answer with only H.264. I guess
>>> there’s nothing really inherently stopping you from doing this because as
>>> far as I can tell, 3264 only says the answer has to be a subset of the offer
>>> for multicast streams, however how would the answering side know that the
>>> offering side is even capable to receiving H.264? Perhaps Offer/Answer can
>>> technically be asymmetric, but it doesn’t seem practical to use it this way
>>> because you cannot really indicate your send and receive capabilities
>>> independent of each other.
>> Judicious application of a=sendonly or a=recvonly avoids this issue.
>> If you want to send H.264, try a=sendonly on a line with H.264.  If
>> you want to receive VP8, try a=recvonly on a line with VP8.
> 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.

An application that can't talk to itself is kind of bizarre too.

I think this is a corner case.