Re: [AVTCORE] Éric Vyncke's Discuss on draft-ietf-avtcore-rtp-evc-06: (with DISCUSS and COMMENT)

Stephan Wenger <stewe@stewe.org> Tue, 05 December 2023 17:56 UTC

Return-Path: <stewe@stewe.org>
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 F37F0C14F747; Tue, 5 Dec 2023 09:56:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.905
X-Spam-Level:
X-Spam-Status: No, score=-1.905 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_NONE=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 (1024-bit key) header.d=steweorg.onmicrosoft.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 S9LoioJZwfr3; Tue, 5 Dec 2023 09:56:35 -0800 (PST)
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2091.outbound.protection.outlook.com [40.107.93.91]) (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 1F445C14F5F6; Tue, 5 Dec 2023 09:56:35 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cRpWf7DwEdF0fQyB7k4QtDjCTeAjohlcdURQ99PITiaiJns5odFaWGpt8MTukjzuy23UaZXvRsz8IVKHd/5UsA20u5yBpmWLFG7TQ4sU1qPaLGY9RnFxdW8DK2XK0XGseycGdJG3Urh6upStL8pCTyOm+iKkwpKIMkdPy16QJVataMqyB1H5cy5oaZSn8JYWaLfBhwF19idtDXBUKNfrck329KyCIC9xSKUMbGEVicuHG92fKpejgDOiw2fqVrZpPW66maDtWZvlPo7xudjYHb7pH2XLkkM+M7wEcSaxgQhm8oTUHfDeXVHRTTNqREfhgicEg1l2v7GWImgnYuxr2w==
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=k6Y312yL4d0/qedeaQ0scudnO8TLBwvfJ8yEfNbmuR8=; b=TYnXmUrw0Qi6J6H/yJHUkOm7xiVY8Ytf/c3qtBTBB4915i6CqDSMIAkfraBrD0DaKJvNjcCxubTN9yUAvYZCkoJjNcHOB41hC/Nq0yBfRSH19lTe8oCb2HnAhfOS4sDWRqhKVwBBuk04WeeSC+0aUS1nUBxL4hsYippxRQ29n0CxnSMZXwdWE6DalNNSJrT2mKrGJ6uiO9TRHDtqkoPR9Q5hd+qyXP0pux0b0vbkL7vp8nV/aWuawh1Ekx3oLZlS4jXwgZtow4qQMEjYTKzytWWjW/5HcG1zTVFEc36dosTuM5ktLJMTgos+ZZDLiAqDNrh5o/ld08VM597HNiVZJg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=stewe.org; dmarc=pass action=none header.from=stewe.org; dkim=pass header.d=stewe.org; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=steweorg.onmicrosoft.com; s=selector2-steweorg-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k6Y312yL4d0/qedeaQ0scudnO8TLBwvfJ8yEfNbmuR8=; b=DLhGpH6CYzvKJaFahjuwaoGeFweCE4j/fV3SvYrDXFsQcWI+kDYgXR+if5rKIkPGbaq0E1u+cZ6hooKXx6/wTbma93TIeqgZdOx/znojTQunnTeQysXUHEzkwj2cMzEq6rI86+QXYWUN6bTbUHBpz49Eq5YUc93sFk86i1+nm64=
Received: from PH0PR17MB4908.namprd17.prod.outlook.com (2603:10b6:510:d6::23) by BY5PR17MB3876.namprd17.prod.outlook.com (2603:10b6:a03:23f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.17; Tue, 5 Dec 2023 17:56:31 +0000
Received: from PH0PR17MB4908.namprd17.prod.outlook.com ([fe80::b12:ea4:48af:1a6d]) by PH0PR17MB4908.namprd17.prod.outlook.com ([fe80::b12:ea4:48af:1a6d%7]) with mapi id 15.20.7068.022; Tue, 5 Dec 2023 17:56:30 +0000
From: Stephan Wenger <stewe@stewe.org>
To: Éric Vyncke <evyncke@cisco.com>, The IESG <iesg@ietf.org>
CC: "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: Éric Vyncke's Discuss on draft-ietf-avtcore-rtp-evc-06: (with DISCUSS and COMMENT)
Thread-Index: AQHaJ4ppZiTcubWoGUi84sPam661D7Ca0K3P
Date: Tue, 05 Dec 2023 17:56:30 +0000
Message-ID: <PH0PR17MB49087613FB6998F373A60703AE85A@PH0PR17MB4908.namprd17.prod.outlook.com>
References: <170178783467.38850.8746929684280590738@ietfa.amsl.com>
In-Reply-To: <170178783467.38850.8746929684280590738@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=stewe.org;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PH0PR17MB4908:EE_|BY5PR17MB3876:EE_
x-ms-office365-filtering-correlation-id: ad9e912e-dee6-4d24-8215-08dbf5bb82f0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: /mEXhhNu2Jr9ymyxRRsqYtJ89UF8NxAFs8F8LZxNZ+HSFRON27SQm547DVhklX8ZBepRZhLqJ+zEhFDrJycehlF7SstO+ILv+cG9QfYAUVgINRsocn77ApjAIFDQXSboQzCjhdaeWhUG0SkZfjt1LtlIagGSvnrFMVhB+dQwpQXQVZ244fi5vwxsA/FlZpJgU/927OKmg50dGRwvWp7uSn4M1sZIE9qykS8/vUYYh1uzkNtH3BxfTu14lEcRbF4HK7oj42TgztweeWuSjxK0HwN5LfDbBnHKd5DGvMMk8pizXkfxcznFrrfmAXnTcrPDpD6uM8Xj5VvD/AKhvGsCqBzdqQ8Ws8Otf92XcLPl7Wq7e45ZJvBG6EMIxSOeZPUCQzNTtYJF/ioSDaQ/2EzogPRCy4OvumSw8rLeDuO+dni8e5kc2d+k3kpR8IrYU0GFFDbhGeHfhEj5xbDY7ZN9QOF3R6rJ+4CsI66YdN4kWkFWoqfIrYYKoM/KjYmN124IfdblYQFQFVs6z4So/t5xpFkIXZ/F8uE596NySgPGNjlUmCaezEKE9VOBn5EOtG1M7Fudy2J7v7GQ2UZah4LEY2SM50jwHxSADBmzeHYuA8c=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR17MB4908.namprd17.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(366004)(346002)(396003)(376002)(39830400003)(230922051799003)(64100799003)(186009)(451199024)(1800799012)(122000001)(5660300002)(30864003)(38100700002)(2906002)(166002)(38070700009)(33656002)(224303003)(41300700001)(86362001)(966005)(66574015)(478600001)(4326008)(8936002)(9326002)(55016003)(9686003)(26005)(110136005)(66946007)(66556008)(83380400001)(64756008)(316002)(66476007)(54906003)(7696005)(76116006)(66446008)(71200400001)(6506007)(52536014)(53546011); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: F1/U3qM/omu32Nn/U8xevwaYKcsKn2bwRqOSrf3DWYU3H6aekM57ulqBBgyOHMoOl+sLhhd7KyjXSFda/3DemMyUtvIOialrjnaKWRveOJFx5lfEViqzkHVCLe94OZhSkdf3f04TwuMccUwAeOcSsAgDAtGr3uG7TIf+lgRD0bt+lbtx/3rI9TtTj1i3X9jL5uZxSkKX0pBXtKY9D32H76rmyYkKfkEZ4Bh2RX1XCXNyx3hFkFyWY4jcGgaB9QQTxPbyPFtKxlv0p2Br4SZtMVtfTt6WfE0BVImvIFwUAie3YHaIDUXFatO7se16gSBfMpdTlQCcrEXUAiKgm8gKioiMXyYGF2ss023tGgLWVNpxQ992uQqUPpjt4pE2p5Htazfy1c8y+gpW32huDHDji88+/2o2zY6WsNtl3ErZ/NRzwEw0/Q+DBId6YNcbWFhR9k2z4C8ygg//dUftY9BpxsLmPCGEUnMXDa2MZ811bHJ/R47gZuuMuvPvhUDTUX97ASRXHUiOCx+rm5j4QbgksLHfzkLHytx/FdF5Y+TUj25LZ50NDf97vU+Idq0no6+Zs2TMXnsZbIPLXB4iGoLAUq867TosKQT5pjEtb+cM0kNKhFwr//L/zDi10oPM9KErkUZ/yQeuIjL8Sh5D4URaQEbgGU4xco7kCyqrvYEAvGEXnxWm5kQEaj+F2BDWk8H4regalUqDEGbUM39DYQgftKpl0ItlkbJv2WvwW8Tc4khoBwWEV4N+Ypq/yfdoWSJfFeJJ9SuxHfTkIa7dHZCoYt676siTnzPMkgEij/4kWd8kAi4t+fUXVwe3QOLg1GuLWqSMes37zXvOc4GAe6AllPJ7aTv4y/1mnpkn1XaiMmc3C9uHRNAIdTrhpaGGFwLpxMCvFYIshAewALQpsdqmlTMPy3fVkdqyzF8quiQuZ8uGXoF4FvSFmLJmnxZ6+O0oclcmVClznz6JYWnqYeJOG4BSP/PVsbyOzmkIioZoWNXlGaEZaDb9TsvkbMOwd90Q5ctF3PH5qFZxr3ns/D5kTGhPP2u6NTZeQ7R7IfeSy4qX9TQs08zLSxZjMiY3UaLmcHxgsdp2EYnEdL++bmOrSRZ3gC6mhfzhztW1Iasf2bT96a0spHswCa8VCfSYKrO6R8cQIY6tEuUqdHkMNehBKcUuVtngxOlDqJrO0cZhT9H5eIkBNe0nrkqd+CpPMAqV1+JtU0s8zynNOzCy4IeGlbmUqNKsQNBIvBI/I9JVHm30fv5TvO76Ccv2C3dtXyGJzMocWpmuh+qgnis8PTw6wwhp3qWiYCcnqirno7R7uYYQmbwfw8Fl3VpF/M9UpiRoZ+wOTRJhdL4+TLziM61uRcW9j1WqS7P7LgCRnlUtzpgOzmCaWP9zu9JMKLRbk41Wmf5p67LzAAKK/Z3mtak90iKqaSohZmAn4rNESn2E+jtj782AvXxCjMvOqIzoSaADAow4yxhlup3wXNjBGg6sIPaDmHCI3KoGEoMTDAOUkzuh5PoZ/a6/btBmhUxTZdyhEUnYa+dih51TbqWuCkUjLZ/5yRSMMcY87JpIJ/VZDk9c6Bx6MlEicMtUYT9rAd3K
Content-Type: multipart/alternative; boundary="_000_PH0PR17MB49087613FB6998F373A60703AE85APH0PR17MB4908namp_"
MIME-Version: 1.0
X-OriginatorOrg: stewe.org
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH0PR17MB4908.namprd17.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ad9e912e-dee6-4d24-8215-08dbf5bb82f0
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2023 17:56:30.7418 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 865fc51c-5fae-4322-98ef-0121a85df0b6
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5JnwYnc/KyqoDdzKZHr7Vp9c3jaDrblR5q5KtQXixMiD/JgaYwMMkV3ox0zpcDsx
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR17MB3876
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/9sGbENwaOOAF29YwYLMdPkjqEiU>
Subject: Re: [AVTCORE] Éric Vyncke's Discuss on draft-ietf-avtcore-rtp-evc-06: (with DISCUSS and 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: Tue, 05 Dec 2023 17:56:38 -0000

Hi Éric,
Thanks for this comprehensive review.  Please see inline in blue.
S.


From: Éric Vyncke via Datatracker <noreply@ietf.org>
Date: Tuesday, December 5, 2023 at 06:50
To: The IESG <iesg@ietf.org>
Cc: 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>, bernard.aboba@gmail.com <bernard.aboba@gmail.com>
Subject: Éric Vyncke's Discuss on draft-ietf-avtcore-rtp-evc-06: (with DISCUSS and COMMENT)
Éric Vyncke has entered the following ballot position for
draft-ietf-avtcore-rtp-evc-06: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/
for more information about how to handle DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-avtcore-rtp-evc/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------


# Éric Vyncke, INT AD, comments for draft-ietf-avtcore-rtp-evc-06

Thank you for the work put into this document. The document is well structured
and for many sections easy and clear (noting that I have only skimmed the
hard-core codec parts).

I find it strange to have a normative reference behind a paywall, but I
appreciate the shepherd's note about its availability to reviewers, big thanks
to Stephan

Please find below some blocking DISCUSS points (easy to address), some
non-blocking COMMENT points (but replies would be appreciated even if only for
my own education), and one nit.

Special thanks to Bernard Adoba for the shepherd's detailed write-up including
the WG consensus, detailed IPR, and a very concise justification of the
intended status.

I hope that this review helps to improve the document,

Regards,

-éric

# DISCUSS (blocking)

Do not worry :-)

As noted in https://www.ietf.org/blog/handling-iesg-ballot-positions/, a
DISCUSS ballot is a request to have a discussion on the following topics:

## Section 4.3.1

What is the expected decoder behaviour when DONL is present while it should not?

What is meant by `conditional`? Does it mean 'optional' ?
This language was inherited from RFC 7798 and the DONL concept and interleaving in general is known since RFC3984.  I have yet to hear about implementer confusion regarding the above points.
DONL is “conditionally” present according to the value of sprop-max-don-diff; see the paragraph just below figure 3.  I think that “conditional” describes its presence very well.
As for what happens if a sender puts the two bytes of DONL on the wire even if, during signaling, it announced it wouldn’t do so: the receiver has to act on what it knows.  It was advised, through sprop-max-don-diff equal to 0 (or sprop-max-don-diff not present in the SDP, in which case it is inferred to be zero) that there is no DONL on the wire.  Therefore it interprets the two bytes following the payload header as the first two bytes of the video codec syntax.  As those two bytes are unlikely to follow the EVC syntax, the EVC decoder will do whatever it is designed to do when receiving a non-compliant bitstream.
I do not believe this situation warrants a text change.


## Section 4.3.2

Should this be a "MUST" in `he value of Reserve and E Must be equal to 0` ?
Thanks for this catch.  Yes, “MUST”. Will fix.


What is the expected decoder behaviour when `APs MUST NOT be nested; ` is
violated ?
Ah!  Recursive nesting, again.  I recall discussion about recursive nesting in the runup to at least RFC 3984 and RFC 7798, and there may have been other instances.
Aggregation units are widely implemented in H.264 and H.265-based systems and I have not heard that this area is a sore spot in the real world.  I have also not seen anyone sending recursively nested APs.
Recursive nesting is prohibited to a) discourage sender implementers from wasting bits for unnecessary control information, and b) minimize the burden of receiver implementers.  Recursive nesting can trivially be detected;  you cannot have a NAL unit with type 56 in an aggregation unit.  If you find one, then it’s an error condition and the reaction is left to the implementation and intentionally left unspecified, on the principle that error resilience and error tolerance are product differentiators.  A practical system has many options, some listed here in order of ease of implementation: 1) ignore the nested AP; 2) ignore the nested AP and report a “packet loss” to the decoder if there were such a thing in the API, 3) implement nested APs and extract the NAL units from the nested APs.
I prefer not to change the text in this context.



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------


