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

Multi period dash VOD fixes #1551

Merged
merged 12 commits into from
Nov 21, 2024
Merged

Conversation

dzianis-dashkevich
Copy link
Contributor

@dzianis-dashkevich dzianis-dashkevich commented Nov 5, 2024

Specific Changes proposed

  • Clear timeout for media request in dash playlist loader. This fixes the incorrect clearing logic for the media request timeout in the dash playlist loader.
  • Add light debounce for fast quality change. This fixes duplicate calls during rapid quality switching.
    For example, when we select quality from the quality list with multiple bandwidth profiles for the same vertical resolution, it will call for fast quality changes for multiple playlists one by one.
  • Add isPaused for the dash playlist loader. This fixes duplicate load calls when mediachange is fired. See this PR for more info fix: Restart masterPlaylistLoader after media change #1339)
  • Call fast quality change only if a playlist is selected. This fixes duplicate calls when selecting quality from the quality list.
  • Ignore duplicate playlist updates in the segment-loader.
  • Move fixBadTimelineChanged logic from playlist-controller level to reset all segment-loaders.
  • Clear all segment loaders during fast quality change.

Requirements Checklist

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

Copy link

codecov bot commented Nov 5, 2024

Codecov Report

Attention: Patch coverage is 60.86957% with 18 lines in your changes missing coverage. Please review.

Project coverage is 83.97%. Comparing base (2f8d0af) to head (fd15e60).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/playlist-controller.js 27.27% 16 Missing ⚠️
src/dash-playlist-loader.js 80.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1551      +/-   ##
==========================================
- Coverage   84.08%   83.97%   -0.11%     
==========================================
  Files          43       44       +1     
  Lines       11646    11681      +35     
  Branches     2604     2612       +8     
==========================================
+ Hits         9792     9809      +17     
- Misses       1854     1872      +18     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.


🚨 Try these New Features:

@dzianis-dashkevich dzianis-dashkevich marked this pull request as ready for review November 21, 2024 00:37
@dzianis-dashkevich dzianis-dashkevich changed the title WIP: Multi period dash VOD fixes Multi period dash VOD fixes Nov 21, 2024
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.

🚢 it

// Adding a slight debounce to avoid duplicate calls during rapid quality changes, for example:
// When selecting quality from the quality list,
// where we may have multiple bandwidth profiles for the same vertical resolution.
this.fastQualityChange_ = debounce(this.fastQualityChange_.bind(this), 100);
Copy link
Contributor

Choose a reason for hiding this comment

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

Thank you for actually adding this! This has been on my list of "quick improvements" to fast quality change for a while and keeps getting buried by other priorities.

@@ -962,6 +977,24 @@ export class PlaylistController extends videojs.EventTarget {
this.tech_.setCurrentTime(newTime);
});

this.timelineChangeController_.on('fixBadTimelineChange', () => {
Copy link
Contributor

Choose a reason for hiding this comment

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

Also love moving this to the playlist-controller level. 🥇

@dzianis-dashkevich dzianis-dashkevich merged commit 6fe7d9c into main Nov 21, 2024
13 of 15 checks passed
@dzianis-dashkevich dzianis-dashkevich deleted the multi-period-dash-vod-fixes branch November 21, 2024 22:19
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