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

L2A fixes #4195

Merged
merged 6 commits into from
Jun 19, 2023
Merged

L2A fixes #4195

merged 6 commits into from
Jun 19, 2023

Conversation

piersoh
Copy link
Contributor

@piersoh piersoh commented May 31, 2023

In our paper Latency Target based Analysis of the DASH.js Player on dash.js [ACM MMSYS'23] we found and addressed two main issues in L2A:

  • The algorithm runs multiple times per segment which results in unintentional state changes
  • It uses the bandwidth estimate from the currentHttpRequest which can include Initialisation segments that provide a very poor estimate due to the small size of Init segments and the measurement limitations of current browsers. This leads to poor performance of the algorithm which can result in the Q parameter being successively reduced so that it gets stuck at the lowest representation.

To address these issues the PR includes:

  • Added check to skip L2A algo update with Init segments and use previous quality measure.
  • Added check for a new segment URL before (re)running L2A algorithm

piersoh and others added 4 commits May 30, 2023 16:49
- Otherwise it returns previously calculated quality
- Motivated by the fact that every time L2A algorithm gets called it updates
  its internal state even if there's no new throughput estimates (from
  the current request url), which can result in the Q parameter being
  successively reduced so that it gets stuck at the lowest representation.
@dsilhavy dsilhavy added this to the 4.7.1 milestone Jun 1, 2023
src/streaming/rules/abr/L2ARule.js Outdated Show resolved Hide resolved
src/streaming/rules/abr/L2ARule.js Outdated Show resolved Hide resolved
src/streaming/rules/abr/L2ARule.js Outdated Show resolved Hide resolved
piersoh and others added 2 commits June 19, 2023 12:46
- Used strict equality (===) for if statement
- Utilised HTTPRequest.INIT_SEGMENT_TYPE instead of 'InitializationSegment'
- Added comment WRT to SegmentBase addressing
@dsilhavy dsilhavy merged commit 8cceecf into Dash-Industry-Forum:development Jun 19, 2023
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.

2 participants