# COMMENTS (non-blocking)

## Section 1

Please expand HEVC and AVC before first use.
Wilco.

## Section 1.1

Is `walled-garden implementations` well-known ? To be honest, this is the first
time I see "walled-garden" applied to "implementations".
It's intuitive for us.  “Closed platform implementations” sounds soooo yesterday.  Anyone else has an opinion?


## Section 1.1.4

Figure 1, any reason why the bit numbers are in a box ? Usually (see figure 2),
the bit numbers are 'naked', i.e., without a frame. Same comment for figure 10
later in the text.

That’s a carry-over from really old work, RFC3984 specifically.  Will fix by making them “naked”.

Should this I-D also specifies "nuh_reserved_zero_5bits MUST be set to 0" ?
No.  In the RTP payload NAL unit types, these bits were intentionally left undefined.  If MPEG were ever adding scalable profiles to EVC, these bits would be the layer-id.  I at least have the hope that existing payload implementations would work with layered bitstreams, although absent signaling, things like SFUs would likely be hard to implement.  More broadly, the design philosophy behind this payload format (and others where I was involved in) is to specify only what needs specifying, and leave the rest open.


## Section 4.1

As I am not familiar with the RTP packet structure, is it obvious for the
implementers how the values of P, X, CC, and CSRC are selected ?

