Re: [rtcweb] JSEPbis: Questions about send-only/recv-only codecs and Section 4.2.6

Bernard Aboba <bernard.aboba@gmail.com> Sat, 02 March 2024 16:14 UTC

Return-Path: <bernard.aboba@gmail.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D7312C14F680 for <rtcweb@ietfa.amsl.com>; Sat, 2 Mar 2024 08:14:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tSufVHWQgbT2 for <rtcweb@ietfa.amsl.com>; Sat, 2 Mar 2024 08:14:03 -0800 (PST)
Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2D3E5C14F5F5 for <rtcweb@ietf.org>; Sat, 2 Mar 2024 08:14:03 -0800 (PST)
Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-6e5d7f1f15bso1094344b3a.2 for <rtcweb@ietf.org>; Sat, 02 Mar 2024 08:14:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709396042; x=1710000842; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=bqH2AGEE9gFiU6HOHSYhx8TEyStmB7N80n7OqCqomNI=; b=eV4Hc3h/njRHrhbpAUGON8wqCePF+PXOtusyFQSCcnAvqVVRWXep2jnFd4RR5pOf1N roW7ZQqndZxJZaPXH9QBY0id4rew70ZGDbcuX9nRZxDbTJbWaYGyrci3Gw/M6AJ92/pp 26Jyw2DNGG+DN2qP+ul3EdpntyILTt5/XMAXwM0yr/mII906BgLBvsByEjlfSFCGHrRn icCls1GuibraoG+fr6bjOGqoMbPiMP/DCxySQxqVrry8IWhm9w9hTUvk5Ixe1tQEgD9v zT8ebvwzBriqiFa8HeouYF7RSZATvvmf+tZqajlKXFBclD9ulHcWga6rbLt5+pnuI94q iv7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709396042; x=1710000842; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bqH2AGEE9gFiU6HOHSYhx8TEyStmB7N80n7OqCqomNI=; b=JaLGusfk7hqN4vooSbmWWiXAzxbRo9v60FjdxuqwfwXjG9ZAv4l4nI1Jw341rBdS9J 5Pap36QqiLm6gpMZdUDJBaeUYHsp0LV9ac0tPKpXfH1Lpg98X5FmNPnAqTe46UpA6qPi NssbdlmqOKT1gwwWm2essmFMQ+yEywbOTilsH39eREHsbs/pjkKDrl5gXu9o4qVUNwMY lrJUIRS7FwIdjaY18k6gktY4Y1FZ/UsNZwwunDTojRAtmWuVAc9gPnRhhxLj0F1CmL9N T+s+jcaCjfjeVYs7OqABiImrH/q+Zv8ZLvKrUfh7XqCzSBzRGXbSFCX6nlzPFEyOzf/e PxZQ==
X-Gm-Message-State: AOJu0YzEIptqpuGCIBDahXYdkTFOoXzbFK9FVdyVb6uVGwf/N82k+Nby 5myIgc+JkJmA/Vz120g58kod/IdL3Za42tcjDBRVUr7mB2qCQ9RVNnlERAXpgG4LZnYqNntoSSv L9y7vt2eA/dxg+UvjU8XEIbJkfKM=
X-Google-Smtp-Source: AGHT+IFJIWcopjleh7sod81wPKi34/xvhi4y2lY4T9qO12Y8/ravioFXtk8IA6Lel8fcZzDIrKF/9B+GLyvs/1n+Hbg=
X-Received: by 2002:a05:6a21:7884:b0:1a1:431c:6696 with SMTP id bf4-20020a056a21788400b001a1431c6696mr3025053pzc.49.1709396042022; Sat, 02 Mar 2024 08:14:02 -0800 (PST)
MIME-Version: 1.0
References: <CAOW+2dud=K0TuQ5s-MKgmnuvxR-DebFFhquigUbsiKQB3RjdNw@mail.gmail.com> <CAOqqYVGhwsxxj1AnUU+Qk5A9DcqnaGCc5YGo9ntd-CvrY0v6Nw@mail.gmail.com>
In-Reply-To: <CAOqqYVGhwsxxj1AnUU+Qk5A9DcqnaGCc5YGo9ntd-CvrY0v6Nw@mail.gmail.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Sat, 02 Mar 2024 08:13:50 -0800
Message-ID: <CAOW+2duhtXRx6_kDgS6CvwnwgwGK8JH+QkODNEpa1=0r=TQDeA@mail.gmail.com>
To: Harald Alvestrand <hta@google.com>
Cc: RTCWeb IETF <rtcweb@ietf.org>, Philipp Hancke <philipp.hancke@gmail.com>, Henrik Boström <hbos@google.com>, Christer Holmberg <christer.holmberg@ericsson.com>
Content-Type: multipart/alternative; boundary="000000000000dd88c10612afc7ec"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/oeJiqA8uLUf56C83bCHnuwQ952Q>
Subject: Re: [rtcweb] JSEPbis: Questions about send-only/recv-only codecs and Section 4.2.6
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Mar 2024 16:14:06 -0000

