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

Parse Low-Latency HLS playlists #2865

Closed

Conversation

robwalch
Copy link
Collaborator

@robwalch robwalch commented Jul 3, 2020

This PR will...

Adds support for Low-latency HLS playlist parsing https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-07#section-4.4.3.8

  • EXT-X-SERVER-CONTROL attributes are added to level details
    • levelDetails.canBlockReload: boolean
    • levelDetails.canSkipUntil: number
    • levelDetails.canSkipDateRanges: boolean
    • levelDetails.partHoldBack: number
    • levelDetails.holdBack: number
  • EXT-X-PART-INF: PART-TARGET attribute is added to level details
    • levelDetails.partTarget: number
  • EXT-X-PART tags are added to fragments (parts for incomplete fragments will be added to the fragment list later when loader support is added)
    • levelDetails.fragments[].partList: { duration: number, gap: boolean, independent: boolean, uri: string }
  • EXT-X-GAP is added to fragment.tagList
  • EXT-X-BITRATE is added to fragment.tagList
  • EXT-X-PRELOAD-HINT attributes are added to level details
  • EXT-X-RENDITION-REPORT list is added to level details

Why is this Pull Request needed?

This work is a precursor to adding support for delta playlist updates, playlist block reloading, part support, and cdn tune-in.

Are there any notes?

In order to implement HOLD-BACK start time for live, the config passed in is no longer mutated. It is added to the merged config as userConfig so that we can distinguish between default options and options set by the user. This allows us to use hold-back as the target latency when the user has not set liveDurationSync/liveDurationSyncConut.

Checklist

  • changes have been done against master feature/v1.0.0 > apple-ll-hls branch, and PR does not conflict
  • new unit / functional tests have been added (whenever applicable)
  • API or design changes are documented in API.md

@robwalch robwalch added this to In progress in Low-Latency HLS (LL-HLS) via automation Jul 3, 2020
@robwalch robwalch requested a review from zetagame July 3, 2020 16:00
@robwalch robwalch force-pushed the feature/remove-lhls-support branch from f326253 to b37b6cd Compare July 5, 2020 16:11
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch from f3d0f89 to bda0dab Compare July 5, 2020 16:12
@robwalch robwalch force-pushed the feature/remove-lhls-support branch from b37b6cd to a785a2c Compare July 6, 2020 18:25
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch from 0fa85ac to 426bda9 Compare July 6, 2020 18:25
@robwalch robwalch force-pushed the feature/remove-lhls-support branch from a785a2c to cc5fdfd Compare July 6, 2020 21:23
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch 2 times, most recently from ac1fe5e to 370d06c Compare July 6, 2020 23:54
Base automatically changed from feature/remove-lhls-support to feature/v1.0.0 July 13, 2020 19:17
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch from 370d06c to 448f70d Compare July 13, 2020 19:18
@robwalch robwalch marked this pull request as ready for review July 14, 2020 23:00
@zetagame zetagame self-requested a review July 29, 2020 18:10
zetagame
zetagame previously approved these changes Jul 29, 2020
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch 5 times, most recently from 841913f to 1a2d25c Compare July 31, 2020 18:47
@robwalch robwalch changed the base branch from feature/v1.0.0 to feature/apple-ll-hls August 1, 2020 21:49
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch from 1a2d25c to bb3bfbb Compare August 4, 2020 21:03
@robwalch robwalch added this to the 1.0.0 milestone Aug 7, 2020
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch from bb3bfbb to 563b808 Compare August 7, 2020 19:28
@robwalch robwalch marked this pull request as draft August 11, 2020 16:40
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch from 563b808 to b338e68 Compare August 11, 2020 20:19
@robwalch robwalch changed the title Parse Low-Latency HLS EXT-X-SERVER-CONTROL Parse Low-Latency HLS playlists Aug 12, 2020
@robwalch robwalch mentioned this pull request Aug 12, 2020
5 tasks
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch from 5754829 to 761e770 Compare August 15, 2020 02:16
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch 3 times, most recently from d04e31b to f1edc7a Compare September 12, 2020 19:57
@robwalch robwalch marked this pull request as ready for review September 22, 2020 15:18
@robwalch robwalch force-pushed the feature/ll-lhls-parse-server-control branch from f1edc7a to 75f42df Compare September 22, 2020 23:30
@robwalch robwalch closed this Sep 26, 2020
@robwalch robwalch mentioned this pull request Sep 26, 2020
3 tasks
@robwalch robwalch moved this from In progress to Done in Low-Latency HLS (LL-HLS) Oct 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

None yet

2 participants