The short answer to that question is “yes”, and the RTP spec is a normative reference, hence we ought to be safe.  No change to the text required.
The long answer: RTP has certain mechanisms related to its general operation and independent from the RTP payload specification in use.  All the field you mention belong to this category.  In short:

  *   P indicates the presence of “padding” octets at the end of the packet (after the payload).
  *   X indicates the presence of an RTP packet header extension that sits between the RTP header and the payload.
  *   CSRC or contributing source denote the SSRC of an RTP stream that was input to an RTP mixer when this RTP packet stream was created by the mixer.
  *   CC or contributing source count is a four bit integer indicating the presence of up to 15 such CSRC identifiers of 4 octets length in the RTP header.

## Section 4.3.1

Please expand/explain `DONL`.

I had no time to request the EVC document to check whether PayloadHdr in EVC
cannot be 56/57... I am therefore trusting the authors, WG, and responsible AD
on the absence of collision. It may be worth to add a sentence (perhaps in
section 4.3) stating that PayloadHdr for NUL will never be equal to 56 or 57.

Thank you for your diligence.  NAL unit types 56..62 are left unspecified in the EVC spec.  The word “unspecified”, in ISO/MPEG lingo, means that they are reserved not for future use of ISO but for use by other SDOs.

## Section 4.3.3

