Skip to content

feat(ABR): ABR Manager Min forward buffer (duration) to increase quality abr.minBufferAheadToUpgrade#10280

Open
Iragne wants to merge 7 commits into
shaka-project:mainfrom
Iragne:feat/abr-config-duration-check
Open

feat(ABR): ABR Manager Min forward buffer (duration) to increase quality abr.minBufferAheadToUpgrade#10280
Iragne wants to merge 7 commits into
shaka-project:mainfrom
Iragne:feat/abr-config-duration-check

Conversation

@Iragne

@Iragne Iragne commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

I would like to have a parameter in the ABR configuration that will not allow the variant change to an higher quality if the filled buffer is below a threshold.
By default this should be set to 0, more over to some low latency setup.
if the next variant has an equal or higher (>=) bandwidth and the forward buffer is not filled, we just not jump to the next quality. if the buffer is fill with this X duration we can change variant.
If the new variant is lower (<) in term of bandwidth we switch. (this is to protect the going down situation where we are already in bad shape with that current variant)
if no current variant we switch.
if the duration of the current playback till the end of the manifest is smaller to that value we allow the switch. it clearly a bad configuration. (TBD it can be the manifest that has delay and i'm not sure we should do that...)

Close #10263

@Iragne

Iragne commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

@avelad sorry i had issue with my account better this PR

Comment thread externs/shaka/player.js
@Iragne

Iragne commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

I'm still not sure we should do that https://github.com/shaka-project/shaka-player/pull/10280/changes#diff-c620ac9f1f7d7edd591bf600973db0235bcdcd215ae6b226e0597cec35ab88deR564. It can lead to bad switching due to out of date manifest

@Iragne Iragne marked this pull request as ready for review June 29, 2026 14:33
@shaka-bot

shaka-bot commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Bundle Size Report for PR #10280

File HEAD Base Diff
controls.css 38.4 KiB (6.7 KiB) 38.4 KiB (6.7 KiB) 0.0 KiB
controls.modern.css 30.5 KiB (6.1 KiB) 30.5 KiB (6.1 KiB) 0.0 KiB
demo.compiled.debug.js 265.7 KiB (53.8 KiB) 265.6 KiB (53.8 KiB) +0.1 KiB
demo.compiled.js 265.7 KiB (53.8 KiB) 265.6 KiB (53.8 KiB) +0.1 KiB
demo.css 160.2 KiB (25.7 KiB) 160.2 KiB (25.7 KiB) 0.0 KiB
demo.modern.css 144.1 KiB (24.7 KiB) 144.1 KiB (24.7 KiB) 0.0 KiB
locales.js 44.5 KiB (11.0 KiB) 44.5 KiB (11.0 KiB) 0.0 KiB
receiver.compiled.debug.js 151.1 KiB (24.4 KiB) 151.1 KiB (24.4 KiB) 0.0 KiB
receiver.compiled.js 151.1 KiB (24.4 KiB) 151.1 KiB (24.4 KiB) 0.0 KiB
shaka-player.compiled-es2021.debug.js 1288.3 KiB (319.8 KiB) 1287.8 KiB (319.6 KiB) +0.6 KiB
shaka-player.compiled-es2021.js 680.8 KiB (229.3 KiB) 680.4 KiB (229.2 KiB) +0.3 KiB
shaka-player.compiled.debug.js 1572.7 KiB (362.6 KiB) 1572.1 KiB (362.5 KiB) +0.7 KiB
shaka-player.compiled.js 789.5 KiB (259.2 KiB) 789.1 KiB (259.1 KiB) +0.4 KiB
shaka-player.dash-es2021.debug.js 955.2 KiB (241.9 KiB) 954.6 KiB (241.7 KiB) +0.6 KiB
shaka-player.dash-es2021.js 476.7 KiB (163.7 KiB) 476.3 KiB (163.6 KiB) +0.3 KiB
shaka-player.dash.debug.js 1164.6 KiB (273.6 KiB) 1163.9 KiB (273.4 KiB) +0.7 KiB
shaka-player.dash.js 555.5 KiB (185.1 KiB) 555.1 KiB (184.9 KiB) +0.4 KiB
shaka-player.experimental-es2021.debug.js 1679.9 KiB (406.6 KiB) 1679.3 KiB (406.4 KiB) +0.6 KiB
shaka-player.experimental-es2021.js 935.6 KiB (300.6 KiB) 935.2 KiB (300.5 KiB) +0.3 KiB
shaka-player.experimental.debug.js 2031.3 KiB (458.9 KiB) 2030.6 KiB (458.8 KiB) +0.7 KiB
shaka-player.experimental.js 1067.7 KiB (336.3 KiB) 1067.3 KiB (336.2 KiB) +0.4 KiB
shaka-player.hls-es2021.debug.js 976.3 KiB (245.4 KiB) 975.7 KiB (245.2 KiB) +0.6 KiB
shaka-player.hls-es2021.js 503.9 KiB (172.4 KiB) 503.5 KiB (172.2 KiB) +0.3 KiB
shaka-player.hls.debug.js 1189.5 KiB (277.6 KiB) 1188.9 KiB (277.4 KiB) +0.7 KiB
shaka-player.hls.js 585.5 KiB (195.1 KiB) 585.1 KiB (194.9 KiB) +0.4 KiB
shaka-player.transmuxer-worker.debug.js 190.2 KiB (46.5 KiB) 190.2 KiB (46.5 KiB) -0.0 KiB
shaka-player.transmuxer-worker.js 83.5 KiB (28.5 KiB) 83.5 KiB (28.5 KiB) 0.0 KiB
shaka-player.ui-es2021.debug.js 1597.7 KiB (389.1 KiB) 1597.1 KiB (388.9 KiB) +0.6 KiB
shaka-player.ui-es2021.js 895.5 KiB (289.0 KiB) 895.1 KiB (288.8 KiB) +0.3 KiB
shaka-player.ui.debug.js 1919.0 KiB (437.4 KiB) 1918.3 KiB (437.2 KiB) +0.7 KiB
shaka-player.ui.js 1016.0 KiB (322.1 KiB) 1015.6 KiB (322.0 KiB) +0.4 KiB

@avelad avelad added type: enhancement New feature or request priority: P3 Useful but not urgent labels Jun 29, 2026
@avelad avelad added this to the v5.2 milestone Jun 29, 2026
@shaka-bot

Copy link
Copy Markdown
Collaborator

Incremental code coverage: 89.13%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: P3 Useful but not urgent type: enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ABR Manager Min forward buffer (duration) to increase quality

3 participants