The text in WebRTC-PC also includes statements about sCP() that do not seem
to apply to the send-only case. For example, in Section 5.4:

*setCodecPreferences
<https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-setcodecpreferences>
will
reject attempts to set codecs not matching
<https://w3c.github.io/webrtc-pc/#dfn-codec-match> codecs found
in RTCRtpReceiver
<https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver>.getCapabilities
<https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver-getcapabilities>(kind),
where kind is the kind of the RTCRtpTransceiver
<https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver>** on which the
method is called*.

For a send-only m-line, does sCP really require a match to codecs found in
RTCRtpReceiver.getCapabilities(kind), or should it use
RTCRtpSender.getCapabilities(kind)?

On Sat, Mar 2, 2024 at 4:29 AM Harald Alvestrand <hta@google.com> wrote:

> Attempting to reflect my current understanding:
>
> The only way I can interpret the current text in a sensible manner is to
> focus on the word "directly" - given that the text on processing the
> preference list also says that if the responder has no preference, the
> codecs in the sendonly media section's preference list should be
> interpreted as "the codecs that the offerer wishes that the responder
> should respond with as their preference, if they can receive them".
>
> This *indirectly* influences the choice of codecs, since the receiver's
> response will limit the sender's selection of what to send.
>
>
>
>
> On Fri, Mar 1, 2024 at 9:00 PM Bernard Aboba <bernard.aboba@gmail.com>
> wrote:
>
>> The purpose of this email is to alert the RTCWEB WG to a potential issue
>> that has been pointed out in JSEPbis Section 4.2.6, with respect to the
>> operation of setCodecPreferences().
>>
>> Currently, support for the H.265 codec in WebRTC is underway in multiple
>> browsers, including Chrome, Firefox and Safari.  Safari Tech Preview 189
>> has enabled by default support for both sending and receiving H.265, while
>> Chrome and Firefox are working on enabling reception of H.265.  This has
>> lead to discussion of potential interoperability issues between browsers
>> that can Offer H.265 on a send/recv m-line, and browsers that can only
>> Offer H.265 on a recv-only m-line.
>>
>> At the AVTCORE WG Virtual Interim on February 13, 2024, we
>> discussed Issue 22 relating to the handling of send-only and recv-only
>> codecs:
>> https://github.com/aboba/hevc-webrtc/issues/22
>>
>> draft-uberti-rtcweb-rfc8829bis Section 4.2.6 says:
>>
>> "The setCodecPreferences method sets the codec preferences of a
>> transceiver, which in turn affect the presence and order of codecs of the
>> associated "m=" section on future calls to createOffer and createAnswer.  *Note
>> that setCodecPreferences does not directly affect which codec the
>> implementation decides to send. It only affects which codecs the
>> implementation indicates that it prefers to receive, via the offer or
>> answer.*  Even when a codec is excluded by setCodecPreferences, it still
>> may be used to send until the next offer/answer exchange discards it."
>>
>> Questions arose relating to the (red) text in italics, because it does
>> not appear to be consistent with the definition of setCodecPreferences()
>> within the WebRTC-PC API specification. In particular, while the text may
>> be correct with respect to operation of sCP() on a send/recv or recv-only
>> m-line, for a send-only m-line it seems odd to insist that sCP() will only
>> affect receive preferences, not send preferences.
>>
>> Currently within the W3C WEBRTC WG, several issues have been opened
>> relating to the behavior of setCodecPreferences():
>>
>>    -
>>
>>    w3c/webrtc-pc#2936 <https://github.com/w3c/webrtc-pc/issues/2936>
>>    -
>>
>>    w3c/webrtc-pc#2933 <https://github.com/w3c/webrtc-pc/issues/2933>
>>    -
>>
>>    w3c/webrtc-pc#2935 <https://github.com/w3c/webrtc-pc/pull/2935>
>>    -
>>
>>    w3c/webrtc-pc/#2888 <https://github.com/w3c/webrtc-pc/issues/2888>
>>
>>