The use of DONL is really unclear to me (see above), so how can the presence of
DONL be detected in `The DONL field, when present,` ?

See above, though signaling of sprop-max-don-diff not equal to 0.

As the I-D forbids "atomic" fragment, suggest to use a normative "MUST NOT" in
`the Start bit and End bit must not both be set to 1 in the same FU header`.

Will add.

When can a receiver detect that there is a missing fragment ? If this is on a
time-out, then should there be some RECOMMENDED value ?
Each fragment is carried in exactly one RTP packet.  Detecting missing RTP packets is a function of the RTP main spec and operates through sequence numbering, in some cases in combination to timeouts.  The RTP spec contains some limited guidance on what timeout values make sense.
Should an RTP payload format give further advice to the implementer on sensible timeouts for the RTP main spec implementation?  We in AVT* have never (that I recall) done so.  If we do, we will have to think hard about what would be sensible.  Using EVC as an example, it can be run with widely varying frame rates—which can be dynamic throughout the RTP session—and with widely varying Group of Picture sizes (presence of resynchronization points where a decoder can recover).  Temporal scalability also comes to play here.  In terms of time, I can imagine EVC scenarios where a multi-second timeout may make sense, and others where the timeout would need to be in the lower tens of millisecond range.  It’s an implementation scenario dependent value.  Also, latency is a key product differentiator in video conferencing, the main application for RTP.  People who use RTP generally know what they are doing and guard their knowledge.  I’m not sure a standards body has a mission to take away such a product differentiator.


