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

Philipp Hancke <philipp.hancke@googlemail.com> Sat, 02 March 2024 16:30 UTC

Return-Path: <philipp.hancke@googlemail.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 82A4AC14F691 for <rtcweb@ietfa.amsl.com>; Sat, 2 Mar 2024 08:30:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.105 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_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=googlemail.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 QB_U4VnpWJN1 for <rtcweb@ietfa.amsl.com>; Sat, 2 Mar 2024 08:30:48 -0800 (PST)
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) (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 57594C14F60E for <rtcweb@ietf.org>; Sat, 2 Mar 2024 08:30:48 -0800 (PST)
Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-512b3b04995so2484678e87.3 for <rtcweb@ietf.org>; Sat, 02 Mar 2024 08:30:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20230601; t=1709397046; x=1710001846; 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=q0xLaTqLhONHopbYs+sOVsfLPO3aGUy9jqvXsVO4IKk=; b=e1WhQovroM530pM/MWZ7GcOza9b4FEQNg4ChtX8jVo2VLPF+6bDJafVBbnDc8hHP8W KRBjJxdxs+0yD6Rx6v93P8L91yEH2wCtQsYaD+pzIK2efjm+zdSVB5fSXcgl3VLIUiMg KUtyclBbdj+e1tJK3rR6ABQxUt4zAliu1PTKtwKfdgbQUbW+r8vrRrLqX5pAF4SQMp0f W/vQykTN/8Zx9s7GqulSdG+Kb9M+6PNB5wsig2epzuztU1HMa//aq6Vk7vpW7jZsYLDe Vr9MesByIPG/CAAduXLHizZg6KJOB1OcYY567fCQMqjJdeMdLeTZisXitnJYNs1RhLbj DjuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709397046; x=1710001846; 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=q0xLaTqLhONHopbYs+sOVsfLPO3aGUy9jqvXsVO4IKk=; b=V+vmP1bCTbhMxPqY1hai5SIlZhjtt8f7AEWtOf208vdk8PgpLSUyBpZCRa+WrrfXVg 2rLaDbR79tP1RxNLPdEM2Ot6ggZwB5HKYTQFOzKLDJM3/RXDCYnWjWdflkFF5CdYoiZ7 1cPNS9BwT51sPZ8KobpnNSd6aCvvwFG0WV/Lk867py40poPf6jvnEwHp8IGlOAt+FPmM i3fsUko96r7UBTY/Y0xQnpyYLi/X1QcEdLvEyRG2hOQMr6gZVlDvwl8MQYEbe8F87C9D YsKwl1NFhU12LqIxzyzEXhzgErBUwiTup79GXJUeqsgP/FbJ5HgBtQSFDe+o3zxBPs4b Es9A==
X-Forwarded-Encrypted: i=1; AJvYcCUENEHcf/xdareck4g0DDF8/bu6iwdra1wKTtS7lSz2l7W87bKg+XbJLaPqIwOFB2W4/pzLbziJbFwCnNemp8M=
X-Gm-Message-State: AOJu0YzecIvxOfCNWitnzEfwJ7+MRpV/qEzs3SFwd75VuJSvz5u30VS8 xGo0k8ZnNgkJ72rxxt1VRlfj+KldyBwcURoXtXBntAsGRPgvN0g46gmFy2e1wpJX1S/gFPuFS+R zxIJ+kTh9OQk6uU2imgmkPM5Qflg=
X-Google-Smtp-Source: AGHT+IHc8nmoqOnt2z5znFz4Ej5syQgSRJvZcDrEhm6Wb0G6jVKNdq9EWKMDGg0Vb7o+a4z4AF6vedPGm1LGdiMKn9A=
X-Received: by 2002:a05:6512:3ba8:b0:512:ed2a:7938 with SMTP id g40-20020a0565123ba800b00512ed2a7938mr3926117lfv.14.1709397045898; Sat, 02 Mar 2024 08:30:45 -0800 (PST)
MIME-Version: 1.0
References: <CAOW+2dud=K0TuQ5s-MKgmnuvxR-DebFFhquigUbsiKQB3RjdNw@mail.gmail.com> <CAOqqYVGhwsxxj1AnUU+Qk5A9DcqnaGCc5YGo9ntd-CvrY0v6Nw@mail.gmail.com> <CAOW+2duhtXRx6_kDgS6CvwnwgwGK8JH+QkODNEpa1=0r=TQDeA@mail.gmail.com>
In-Reply-To: <CAOW+2duhtXRx6_kDgS6CvwnwgwGK8JH+QkODNEpa1=0r=TQDeA@mail.gmail.com>
From: Philipp Hancke <philipp.hancke@googlemail.com>
Date: Sat, 02 Mar 2024 17:30:33 +0100
Message-ID: <CADxkKi+F-Zu6HQFTtAxUE_UsSiVpV5J_zpNYxK1b44Qg_5i0HA@mail.gmail.com>
To: Bernard Aboba <bernard.aboba@gmail.com>
Cc: Harald Alvestrand <hta@google.com>, RTCWeb IETF <rtcweb@ietf.org>, Henrik Boström <hbos@google.com>, Christer Holmberg <christer.holmberg@ericsson.com>
Content-Type: multipart/alternative; boundary="000000000000b371e80612b003ff"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/-nRHwfXQxVUUCl1GFma8icjLCMY>
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:30:52 -0000

I believe there are two reasons the current text says "not directly":
1/ the answerer will attempt to match the senders order of media formats:
"Otherwise, the media formats on the "m=" line MUST be generated in the
same order as those offered in the current remote description," (section
5.3.1, assuming sCP it not used at the receiver).
2/ the initial answerer may generate a subsequent offer which leads us to
"the media formats on the "m=" line MUST be generated in the same order as
in the most recent answer" (section 5.2.2; note: the most recent answer is
the current local description)

The order or choice of codecs in (1) does not seem to matter until the
initial answerer changes the direction and creates a subsequent offer the
order of media formats on the formerly sendonly m-line would matter.

Am Sa., 2. März 2024 um 17:14 Uhr schrieb Bernard Aboba <
bernard.aboba@gmail.com>:

> 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>
>>>
>>>