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

In iPad the buffer doesn't seem to fetch further fragments as defined by maxBufferLength #6181

Closed
5 tasks done
sahilbansal11 opened this issue Feb 5, 2024 · 4 comments
Closed
5 tasks done

Comments

@sahilbansal11
Copy link

sahilbansal11 commented Feb 5, 2024

What version of Hls.js are you using?

1.5.3

What browser (including version) are you using?

Chrome / Safari iOS

What OS (including version) are you using?

iPad OS

Test stream

https://demo.unified-streaming.com/k8s/features/stable/video/tears-of-steel/tears-of-steel.ism/.m3u8

Configuration

{
  "debug": true,
  "enableWorker": true,
  "maxBufferLength": 360
}

and

{
  "debug": true,
  "enableWorker": true,
  "lowLatencyMode": true,
  "backBufferLength": 90
}

Additional player setup steps

https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fdemo.unified-streaming.com%2Fk8s%2Ffeatures%2Fstable%2Fvideo%2Ftears-of-steel%2Ftears-of-steel.ism%2F.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==

Checklist

Steps to reproduce

  1. Play any stream on ipad

Eg
https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fdemo.unified-streaming.com%2Fk8s%2Ffeatures%2Fstable%2Fvideo%2Ftears-of-steel%2Ftears-of-steel.ism%2F.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==

Expected behaviour

It should fetch ahead fragments as defined by maxBufferLength

What actually happened?

It did not fetch ahead fragments as defined by maxBufferLength

Console output

NA

Video shared comparing mac OS and iPad playing the same video with buffer used up shown:

https://drive.google.com/file/d/1-WLMhdu5mX4nc8VZmiTaa-G3rhtlDL1J/view?usp=sharing

Chrome media internals output

NA

@sahilbansal11 sahilbansal11 added Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Feb 5, 2024
@robwalch
Copy link
Collaborator

robwalch commented Feb 5, 2024

In v1.5 HLS.js uses ManagedMediaSource by default when available. This lets the user-agent suggest when to pause and resume streaming. To disable it, set "preferManagedMediaSource" to false.

@robwalch robwalch added Works as expected and removed Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Feb 5, 2024
@robwalch
Copy link
Collaborator

robwalch commented Feb 5, 2024

Also note that streaming uses maxBufferLength or maxBufferSize * active bitrate (which ever comes first), up to maxMaxBufferLength to determine when to idle segment fetching.

BUFFER_FULL_ERROR error events caused by QUOTA_EXCEEDED_ERR DOM Exceptions will result in maxMaxBufferLength being halved.

@sahilbansal11
Copy link
Author

In v1.5 HLS.js uses ManagedMediaSource by default when available. This lets the user-agent suggest when to pause and resume streaming. To disable it, set "preferManagedMediaSource" to false.

Thanks @robwalch Let me try this and verify the same once

@robwalch
Copy link
Collaborator

Closing due to inactivity. Resolution: works-as-expected.

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

No branches or pull requests

2 participants