Re: [AVTCORE] John Scudder's No Objection on draft-ietf-avtcore-rtp-evc-06: (with COMMENT)

John Scudder <jgs@juniper.net> Wed, 13 December 2023 17:52 UTC

Return-Path: <jgs@juniper.net>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DD6BCC14F602; Wed, 13 Dec 2023 09:52:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.805
X-Spam-Level:
X-Spam-Status: No, score=-2.805 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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=juniper.net header.b="sHnqLquO"; dkim=pass (1024-bit key) header.d=juniper.net header.b="hvwLnBux"
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 DvbOHzRQZ2ZT; Wed, 13 Dec 2023 09:52:47 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B770C14F5FD; Wed, 13 Dec 2023 09:52:47 -0800 (PST)
Received: from pps.filterd (m0108159.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 3BDD1Ea7030311; Wed, 13 Dec 2023 09:52:45 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h= from:to:cc:subject:date:message-id:references:in-reply-to :content-type:mime-version; s=PPS1017; bh=I6NEqTMIqChaKBpS+KnGvu GL8eCMXj7Ebq3D4QXmIZ8=; b=sHnqLquOFbvwXz6Ucf/UmujySh6Lrv1Y1yMwos q62u0ndePtaJ/ZcWrbD85XIroEDvo7N9v8ofvce79FJ7Acb0MzKrJMAo1a2UoJkO lOMKgVKToqydZx5n+EnPLyRCI8RDKYKGh9Rp7hG7UxjZ+OP3CU6szjTR7qQhAuJe fI61d4KOGnJu9ptDhgzAKTChND6yt28doAd9QDLr+peoc6rGimNbhJR1nYHrMOp5 rdXcmMIemBzNfvE8aC1LkBXvljdalhc5j2DOxQBseKJ0yZuUsfy5K1Et2T0qIv5r 26D88KGHZu90B6qcX5Vv/etLcAO6IbIX7DBQSpd7HGlC9v8Q==
Received: from co1pr02cu002.outbound.protection.outlook.com (mail-westus2azlp17010002.outbound.protection.outlook.com [40.93.10.2]) by mx0a-00273201.pphosted.com (PPS) with ESMTPS id 3uy26xhudn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Dec 2023 09:52:45 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aWF2HVYU1viskv5K3JsFaWgfmvz1TWaoHDAlYZZ2Ci2IsYmCkkteKJHRaFuOlYMVVuG4P2JybAFKl1gWVDp/6PnDIUIeB8jCA9CqM7nsBcgpSDYBoT7YicINzl5oFkwWqM/4MLA5ljO1NwnD7jr0UjHwTNk8ZwdatorQGEvcgEFnvYcfP3LfUrov0mf1gPVoOo5UKI4w56ZpQcu4a0ecuxEaBpRJ7Ihmgu9ThXzQgYZtFv5877cQHSWT+W8yhhddDHxOlOtuwvITJR9Zm8Fdx88kNNHM0yoxkiewkb8jRvTCNbz2re4AjaDfUUR/c45I0jpUOFv1MvhbXYWyvd02GA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=I6NEqTMIqChaKBpS+KnGvuGL8eCMXj7Ebq3D4QXmIZ8=; b=J2X+Vl53yeqv7ptx6blG48HcfDAmQRnuIeEXHM8vHLdWOwidVu1bGxIKSnkvw6p0hSWqTMLG/Z1qIH7owFgJA2MxqbbXE220lmkxLDEXJKB6NqsqNtEBntag8Mt6Gv+pvbwA7vL2VHN6JbAE7Aia7fM/SH2cqqoIKUiz5MBW0d8bWcI0rCYO64FYLLpd/vNZnrI7LyNNy+mawdAE2yubKj4yc45eJjMCOv050sp9JCjn0xKFCJeXD/FRMXcU2GHMqXahfsHIMs6WbFfidAxeCUDcU10qPeB35662w4zc7SAa2ngmEQU6J9jcEL87iepQcD2uYc7e1/iQDlkjfaKAsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I6NEqTMIqChaKBpS+KnGvuGL8eCMXj7Ebq3D4QXmIZ8=; b=hvwLnBuxokF5ML35rXD0dBmF/c0tJed6KQVqGu7WOdfgC/0WrgQTSdQMM+y6thFD67VX5MncegRaQOcMGclWhjiY5XlcYVgl5FqmJ8eMjJIzrjcOER1E3F3yjE6R9elSsEGC74BtsQ1dyhwJAwOAyIvdY9C9H3EUUBTUcpYZUh8=
Received: from BN8PR05MB6098.namprd05.prod.outlook.com (2603:10b6:408:45::29) by SA1PR05MB8738.namprd05.prod.outlook.com (2603:10b6:806:1c9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec 2023 17:52:42 +0000
Received: from BN8PR05MB6098.namprd05.prod.outlook.com ([fe80::8e9f:49b5:af39:b95d]) by BN8PR05MB6098.namprd05.prod.outlook.com ([fe80::8e9f:49b5:af39:b95d%7]) with mapi id 15.20.7091.022; Wed, 13 Dec 2023 17:52:42 +0000
From: John Scudder <jgs@juniper.net>
To: Stephan Wenger <stewe@stewe.org>
CC: The IESG <iesg@ietf.org>, "draft-ietf-avtcore-rtp-evc@ietf.org" <draft-ietf-avtcore-rtp-evc@ietf.org>, "avtcore-chairs@ietf.org" <avtcore-chairs@ietf.org>, "avt@ietf.org" <avt@ietf.org>, "bernard.aboba@gmail.com" <bernard.aboba@gmail.com>
Thread-Topic: John Scudder's No Objection on draft-ietf-avtcore-rtp-evc-06: (with COMMENT)
Thread-Index: AQHaLcB/C4z5Qo5dW0icy+p2+cdxkLCndF+AgAAKdYA=
Date: Wed, 13 Dec 2023 17:52:41 +0000
Message-ID: <627FCDC4-1650-4B15-9885-64CE8AF2EAAA@juniper.net>
References: <170247075996.35227.14350240644730583614@ietfa.amsl.com> <PH0PR17MB49088E41E59F40DE4D1F4FE4AE8DA@PH0PR17MB4908.namprd17.prod.outlook.com>
In-Reply-To: <PH0PR17MB49088E41E59F40DE4D1F4FE4AE8DA@PH0PR17MB4908.namprd17.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3696.120.41.1.4)
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BN8PR05MB6098:EE_|SA1PR05MB8738:EE_
x-ms-office365-filtering-correlation-id: 2d65cda1-b8b6-4aeb-ca54-08dbfc044dec
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: zsJFMui1nwNI5YfEz23uwLANKdk+kv9M5hrgkXp9mCtqIfDGjl2yYEccniNdIICNtiKDq8j05QERC9V2WkHtykapCFFUC/rR1xrNLoSMf7pOs0g5LSpVxLzlZmEFtZnyAG8Ng3Lc0RFgRojjQAltqt7xYHagNgKaQZzdzmpFAS433KV/fuWvfs5Rk1GU1rS+VwjpougVJzorH4exdacdBhZpFFa0HcElq+YcoA7GUe1Pp7R6h2DSX6kEXBodZyHU5LIQPtjODSMtGCQTfO5HewsfRfkhqcXnsFjFt7OmsIlGqSHadqn1idyOSL3MS8Sk6r4FE7dWyIaYzdF3uprBq0oGPv8ZPYLz0VL+I75AMBBlcF95qeJNTLbupv1VHWMxnCNIvH6sB4C8VZ0glZf0J9TNfLz7qMgRdvKlkcebI/XJvwzN4ooOHsHmWJmP5bAaJAOMfulGk5LLVUBb1dTiTkfZpXvyMHhqePVTgza9xfULf+jti+vpaqenNGh86tqJ19TK9BTre5jUaFc1TCe1+QdK5O6qIo8XP+NTavCqxuF/TUB2qhaGr+2PnjL0K+Sh/4eCrla6kIpjXw+s/2wROvTUWoH9eooaodcgGKwCOxv2LgfNnaBSYcXA15fCAHXBZooNVx7WIxI6BzHU+hZ9Rd7MByN9gr03WxEOYvHycw1xt2MWnCXn4X3T32UEn6t+zc8MZe/X2o6CmHcasxgoYg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN8PR05MB6098.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(366004)(396003)(376002)(39860400002)(346002)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(38070700009)(66899024)(91956017)(76116006)(66946007)(54906003)(66446008)(64756008)(6916009)(66476007)(66556008)(36756003)(33656002)(86362001)(122000001)(38100700002)(4326008)(26005)(83380400001)(6512007)(2616005)(53546011)(6506007)(6486002)(2906002)(316002)(478600001)(71200400001)(5660300002)(8936002)(8676002)(41300700001)(45980500001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: +j5IVF9zExMXuDoXa679DorXsyZjTDAg+QwQ6qrH5BPILkojk9IVuZrE8k7LMFknLYMW8ZVs5eZn5ijBn0dDp6QCGzUhRQJepGrqezYiujhI/wLZllNJ2/Ue+tTj2o1Z9znqyHaCvLwHrC64f+uxcKlvq76dAbCdS+hG8alh5kzrcJeH++tmdN8t+ugKSPZbibyca+zGvl+BA9Yt6VvgUq1OT3vmZy9lvp9WRTmlnRsLPkAOSC4RrKF2sA6+Nh79CntbkBxgD6ZpEZkeLNcZxTQ83cS+GeUPM3RLbXk+CBH/Fp7WLYQdTcCAgbwbmqQE1N/GDaifpLczo+ytweV2UOu+m4W2JpiImOolHTOFcK9ltTfOIv0lKMNmrFg2rwFQN2b8xDrrQXzTIxEOchpvFYazOxEgyCDyEcznwBgQZcJZaXMB5OTBnVfaggp4/oZ1hPmIXsn741zzl+/RcCXhnGbHZ1jxFs17pUOTbjXM1vlpipwmSGNdD4hheKJl+m/GSuGwVo3Nl9x7rZBqlXpc0C6XvkD9c5DJCUw2pGAe8F+LUflWll1hWxBMyzFHnSKWAdCSKzWH8L54MbXUOQt9rhbEuOBIT+GdRwG5RFsbykb/AiDWkiu3HTpaoYmpSFJavtfNNybA5vv0CbhINckHlWxVhjrb78xyT5JySw14us5Cn+043v2XhC0ewS43sv4lzykauhwndf4toj8W9Xv10tyoiExaFMiwLbYq1asIXVACRIJ/GtwDACIAkArzm4nsufLo5KVsvgQcKPzzpzPtLy24m+MKtZGEtJD6gPV6E6MMmM9u+YS4+7qnagtA18ZEEOtbI8JU/2lxJzGfC7io++BUz+2wvHe3vgv8R8P2y3GUXfzozQ4yQ6AlIKiqPuxHVZ0zCF6h3SprHxPIhzvCdHX9mxNfYERqHET4OtVwIcTgzdlBu2epTwD+HV8Flb+16B7wKsNyKrWSqe3/VvJI97gHyqS6oafUv0uaeyCG9cZeVDok3gFC4x3II3EVloQBq98ARpdXtWJvYSwzcbGnGEPYODXNpz7azQS3iAyJY712k6S2j/hzfD0QTrCCZGibWSqFMXadmf+EELW7qvKub0TWS3rvclBLByhdSu6IhP7SKEP7jVechlrFVVr9syMTzgmNNHzRb0B1Elp4kTohMXWkyJ1Gr8RI8DjRdEkmeYeEsCmukhonR7A7pwjJBBKs5/0x59/HVTmICLbo2DdVo4ySh5n7QCdccB5lhnZnGg5+ki6bighVsv0MH4j5x3oq4gYrFaO/6mCherRUabezV/XPlulMHr650BDdtmEVJW5nybD+60o348UlUQS5S2xIzu3umHNCo6arFZ3BQjczXjwvC7HUblz6c7oByj8vV/bLRWDQKgg4F4B+HuBVMcXIN7OlWhumg6vCd3rm1OquAXYtwcArydaRkV4VZhVdO5HEJhEuWh4nO+gYw+EKdEKTTg4p4hktKRyHfIzYoxJBXdYcZTxpIBHdv3JIRzJOHSzFsu3zVz18egjiaa5lgABSBzbT3NVMXYrRQUDVEjdcC+NQiVAZeAoVaK+rEtue9WnTqKbf1Lt5ZQd0h1ShupMB
Content-Type: multipart/alternative; boundary="_000_627FCDC416504B15988564CE8AF2EAAAjunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN8PR05MB6098.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d65cda1-b8b6-4aeb-ca54-08dbfc044dec
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 17:52:42.0147 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 6+ITEZs03R//fGraFAPt1hoP4sbpljrtHxDDGg+mYWM1YXoVoZAyJj5dpg6nmBJn
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR05MB8738
X-Proofpoint-ORIG-GUID: QrbP95-nPj5SE9zjnEDiUBqmuwzqlbhu
X-Proofpoint-GUID: QrbP95-nPj5SE9zjnEDiUBqmuwzqlbhu
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 adultscore=0 mlxscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 phishscore=0 impostorscore=0 bulkscore=0 clxscore=1011 priorityscore=1501 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000 definitions=main-2312130128
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/NUGqro5JPaY2zOE1DKMiSCjN-b8>
Subject: Re: [AVTCORE] John Scudder's No Objection on draft-ietf-avtcore-rtp-evc-06: (with COMMENT)
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Dec 2023 17:52:51 -0000

Hi Stephan,

Thanks for your detailed reply. Two followups below. I have edited out the rest for brevity, anything I have not commented on, is agreed.

On Dec 13, 2023, at 12:15 PM, Stephan Wenger <stewe@stewe.org<mailto:stewe@stewe.org>> wrote:



Hi John,

Excellent review.  Thanks.  Please see my responses inline.  I apologize for the wordcount, but I think that such a thoughtful review requires quite a bit of context and explanation.

Would you please sign off on the resolution of the MUST RFC 2119 codeword in section 6?  While you have not raised it to DISCUSS level, I have mentally done so for myself :-)


Done.


Thanks,
Stephan

From: John Scudder via Datatracker <noreply@ietf.org<mailto:noreply@ietf.org>>
Date: Wednesday, December 13, 2023 at 04:32
To: The IESG <iesg@ietf.org<mailto:iesg@ietf.org>>
Cc: draft-ietf-avtcore-rtp-evc@ietf.org<mailto:draft-ietf-avtcore-rtp-evc@ietf.org> <draft-ietf-avtcore-rtp-evc@ietf.org<mailto:draft-ietf-avtcore-rtp-evc@ietf.org>>, avtcore-chairs@ietf.org<mailto:avtcore-chairs@ietf.org> <avtcore-chairs@ietf.org<mailto:avtcore-chairs@ietf.org>>, avt@ietf.org<mailto:avt@ietf.org> <avt@ietf.org<mailto:avt@ietf.org>>, bernard.aboba@gmail.com<mailto:bernard.aboba@gmail.com> <bernard.aboba@gmail.com<mailto:bernard.aboba@gmail.com>>, bernard.aboba@gmail.com<mailto:bernard.aboba@gmail.com> <bernard.aboba@gmail.com<mailto:bernard.aboba@gmail.com>>
Subject: John Scudder's No Objection on draft-ietf-avtcore-rtp-evc-06: (with COMMENT)
[…]

## COMMENTs

### Section 1.1.4, Type field description appears to be wrong

As best I can tell from my skim of [EVC], the type field, although six bits,
can only represent values from 0 to 62, not the more obvious 0 to 63, and uses
an oddball encoding, viz

   NalUnitType = nal_unit_type_plus1 − 1

[…]
Thanks for this!  We will investigate further and if there were a bug, we will correct it.  That will require some thinking.  If there were indeed a bug, the same bug is likely present in a number of RFCs specifying payload formats of the H.26x series, so this is a comparatively big deal for us!
As you were curious for the reasoning of the numbering range: the syntax element nal_unit_type_plus1 (lower case, with underscores) represents bits on the wire, and has a value range of 1..63.  The value 0 is reserved to prevent start code emulation.  Historically (pre 2003), video codec bitstreams used 15 or 23 or more consecutive zero bits followed by a 1 bit to indicate the start of a coded picture.  In H.264 (ca. 2003), the startcode was placed to the start of each NAL unit.  The NAL unit header is one of the few syntax elements that are outside of the start code emulation prevention mechanism of section 7.4.2.1., for reasons I could explain, but that would take a lot of letters.  We had to make sure that in the 16 bit NAL unit header there are at least one nonzero bit, and that was solved by disallowing 0 for nal_unit_type_plus1.  Once that value is parsed, the logic of the standard is such that the value of nal_unit_type_plus1 minus 1 is assigned to a variable NalUnitType (identified by capitalization and no underscores), and only that variable is used throughout the rest of the EVC spec.  The value rage of that variable is 0..62 inclusive.

Thanks for the detailed explanation! I rely on you to make any changes you deem necessary, but the essence of what I identified as a possible problem is that the draft as it stands says "This field specifies the NAL unit type”, but as you explain above, the nal_unit_type_plus1 bits on the wire are different from the NalUnitType, and therefore also different from the “NAL unit type”; the mapping from “this field” to “the NAL unit type” is not the identity function as the text implies. Probably the fix is something like,

OLD:
      nal_unit_type_plus1.  This field specifies the NAL unit type as in
      Table 4 of [EVC].  If the value of this field is less than and
      equal to 23, the NAL unit is a VCL NAL unit.  Otherwise, the NAL
      unit is a non-VCL NAL unit.  For a reference of all currently
      defined NAL unit types and their semantics, please refer to
      Section 7.4.2.2 in [EVC].

NEW:
      nal_unit_type_plus1.  This field allows the NAL Unit Type to be
      computed. The NAL Unit Type is equal to the value found in this
      field, minus 1, in other words,

         NalUnitType = nal_unit_type_plus1 − 1

      The NAL unit type is detailed in
      Table 4 of [EVC].  If the value of NalUnitType is less than or
      equal to 23, the NAL unit is a VCL NAL unit.  Otherwise, the NAL
      unit is a non-VCL NAL unit.  For a reference of all currently
      defined NAL unit types and their semantics, please refer to
      Section 7.4.2.2 in [EVC]. Note that nal_unit_type_plus1
      MUST NOT be zero.

Optionally, you could add something like "also note that as a consequence of this encoding, the possible values of NAL unit type are in the range of 0 to 62." But perhaps given the other verbiage, this is unnecessary.

This is just an illustrative example, I don't expect you to adopt my wording, although if you want to you're certainly welcome.

[…]
### Section 6

“All normal RTP mechanisms related to buffer management apply. In particular,
duplicated or outdated RTP packets (as indicated by the RTP sequence number and
the RTP timestamp) are removed. To determine the exact time for decoding,
factors such as a possible intentional delay to allow for proper inter-stream
synchronization, MUST be factored in.”

Normally I expect that a MUST will be more specifically prescriptive without
requiring the implementor to exercise imagination or creativity. The one here
seems to be of the form “implementations MUST do the right thing” which seems
not that helpful to the implementor. It’s not wrong as far as it goes, but the
RFC 2119 keyword seems out of place.

Another tricky one here.  Thanks for your diligence!
The language you are reciting above has been around verbatim (plus/minus capitalization of the word “MUST”; see below) since RFC 3984, ca. 2005.  In RFC 3984, the depacketization section was labelled as informative and hence sloppiness in drafting was to be expected 😊  RFC 7798 (HEVC payload, 2016) inherited the language.  The section there was normative, but “must” was not capitalized while the “convention” section 2 said that only capitalized MUSTs indicate a normative behavior.  Insofar, in RCC 7798, that lower-case “must” was to be interpreted as plain language.  I vaguely recall discussion in the working group at the time along the lines of your argument, and the outcome speaks for itself.  It was not a drafting mistake.  Fast forward to 2021 and the VVC payload, RFC 9328.  Here, we capitalized the MUST, and no comments were received from the WG or during IETF last call, nor from the IESG.  I don’t recall a conscious decision in this direction, and, after your comment, do consider it a drafting mistake.
Based on your comment, I think RFC3984 and RFC7798 were doing the right thing in not stating an in practice not actionable “MUST” requirement.  The minimum change would be to change the “MUST” to a “must”, arriving at plain language.  Would that address your comment?  If so, I will also submit an erratum against RFC 9328 requesting the same change.

That would be just fine. Thanks for the careful analysis.

Regards,

—John