Re: [Hls-interest] Playlist delta updates - clarification requested

Rob Walch <rwalch@apple.com> Fri, 25 March 2022 00:53 UTC

Return-Path: <rwalch@apple.com>
X-Original-To: hls-interest@ietfa.amsl.com
Delivered-To: hls-interest@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5CC6A3A119D; Thu, 24 Mar 2022 17:53:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.175
X-Spam-Level:
X-Spam-Status: No, score=0.175 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, FAKE_REPLY_B=2.282, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iqfDgt3ozfM3; Thu, 24 Mar 2022 17:52:58 -0700 (PDT)
Received: from rn-mailsvcp-ppex-lapp45.apple.com (rn-mailsvcp-ppex-lapp45.rno.apple.com [17.179.253.49]) (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 A7D8E3A119A; Thu, 24 Mar 2022 17:52:55 -0700 (PDT)
Received: from pps.filterd (rn-mailsvcp-ppex-lapp45.rno.apple.com [127.0.0.1]) by rn-mailsvcp-ppex-lapp45.rno.apple.com (8.16.1.2/8.16.1.2) with SMTP id 22P0nU6S012900; Thu, 24 Mar 2022 17:52:54 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : content-type : mime-version : subject : message-id : date : cc : to; s=20180706; bh=fjo+l9asVBkOAOCDXqe+F6RmL510jRAAOotLr+r7iC4=; b=gZVI+bO0TD5CtMHqc2DZZRAoZT2+4nlcZoYW79KwWy3hQou8cvSmbYmgkzsOvgcy8ZXv 07rLAFKbJwNt43MFRf6e7h8N+Iau3EhyAY7TUYRLCj8iETkdeahdGqovnk7Xd3GilHmm cfV35hgUqzaPQ3PQqHzjuSDq8vZbkTHdNl8Q2DU0zWS/CULqppZ1ChnkzUdF5Y5W/qjY SLVqhCBhSLaU6OSTPtcYoeGvhCjAVptFte5WK7jYMgStY9CvUsSgVI7EzCgN7a/7R9he wg9TEbFDwqAZwpZ54yk2mLONciqBWZy7CzCUSsEhEmGArdbPLQI098e6y0oI9dgsjY3A 5Q==
Received: from rn-mailsvcp-mta-lapp01.rno.apple.com (rn-mailsvcp-mta-lapp01.rno.apple.com [10.225.203.149]) by rn-mailsvcp-ppex-lapp45.rno.apple.com with ESMTP id 3ewdftgegg-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 24 Mar 2022 17:52:54 -0700
Received: from rn-mailsvcp-mmp-lapp04.rno.apple.com (rn-mailsvcp-mmp-lapp04.rno.apple.com [17.179.253.17]) by rn-mailsvcp-mta-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.16.20220118 64bit (built Jan 18 2022)) with ESMTPS id <0R9900G8NZS6N7B0@rn-mailsvcp-mta-lapp01.rno.apple.com>; Thu, 24 Mar 2022 17:52:54 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp04.rno.apple.com by rn-mailsvcp-mmp-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.16.20220118 64bit (built Jan 18 2022)) id <0R9900200ZGDWI00@rn-mailsvcp-mmp-lapp04.rno.apple.com>; Thu, 24 Mar 2022 17:52:54 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 81ca60fce39c2560b6c4a7e5841f9b8f
X-Va-E-CD: 95bb7d7c71cc756458bb86e3cbb516cc
X-Va-R-CD: 8a09eea7e01fe5e326846e994347d3b3
X-Va-CD: 0
X-Va-ID: 09889c80-2640-4c4a-a0b2-2f1cdf579f0b
X-V-A:
X-V-T-CD: 81ca60fce39c2560b6c4a7e5841f9b8f
X-V-E-CD: 95bb7d7c71cc756458bb86e3cbb516cc
X-V-R-CD: 8a09eea7e01fe5e326846e994347d3b3
X-V-CD: 0
X-V-ID: 222fd3cb-e548-4ac7-b729-27580b1e77ab
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-03-24_08:2022-03-24, 2022-03-24 signatures=0
Received: from smtpclient.apple (unknown [17.234.116.184]) by rn-mailsvcp-mmp-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.16.20220118 64bit (built Jan 18 2022)) with ESMTPSA id <0R99011DRZS53B00@rn-mailsvcp-mmp-lapp04.rno.apple.com>; Thu, 24 Mar 2022 17:52:54 -0700 (PDT)
From: Rob Walch <rwalch@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_F3032AE5-64BC-415C-AFC5-598A7DCE09F3"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3696.80.2\))
Message-id: <94BE7EE7-7B24-4561-9C67-F4431B9F6611@apple.com>
Date: Thu, 24 Mar 2022 17:52:53 -0700
Cc: "hls-interest@ietf.org" <hls-interest@ietf.org>
To: "Law, Will" <wilaw=40akamai.com@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3696.80.2)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.850 definitions=2022-03-24_08:2022-03-24, 2022-03-24 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/hls-interest/RWf1XGVLE8QTjUI16mI9Ajso6YU>
Subject: Re: [Hls-interest] Playlist delta updates - clarification requested
X-BeenThere: hls-interest@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussions about HTTP Live Streaming \(HLS\)." <hls-interest.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hls-interest>, <mailto:hls-interest-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hls-interest/>
List-Post: <mailto:hls-interest@ietf.org>
List-Help: <mailto:hls-interest-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hls-interest>, <mailto:hls-interest-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Mar 2022 00:53:02 -0000