While I like the idea of processing the first n-1 fragments anyway, why not
extending this flexibility to the first n-m fragments (i.e., the last m
fragments were lost) ? Of course, the E-bit based system cannot differentiate
between n-1 and n-m; then, is it worth mentioning it in the text?

EVC (as other video coding specs) have mechanisms that allow recovery from losses of units of video (called slices in most environments).  A cooperating encoder can use slices if there were hope that the decoder can recover from individual losses.
Fragments, on the other hand, are designed for the use without cooperating encoders.  During the RFC3984 times, we had long discussions whether we should support fragments at all, as they have so many disadvantages of true media-aware (here: MTU-size aware) encoding.  We added them at the end because there are scenarios (pre-encoded bitstreams, for example), where the RTP stack has no control over the NAL unit size but still wants to conform with smaller MTU sizes, so to limit the IP-level fragmentation and resulting increase in packet losses.  However, bitstreams that do not take MTU sizes into account are generally unrecoverable until the next picture boundary—today even more so than back in the 2003-timeframe RFC3984/H.264 times.  There’s no point in adding implementation logic or complexity ot allow for partial recovering.  That’s why we settled on the S/E bit solution in RFC3984, and stuck with it ever since.
I suggest no change in the text or the protocol here.

## Section 5

Possibly due to my lack of real-time knowledge, but is there a risk to increase
the end-to-end latency is the encoder must wait for several NUL before sending
them ?

I assume you refer to interleaving (sprop-max-don-diff > 0).  Yes, there’s an increase in latency.  However, that may be compensated by better error resilience due to interleaving of packets, especially when you have observed (through packet loss analysis on the RTP level) that your network experiences heavy bursty packet losses.  The interplay between those two was subject to academic work a long time ago, and frankly, the DONL mechanism was inherited in slightly modified form from RFC3984, when interleaving vs. FEC vs. retransmission was a big thing.  That has died down.  However, I have seen interleaving in the wild on occasion way after that timeframe.  I don’t think it’s time to deprecate interleaving and its protocol support just yet.  It’s another tool in the toolbox.

## Section 13.1

Is SAP still in use ? Anyway, I do not think that RFC 2974 should be normative
as it is cited as an example, i.e., it should rather be informative.

AFAIK, no one has used SAP in ages.  Will fix.

# NITS (non-blocking / cosmetic)

## Section 4.3

s/The Three different payload/The *t*hree different payload/ ?
Will fix.