Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement support for LL-HLS #EXT-X-PRELOAD-HINT part loading #3988

Open
robwalch opened this issue Jun 2, 2021 · 3 comments · May be fixed by #6356
Open

Implement support for LL-HLS #EXT-X-PRELOAD-HINT part loading #3988

robwalch opened this issue Jun 2, 2021 · 3 comments · May be fixed by #6356

Comments

@robwalch
Copy link
Collaborator

robwalch commented Jun 2, 2021

Adding support for Hinted Part and Map Preloading could reduce LL-HLS latency by an additional part duration. This feature was left out of v1.0 because of timing and the complexity involved in dropping hinted parts in situations that still need to be cataloged and tested. We also lacked multiple MAP support which has not landed in v1.0.4.

Feature summary and resources:

  1. Parse EXT-X-PRELOAD-HINT tags and attributes:
    • #EXT-X-PRELOAD-HINT:TYPE=MAP,URI=”init.mp4”preload init segments (usually followed by a discontinuity)
    • #EXT-X-PRELOAD-HINT:TYPE=PART,URI=”part.m4s”
    • with byterange (length known)
      #EXT-X-PRELOAD-HINT:TYPE=PART,URI=”part.m4s”,BYTERANGE-START=0,BYTERANGE-LENGTH=4044
    • with byterange chunk-transfer
      #EXT-X-PRELOAD-HINT:TYPE=PART,URI=”part.m4s”,BYTERANGE-START=0
  2. Make preload-hint requests and handle the response
    • request part files and hold result for part update (no byterange)
    • request part byterange and hold result for part update (length known)
    • stream part file, hold result for part update byte-range(s) is received in part-update (chunk-transfer)
    • do not sample TTFB for blocked part-hint responses
  3. Handle part updates following preload-hint
    a. If part update matches preload-hint request/response push update
    b. If part update invalidates preload-hint drop request/response

https://developer.apple.com/wwdc20/10229
https://developer.apple.com/wwdc20/10232

@robwalch robwalch created this issue from a note in Low-Latency HLS (LL-HLS) (To do) Jun 2, 2021
@robwalch robwalch changed the title Hinted Part and Map Preloading Implement support for LL-HLS #EXT-X-PRELOAD-HINT part loading Jun 2, 2021
@streamthing
Copy link

We need this! When?

@Qizot
Copy link
Contributor

Qizot commented Aug 8, 2022

Any update on this?

@robwalch robwalch added this to the 1.5.0 milestone Aug 25, 2022
@robwalch robwalch modified the milestones: 1.5.0, 1.6.0 Jul 23, 2023
@robwalch robwalch modified the milestones: 1.6.0, 1.8.0 Aug 10, 2023
@robwalch
Copy link
Collaborator Author

robwalch commented Sep 30, 2023

Waiting on the author to file the PR: master...feature/preload-hint
The feature is scheduled for a later release (Roadmap #5194) but can be released earlier with review and testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In progress
Development

Successfully merging a pull request may close this issue.

3 participants