Hi Will,

On Fri, Mar 18, 2022 at 2:38 PM Law, Will <wilaw=40akamai.com@dmarc.ietf.org> wrote:
> Playlist delta updates are a really useful feature. As we look to implement them, I had three questions:
>  
> 1. The spec says that can-skip-until attribute defines a skip boundary that “..  MUST be at least six times the Target Duration”. In the developer docs <https://developer.apple.com/documentation/http_live_streaming/enabling_low-latency_http_live_streaming_hls> we are given a sample playlist as shown below. The target duration is 4s but the skip boundary is only 12s. Should it 24s?

If the example is to follow the spec strictly, then yes it should.

> 2. If the answer to [1] is yes, then would the delta playlist as shown have add additional segments such that it described at least the last 24s of segments? Currently it only describes 4 complete segments at 4s each and one partially complete segment of 1.3s for a total of 17.3s.

CAN-SKIP-UNTIL should be 24 or at least six times the TARGETDURATION of 4. One of the reasons for this is so that there are no partial segments beyond the skip boundary:

   EXT-X-PART tags SHOULD be removed from the Playlist after they are
   greater than three Target Durations from the end of the Playlist.


> 3. What is the rule about how many segments must be described to meet the skip boundary declaration? Is it complete segments or does it take into consideration the partial build of the last segment? Let me illustrate this question with a hypothetical example. Imagine target duration is set to 5s due to some variability in encoding, but most segments are closer to 4s and skip boundary is set to 30s. As we deliver the first part of a new segments, should we list the last 7 segments (for a total of 4x7 = 28s) or 8 segments (32s) ? The rule to describe at least a skip-boundary worth of time suggests we should list the last 8 segments and then replace the rest with the #EXT-X-SKIP:SKIPPED-SEGMENTS tag. However if we went with 7 complete segments, then 2s in to the next segment we would actually be meeting our requirement of 30s. This would mean the playlist would suddenly switch to a different SKIPPED-SEGMENTS value since we could skip one more segment. This toggling of SKIPPED-SEGMENTS value would be undesirable for players and hence I think the unwritten rule should be that the delta update should describe at least CEIL(Skip-boundary/targetduration) complete segments and ignore the time impact of any partially delivered segments. Is this in fact the correct interpretation?

The expectation is that the skip boundary would be large enough to include all partial segments in the delta playlist update.

   A server produces a Playlist Delta Update (Section 6.2.5.1 <https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#section-6.2.5.1>), by
   replacing tags earlier than the Skip Boundary with an EXT-X-SKIP tag.

   When replacing Media Segments, the EXT-X-SKIP tag replaces the
   segment URI lines and all Media Segment Tags tags that are applied to
   those segments. 

To avoid a change of SKIPPED-SEGMENTS on part update, we can clarify in this section that the skip tag replaces tags further from the last full segment than the skip boundary (changes in red):

   The Playlist Delta Update is a version of the Playlist in which Media
   Segments that are further from the end of the last (Parent) Media Segment in the the Playlist than the Skip
   Boundary (Section 4.4.3.8 <https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#section-4.4.3.8>), as well as their associated tags, are
   replaced by an EXT-X-SKIP tag (Section 4.4.5.2 <https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#section-4.4.5.2>).


Regards,

Rob Walch
Apple Inc.