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

feat: Content Steering HLS Pathway Cloning #1432

Merged
merged 7 commits into from
Nov 7, 2023

Conversation

wseymour15
Copy link
Contributor

Description

Implementation for HLS Pathway cloning for content steering. See the spec here: https://datatracker.ietf.org/doc/draft-pantos-hls-rfc8216bis/

Whenever we get a response from the content server with a PATHWAY-CLONES array, we need to add, update, or delete playlists and media based on the data we receive. A pathway clone object tells us information about a new pathway that should be created/updated based off of another pathway.

Specific Changes proposed

  • Store the pathway cloning data retrieved from the server reponse in the content steering controlelr.
  • Add a new pathway with playlist and media data when the pathway clone did not exist previously.
  • Update playlist and media data from a previously existing pathway clone when we get new data from the pathway clone object.
  • Delete playlist and media data from a pathway clone that is no longer in the content steering server response.
  • Unit tests for this functionality.

Requirements Checklist

  • Feature implemented / Bug fixed
  • If necessary, more likely in a feature request than a bug fix
  • Reviewed by Two Core Contributors

@codecov
Copy link

codecov bot commented Oct 6, 2023

Codecov Report

Merging #1432 (2e484f0) into main (dd5e2af) will decrease coverage by 0.66%.
Report is 6 commits behind head on main.
The diff coverage is 98.70%.

@@            Coverage Diff             @@
##             main    #1432      +/-   ##
==========================================
- Coverage   85.98%   85.33%   -0.66%     
==========================================
  Files          42       42              
  Lines       10428    12305    +1877     
  Branches     2412     2928     +516     
==========================================
+ Hits         8967    10501    +1534     
- Misses       1461     1804     +343     
Files Coverage Δ
src/content-steering-controller.js 99.45% <100.00%> (+0.02%) ⬆️
src/manifest.js 93.57% <100.00%> (ø)
src/playlist-loader.js 96.26% <100.00%> (+1.06%) ⬆️
src/playlist-controller.js 95.78% <95.34%> (-0.03%) ⬇️

... and 2 files with indirect coverage changes

📣 Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today!

Copy link
Contributor

@adrums86 adrums86 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, just a couple of questions.

src/playlist-loader.js Show resolved Hide resolved
src/content-steering-controller.js Show resolved Hide resolved
Copy link
Contributor

@adrums86 adrums86 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great overall, 1 minor style question.

src/playlist-controller.js Outdated Show resolved Hide resolved
@wseymour15 wseymour15 merged commit 731058b into main Nov 7, 2023
14 of 15 checks passed
@wseymour15 wseymour15 deleted the feat/content-steering-pathway-cloning branch November 7, 2023 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants