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

HLS.js 1.5.1 doesn't start auto playing some HLS playlists until the user seeks manually #6126

Closed
5 tasks done
bes opened this issue Jan 22, 2024 · 5 comments
Closed
5 tasks done
Labels
Bug Regression A bug introduced in a recent release Stream Issue
Milestone

Comments

@bes
Copy link

bes commented Jan 22, 2024

What version of Hls.js are you using?

v1.5.1

What browser (including version) are you using?

Version 120.0.6099.234 (Official Build) (arm64)

What OS (including version) are you using?

macOS 14.2.1 (23C71)

Test stream

No response

Configuration

{
  "debug":false,
  "startPosition":-1,
  "maxBufferLength":30,
  "maxBufferSize":60,
  "startLevel":-1,
  "defaultAudioCodec":"mp4a.40.2",
  "abrEwmaDefaultEstimate":10000000
}

Additional player setup steps

No response

Checklist

Steps to reproduce

As usual I have a complex setup where I create an "off-screen" video element and pipe frames to WebGL, so I can't write the exact steps, but I would be happy to discuss my setup on Slack, as we have done before.

But in a nutshell, the video should start auto playing without user interaction, and it works on some playlists, but not others.

Worked great on 1.4.8.

(Sorry - I had to lie about the precondition checkboxes, since I can't reproduce this on the demo page)

Expected behaviour

The video to start playing without the user seeking manually

What actually happened?

HLS.js seems to stall, printing something like this, in a loop:

Live playlist, switching playlist, load frag with next SN: 513

Console output

hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.076 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.177 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.276 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.377 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.476 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.576 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.676 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.777 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.876 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:49.977 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.077 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.176 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.277 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.376 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.476 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.576 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.677 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.776 hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
19:44:50.877 hls.mjs:9897

Chrome media internals output

No response

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

robwalch commented Jan 23, 2024

Hi @bes,

Can you provide a page that reproduces the issue please? Sharing an example in Slack would be fine.

@robwalch
Copy link
Collaborator

robwalch commented Jan 24, 2024

hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513
hls.mjs:9897 [log] > [audio-stream-controller]: Live playlist, switching playlist, load frag with next SN: 513

This sounds like you have a live playlist with unmuxed audio and video. There is no Program Date Time to align media on so it is going on whatever it loaded last (need complete logs to confirm). If playback is not starting that is likely because the loaded audio and video are not overlap (need complete logs to confirm but may not be possible without looking at the media and). When they don't overlap, there is no combined buffer that can be played - at least not at the initial live seek position for the first pair of segment. That is OK and expected if you have audio and video playlists with nothing to align on until media is parsed, but we then need parsed the media, append, realign and hope from there that the streaming controllers will fill in the gaps. So PDT is missing and the playlists are only aligned after media timestamps are parsed, but what if the playlists dont overlap now or we're in buffered video territory but audio is off by 1? That's my best guess for what is happening here.

I can't move forward though without a sample that reproduces the issue. A pointer to the offending commit would help too. I don't see a reason why this would require a complex setup to reproduce. It should be reproducible without WebGL copying, we just need the live stream, and maybe information on any deferral you might be performing between loadSource and attachMedia or startLoad as that could also impact where and when segments start being requested and appended for live.

@bes
Copy link
Author

bes commented Jan 26, 2024

Sorry, I've been a bit swamped. I will try to make a repro for you as soon as I have a little bit of bandwidth.

@bes
Copy link
Author

bes commented Feb 6, 2024

I have shared an HLS link with you privately @robwalch

@robwalch
Copy link
Collaborator

robwalch commented Feb 6, 2024

The video playlist is VOD (has #EXT-X-ENDLIST) but the audio track playlist is Live (no #EXT-X-ENDLIST). The player (latest and earlier versions) load an audio segment near the end on start. Older releases correct themselves, but latest does not (until a seek).

@robwalch robwalch added Stream Issue and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Feb 6, 2024
@robwalch robwalch added this to the 1.5.4 milestone Feb 6, 2024
@robwalch robwalch added the Regression A bug introduced in a recent release label Feb 6, 2024
robwalch added a commit that referenced this issue Feb 6, 2024
robwalch added a commit that referenced this issue Feb 7, 2024
robwalch added a commit that referenced this issue Feb 7, 2024
* patch/v1.5.x:
  Account for overlapping sidx subsegment durations by parsing earlierstPresentationTime Fixes #6191
  Fix regression that removed (unofficial) support for `startLevel` above max level index Fixes #6172
  Use main playlist details to determine start position of audio and subtitle streaming controllers Fixes #6126
  Fix regression in hls.light.js selection (#6155)
  Use average for level sorting and abandon rules check (#6135)
eowino added a commit to DiceTechnology/hls.js that referenced this issue Apr 5, 2024
* chore(deps): update typescript-eslint monorepo to v6.17.0

* chore(deps): update babel monorepo to v7.23.7

* chore(deps): update dependency rollup to v4.9.2

* chore(deps): update dependency rollup to v4.9.4

* Fix codec parsing for AVC streams (video-dev#6077)

* Force auto level on emergency switch down (video-dev#6082)

Update estimates on frag load timeout
Do not abort request in _abandonRulesCheck
Remove two segment forward buffer length limit in _abandonRulesCheck
Reset estimate when candidate bitrate is lower than adjusted estimate
Resolves video-dev#6079

* chore(deps): update dependency wrangler to v3.22.2

* chore(deps): update dependency wrangler to v3.22.4

* chore(deps): update dependency @microsoft/api-documenter to v7.23.16

* chore(deps): update dependency @microsoft/api-extractor to v7.39.1

* Null CMCD callbacks on destroy (video-dev#6098)

* Fix regression where subtitle options with AUTOSELECT and FORCED are enabled at start (video-dev#6094)

* Do not enable subtitle options with AUTOSELECT=YES attribute
* Update and add initial selection tests for subtitle-controller
* Only pick forced subtitle option if it is the only one
Add default field to audio and subtitle selection options and forced field to subtitle selection option
* Address TextTrack change event overriding subtitle preference
Fix _TRACKS_UPDATED and _TRACK_SWITCH event order when preference is selected
* Do not auto select subtitle options with FORCED=YES attribute

* Update artifact actions (video-dev#6099)

* Update functional tests to run on Safari using MacOS 13 (video-dev#6101)

* Update functional tests to run on Safari using MacOS 13

* Skip smooth switch test in Safari on streams with overlapping appends

* Omit VOD "ended" event tests with overlapping appends from Safari

* chore(deps): update dependency chai to v4.4.0

* chore(deps): update dependency chai to v4.4.1

* chore(deps): update typescript-eslint monorepo to v6.18.0

* chore(deps): update typescript-eslint monorepo to v6.18.1

* Use AAC SBR (HE-AAC) workaround on Pale Moon (video-dev#6111)

* Patch/v1.4.0 doris (#79)

* Patch/v1.3.3 doris (#76)

* MPEG-TS probe improvement (video-dev#5186)

Fixes video-dev#5183

* Support AES-128 Encrypted Low-Latency HLS Parts (video-dev#5214)

* Log error and detach if MediaSource 'sourceopen' is interrupted (video-dev#5206)

* fix: merge DiceTechnology/hls.js changes.

* fix: Transition from Clear to DRM content

* fix:Sometimes play AES-128 stream failed

* test: modify test case

---------

Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>

* 1.3.4

* docs: modify api doc.

* chore: Modify version.

---------

Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Hongfei Huang <hongfei.huang@endeavorstreaming.com>

* Patch/v1.4.1 doris (#80)

* reference v1 jsdelivr url in v1 api doc

people should be using that over latest so that things don't break when we release v2 with potentially breaking changes. Main readme already used v1 url

* chore(deps): update dependency @rollup/plugin-alias to v4.0.4

* chore(deps): update dependency @microsoft/api-documenter to v7.21.7

* chore(deps): update dependency @rollup/plugin-typescript to v11.1.0

* chore(deps): update dependency @rollup/plugin-node-resolve to v15.0.2

* chore(deps): update dependency wrangler to v2.15.0

* chore(deps): update dependency @rollup/plugin-alias to v5

* Fix readme logos & add Mux logo (video-dev#5390)

* docs: replace broken logo with Mux

* docs: fix TED logo

* docs: replace broken logos

* chore(deps): update dependency lint-staged to v13.2.1

* chore(deps): update dependency typescript to v5.0.4

* chore(deps): update dependency eslint to v8.38.0

* chore(deps): update dependency es-check to v7.1.1

* chore(deps): update dependency @rollup/plugin-terser to v0.4.1

* chore(deps): update typescript-eslint monorepo to v5.58.0

* chore(deps): update dependency semver to v7.4.0

* chore(deps): update dependency @rollup/plugin-commonjs to v24.1.0

* chore(deps): update dependency semver to v7.5.0

* chore(deps): update typescript-eslint monorepo to v5.59.0

* Setup npm provenance statements (video-dev#5406)

* give publish job permissions for npm provenance

* add `—provenance` flag to `npm publish`

* remove unneeded `contents` permission

* chore(deps): update dependency chromedriver to v112 (video-dev#5393)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>

* set `internalChecksAsSuccess` renovate option

* chore(deps): update dependency wrangler to v2.15.1

* set renovate `prNotPendingHours` to 0

* chore(deps): update dependency wrangler to v2.16.0

* chore(deps): update dependency rollup to v3.20.3

* chore(deps): update dependency rollup to v3.20.7

* chore(deps): update dependency rollup to v3.21.0

* chore(deps): update tjenkinson/gh-action-auto-merge-dependency-updates digest to 01b22a9 (video-dev#5324)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* tweak renovate options again

see renovatebot/renovate#21720

* reset remainderData in resetContiguity (video-dev#5410)

* docs: add Media Chrome for custom UI (video-dev#5391)

* Perform playlist retries before redundant failover and level switch (video-dev#5420)

(Pathway switch is still prioritized over retries when available)
Fixes video-dev#5419

* chore(deps): update dependency sinon to v15.0.4

* chore(deps): update dependency karma-chrome-launcher to v3.2.0

* chore(deps): update dependency selenium-webdriver to v4.9.0

* Update audio-track-controller.ts (video-dev#5431)

Sometimes STABLE-RENDITION_ID of tracks is undefined. Adding a guard for it, otherwise audio track doesn't switch.

* chore(deps): update dependency eslint to v8.39.0

* chore(deps): update dependency karma to v6.4.2

* chore(deps): update dependency prettier to v2.8.8

* Fix incorrect HEVC main profile codec id (video-dev#5438)

* fix: move `types` condition to the front (video-dev#5439)

* chore(deps): update dependency wrangler to v2.17.0

* chore(deps): update typescript-eslint monorepo to v5.59.1

* chore(deps): update typescript-eslint monorepo to v5.59.2

* Fix Low-Latency part and fragment tracking (video-dev#5423)

* Fix Low-Latency part and fragment tracking regression introduced in video-dev#5102

* Fix issues with reuse of player instance when loading additional assets
Fixes video-dev#5425

* Reset SourceBuffers in `loadSource()` when the asset URL has changed, or buffer-controller setup has begun

* Remove old parts from the fragment tracker on frag buffered

* Remove old parts from the fragment tracker on frag buffered

* Reset eme-controller key format promise on manifest loading

* chore(deps): update dependency lint-staged to v13.2.2

* Always use MediaSource returned by utils module (video-dev#5448)

* chore(deps): update dependency @microsoft/api-documenter to v7.22.0

* chore(deps): update dependency @microsoft/api-documenter to v7.22.4

* chore: Modify version

* chore: remove package-lock.json

---------

Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: hlsjs-ci <40664919+hlsjs-ci@users.noreply.github.com>
Co-authored-by: Wesley Luyten <me@wesleyluyten.com>
Co-authored-by: Billy Chiu <billychiu98@gmail.com>
Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Agajan J <agajan.tm@gmail.com>
Co-authored-by: Sta Zhu <zhusidayoyo@hotmail.com>
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
Co-authored-by: yajin2021 <gene.jin@endeavorstreaming.com>

* Update DiceTechnology/hls.js to v1.4.3(#81)

* Patch/v1.4.4 doris (#82)

* reference v1 jsdelivr url in v1 api doc

people should be using that over latest so that things don't break when we release v2 with potentially breaking changes. Main readme already used v1 url

* chore(deps): update dependency @rollup/plugin-alias to v4.0.4

* chore(deps): update dependency @microsoft/api-documenter to v7.21.7

* chore(deps): update dependency @rollup/plugin-typescript to v11.1.0

* chore(deps): update dependency @rollup/plugin-node-resolve to v15.0.2

* chore(deps): update dependency wrangler to v2.15.0

* chore(deps): update dependency @rollup/plugin-alias to v5

* Fix readme logos & add Mux logo (video-dev#5390)

* docs: replace broken logo with Mux

* docs: fix TED logo

* docs: replace broken logos

* chore(deps): update dependency lint-staged to v13.2.1

* chore(deps): update dependency typescript to v5.0.4

* chore(deps): update dependency eslint to v8.38.0

* chore(deps): update dependency es-check to v7.1.1

* chore(deps): update dependency @rollup/plugin-terser to v0.4.1

* chore(deps): update typescript-eslint monorepo to v5.58.0

* chore(deps): update dependency semver to v7.4.0

* chore(deps): update dependency @rollup/plugin-commonjs to v24.1.0

* chore(deps): update dependency semver to v7.5.0

* chore(deps): update typescript-eslint monorepo to v5.59.0

* Setup npm provenance statements (video-dev#5406)

* give publish job permissions for npm provenance

* add `—provenance` flag to `npm publish`

* remove unneeded `contents` permission

* chore(deps): update dependency chromedriver to v112 (video-dev#5393)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>

* set `internalChecksAsSuccess` renovate option

* chore(deps): update dependency wrangler to v2.15.1

* set renovate `prNotPendingHours` to 0

* chore(deps): update dependency wrangler to v2.16.0

* chore(deps): update dependency rollup to v3.20.3

* chore(deps): update dependency rollup to v3.20.7

* chore(deps): update dependency rollup to v3.21.0

* chore(deps): update tjenkinson/gh-action-auto-merge-dependency-updates digest to 01b22a9 (video-dev#5324)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* tweak renovate options again

see renovatebot/renovate#21720

* reset remainderData in resetContiguity (video-dev#5410)

* docs: add Media Chrome for custom UI (video-dev#5391)

* Perform playlist retries before redundant failover and level switch (video-dev#5420)

(Pathway switch is still prioritized over retries when available)
Fixes video-dev#5419

* chore(deps): update dependency sinon to v15.0.4

* chore(deps): update dependency karma-chrome-launcher to v3.2.0

* chore(deps): update dependency selenium-webdriver to v4.9.0

* Update audio-track-controller.ts (video-dev#5431)

Sometimes STABLE-RENDITION_ID of tracks is undefined. Adding a guard for it, otherwise audio track doesn't switch.

* chore(deps): update dependency eslint to v8.39.0

* chore(deps): update dependency karma to v6.4.2

* chore(deps): update dependency prettier to v2.8.8

* Fix incorrect HEVC main profile codec id (video-dev#5438)

* fix: move `types` condition to the front (video-dev#5439)

* chore(deps): update dependency wrangler to v2.17.0

* chore(deps): update typescript-eslint monorepo to v5.59.1

* chore(deps): update typescript-eslint monorepo to v5.59.2

* Fix Low-Latency part and fragment tracking (video-dev#5423)

* Fix Low-Latency part and fragment tracking regression introduced in video-dev#5102

* Fix issues with reuse of player instance when loading additional assets
Fixes video-dev#5425

* Reset SourceBuffers in `loadSource()` when the asset URL has changed, or buffer-controller setup has begun

* Remove old parts from the fragment tracker on frag buffered

* Remove old parts from the fragment tracker on frag buffered

* Reset eme-controller key format promise on manifest loading

* chore(deps): update dependency lint-staged to v13.2.2

* Always use MediaSource returned by utils module (video-dev#5448)

* chore(deps): update dependency @microsoft/api-documenter to v7.22.0

* chore(deps): update dependency @microsoft/api-documenter to v7.22.4

* chore(deps): update babel monorepo to v7.21.5

* chore(deps): update dependency @microsoft/api-extractor to v7.34.5

* chore(deps): update dependency @babel/core to v7.21.8

* chore(deps): update dependency @microsoft/api-extractor to v7.34.6

* chore(deps): update dependency @microsoft/api-extractor to v7.34.8

* chore(deps): update dependency @types/chai to v4.3.5

* chore(deps): update dependency rollup to v3.21.1

* chore(deps): update dependency rollup to v3.21.5

* chore(deps): update dependency eventemitter3 to v5.0.1

* fix: partial audiovideo fragments not being treated as partial (video-dev#5460)

Fragments which contain both audio and video also need to be checked if
they are partial. We check for them individually, but there are cases
when only the one flag is set.

* Fix AV desync regression in v1.4.0 when mp4 audio track timestamps start before video track timestamps (video-dev#5471)

Fixes video-dev#5452

* chore(deps): update dependency wrangler to v2.18.0

* chore(deps): update dependency chromedriver to v112.0.1

* chore(deps): update dependency wrangler to v2.20.0

* Allow live level loading to recover from net::ERR_NETWORK_IO_SUSPENDED errors (video-dev#5473)

* Remove startLoad() as recovery method from API.md doc (video-dev#5478)

video-dev#5476

* Fix first fragment ejection tracking (video-dev#5480)

Fixes video-dev#5482

* Provide light ESM dist file (video-dev#5486)

* Playlist loading errors are fatal after all levels and retries exhausted (video-dev#5498)

Fixes video-dev#5488

* Adjust parsed TS AVC samples when start PTS overlaps with last DTS (video-dev#5500)

Resolves video-dev#5477

* Fix TS probing false positives by requiring 2-3 packet start bytes to be matched or more if first byte does not match sync word (video-dev#5503)

Fixes video-dev#5501

* Use input timescale when normalizing metadata cue timestamps (video-dev#5505)

Fixes video-dev#5504

* chore: change package.json

---------

Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: hlsjs-ci <40664919+hlsjs-ci@users.noreply.github.com>
Co-authored-by: Wesley Luyten <me@wesleyluyten.com>
Co-authored-by: Billy Chiu <billychiu98@gmail.com>
Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Agajan J <agajan.tm@gmail.com>
Co-authored-by: Sta Zhu <zhusidayoyo@hotmail.com>
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
Co-authored-by: Troy <troybensonsa@gmail.com>
Co-authored-by: Chocobozzz <chocobozzz@cpy.re>

* 1.5.1

* chore(deps): update dependency rollup to v4.9.5

* chore(deps): update dependency @rollup/plugin-typescript to v11.1.6

* chore(deps): update dependency @babel/preset-env to v7.23.8

* chore(deps): update typescript-eslint monorepo to v6.19.0

* chore(deps): update typescript-eslint monorepo to v6.19.1

* Use WebCrypto by default and only use software as a fallback if enabled (video-dev#6015)

Fixes use of  `enableSoftwareAES` to match the docs and the intended behavior when added in video-dev#99

* Null inline class JavaScript Event callback properties on destroy (video-dev#6102)

* chore(deps): update dependency @microsoft/api-documenter to v7.23.17

* chore(deps): update dependency @microsoft/api-documenter to v7.23.18

* chore(deps): update dependency @microsoft/api-documenter to v7.23.19

* chore(deps): update dependency wrangler to v3.22.5

* chore(deps): update dependency wrangler to v3.24.0

* Remove user-agent check from "mp4a.40.34" to "mp3" and "audio/mpeg" fallback (video-dev#6130)

Fixes video-dev#6125

* Adding AES-256 and AES-256-CTR encryption modes

* fix: generate silent aac frame based on original codec (video-dev#6123)

* Lazy init CEA608 parsers (2) (video-dev#6127)

* Use average for level sorting and abandon rules check (video-dev#6135)

Fixes video-dev#6122

* User unique logger configurations across instances of Hls(js)
Resolves video-dev#2461

* chore(deps): update dependency @svta/common-media-library to v0.6.2

* Use average for level sorting and abandon rules check (video-dev#6135) (video-dev#6146)

Fixes video-dev#6122

* Add MEDIA_ENDED event (forwards "ended" event, or emits when stalling begins near end of VOD) (video-dev#6141)

* chore(deps): update dependency chromedriver to v120.0.2

* chore(deps): update dependency rollup to v4.9.6

* feat: add support for CMCD nor (video-dev#6091)

* feat: add support for CMCD nor
* deps: update @svta/common-media-library to version 0.6.2
Resolves video-dev#6088

* fix(Remuxer): Safari segment overlap ensure PTS order (video-dev#6132)

* fix(Remuxer): Safari segment overlap ensure PTS alignment

* Fix regression in hls.light.js selection (video-dev#6155)

Fixes video-dev#6151

* chore(deps): update dependency selenium-webdriver to v4.17.0

* chore(deps): update dependency @microsoft/api-extractor to v7.39.2

* chore(deps): update dependency @microsoft/api-extractor to v7.39.4

* Fix regression in hls.light.js selection (video-dev#6157)

Fixes video-dev#6151

* chore(deps): update dependency husky to v9 (video-dev#6165)

* chore(deps): update dependency husky to v9

* Make changes for new husky

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>

* chore(deps): update actions/cache action to v4 (video-dev#6143)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency prettier to v3.2.4 (video-dev#6124)

* chore(deps): update dependency prettier to v3.2.4

* Run prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>

* Disable `AppleAdvancedHevcAvcHls` stream for now due to cors errors (video-dev#6176)

* chore(deps): update babel monorepo to v7.23.9

* chore(deps): update dependency @microsoft/api-documenter to v7.23.20

* chore(deps): update dependency wrangler to v3.25.0

* chore(deps): update dependency chromedriver to v121 (video-dev#6162)

* chore(deps): update dependency wrangler to v3.26.0

* chore(deps): replace dependency npm-run-all with npm-run-all2 5.0.0 (video-dev#6153)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency npm-run-all2 to v5.0.2

* chore(deps): update dependency husky to v9.0.7

* chore(deps): update dependency husky to v9.0.10

* chore(deps): update typescript-eslint monorepo to v6.20.0

* chore(deps): update typescript-eslint monorepo to v6.21.0

* Revert "Disable `AppleAdvancedHevcAvcHls` stream for now due to cors errors (…" (video-dev#6187)

This reverts commit e3f4d4d.

* Use main playlist details to determine start position of audio and subtitle streaming controllers
Fixes video-dev#6126

* Fix regression that removed (unofficial) support for `startLevel` above max level index
Fixes video-dev#6172

* Account for overlapping sidx subsegment durations by parsing earlierstPresentationTime
Fixes video-dev#6191

* Use main playlist details to determine start position of audio and subtitle streaming controllers
Fixes video-dev#6126

(cherry picked from commit 35c773d)

* Fix regression that removed (unofficial) support for `startLevel` above max level index
Fixes video-dev#6172

(cherry picked from commit 88d54a9)

* Account for overlapping sidx subsegment durations by parsing earlierstPresentationTime
Fixes video-dev#6191

(cherry picked from commit aadb239)

* Handle ManagedMediaSource endStreaming events without aborting requests

* Feature/mpeg ts hevc (video-dev#5847)

* Modify video parser and ts-demuxer to support NALu streams other than AVC
* Process HEVC in mpeg-ts container
---------
Co-authored-by: vladimir.vyatkin <vladimir.vyatkin@portal59.ru>

* Do not include HEVC in TS support in hls.light (compiled out by __USE_M2TS_ADVANCED_CODECS__)

* chore(deps): update dependency lint-staged to v15.2.1

* chore(deps): update dependency lint-staged to v15.2.2

* Update API.md for CMCD `includeKeys`

* Global exported logger uses the log methods from last call to `enableLogs`
Follow up to video-dev#6131

* Skip segment and part directives when last LL-HLS response is older than three target durations
Fix Media Playlist 'advanced' state when no Multivariant Playlist is provided
Related to video-dev#6076

* Switch between part and fragment loading at start and on segment boundary appends

* Fix subtitle stream controller buffered TimeRanges

* chore(deps): update dependency semver to v7.6.0

* chore(deps): update dependency @microsoft/api-documenter to v7.23.21

* chore(deps): update dependency @microsoft/api-documenter to v7.23.23

* chore(deps): update dependency @microsoft/api-extractor to v7.39.5

* chore(deps): update dependency @microsoft/api-extractor to v7.40.1

* Fix subtitle stream controller buffered TimeRanges

* chore(deps): update dependency wrangler to v3.27.0

* chore(deps): update dependency wrangler to v3.28.2

* chore(deps): update dependency mocha to v10.3.0

* Fix issues with detached and destroyed level selection (video-dev#6216)

* Fix issues with detached and destroyed level selection (video-dev#6216)

* chore(deps): update dependency rollup to v4.10.0

* chore(deps): update dependency rollup to v4.12.0

* fix index offset in sidx parsing (video-dev#6221)

* fix index offset in sidx parsing (video-dev#6221)

(cherry picked from commit e18d394)

* Add no-op comment to empty statement (fix lint error)

* Block audio append queue to keep AV appends in lock-step

* Reduce length of ESDS box guard statement

* rutube logo for they use section

* chore(deps): update dependency husky to v9.0.11

* Don't flush buffer on cap-level change when in manual selection mode (video-dev#6223)

* Don't switch level if current already greater or equal
* Don't switch level if autoLevel disabled
---------
Co-authored-by: Vladimir Polomanov <vpolomanov@rutube.ru>

* Fix audio/subtitles stream controllers restarting on switch after stopped
Update stream controller access specifiers

* Cleanup buffer-helper functions and remove nested try-catch statements

* Fix pauseBuffering() dev regression

* chore(deps): update dependency chromedriver to v121.0.1

* chore(deps): update dependency eslint-plugin-mocha to v10.3.0

* chore(deps): update dependency chromedriver to v121.0.2

* chore(deps): update dependency wrangler to v3.28.3

* chore(deps): update dependency @microsoft/api-documenter to v7.23.24

* chore(deps): update dependency @microsoft/api-extractor to v7.40.2

* chore(deps): update dependency @microsoft/api-extractor to v7.40.6

* chore(deps): update dependency wrangler to v3.29.0

* chore(deps): update dependency @microsoft/api-documenter to v7.23.30

* Fix compatibility of ManagedMediaSource implementation with Edge 18
Fixes video-dev#6243

* chore(deps): update dependency selenium-webdriver to v4.18.1

* Clean up base-stream-controller

* Don't pass log functions with player id to global logger

* Clear media from cap-level-controller on detach

* remove iphone compatibility note since its supported through mms

* added more info for iOS 17.1+ support

* Run Prettier to address lint error

* chore(deps): update dependency @types/chai to v4.3.12

* Ensure media element references are removed after calling detachMedia

* chore(deps): update dependency eslint to v8.57.0

* chore(deps): update dependency karma to v6.4.3

* chore(deps): update dependency @microsoft/api-extractor to v7.41.0

* chore(deps): update dependency @microsoft/api-extractor to v7.42.2

* chore(deps): update dependency @microsoft/api-documenter to v7.23.31

* chore(deps): update dependency @microsoft/api-documenter to v7.23.35

* chore(deps): update dependency wrangler to v3.30.0

* chore(deps): update dependency wrangler to v3.31.0

* chore(deps): update babel monorepo to v7.24.0

* chore(deps): update dependency @svta/common-media-library to v0.6.3

* chore(deps): update dependency @svta/common-media-library to v0.6.4

* chore(deps): update dependency chromedriver to v122 (video-dev#6250)

* chore(deps): update typescript-eslint monorepo to v7 (video-dev#6225)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency npm-run-all2 to v6 (video-dev#6179)

* chore(deps): update dependency @microsoft/api-documenter to v7.23.36

* chore(deps): update dependency @microsoft/api-documenter to v7.23.37

* chore(deps): update dependency @microsoft/api-extractor to v7.42.3

* chore(deps): update typescript-eslint monorepo to v7.1.1

* chore(deps): update typescript-eslint monorepo to v7.2.0

* chore(deps): update dependency rollup to v4.12.1

* chore(deps): update dependency rollup to v4.13.0

* chore(deps): update dependency typescript to v5.4.2

* chore(deps): update dependency eslint-plugin-mocha to v10.4.0

* chore(deps): update dependency eslint-plugin-mocha to v10.4.1

* chore(deps): update dependency wrangler to v3.32.0

* chore(deps): update dependency wrangler to v3.34.2

* chore(deps): update dependency chromedriver to v122.0.5

* chore(deps): update dependency chromedriver to v122.0.6

* 1.5.7

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: hlsjs-ci <40664919+hlsjs-ci@users.noreply.github.com>
Co-authored-by: Jakub Perżyło <qizot1405@gmail.com>
Co-authored-by: Rob Walch <robwalch@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tjenkinson@users.noreply.github.com>
Co-authored-by: Pat Nafarrete <pnaf@users.noreply.github.com>
Co-authored-by: yajin2021 <83813017+yajin2021@users.noreply.github.com>
Co-authored-by: Hongfei Huang <hongfei.huang@endeavorstreaming.com>
Co-authored-by: Hongfei Huang <83795629+hongfeih-es@users.noreply.github.com>
Co-authored-by: Wesley Luyten <me@wesleyluyten.com>
Co-authored-by: Billy Chiu <billychiu98@gmail.com>
Co-authored-by: Agajan J <agajan.tm@gmail.com>
Co-authored-by: Sta Zhu <zhusidayoyo@hotmail.com>
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
Co-authored-by: yajin2021 <gene.jin@endeavorstreaming.com>
Co-authored-by: Troy <troybensonsa@gmail.com>
Co-authored-by: Chocobozzz <chocobozzz@cpy.re>
Co-authored-by: root <root@jvarydeb>
Co-authored-by: FredTsang <zengzhifeng@cvte.com>
Co-authored-by: Rob Walch <rwalch@apple.com>
Co-authored-by: Casey Occhialini <1508707+littlespex@users.noreply.github.com>
Co-authored-by: Asen-O-Nikolov <98342935+Asen-O-Nikolov@users.noreply.github.com>
Co-authored-by: Tom Jenkinson <tom@tjenkinson.me>
Co-authored-by: Vladmir Vyatkin <voldemarpro@hotmail.com>
Co-authored-by: Nikola Hristov <nklhtv@gmail.com>
Co-authored-by: Pavel Fomin <pfomin@rutube.ru>
Co-authored-by: Vladimir Polomanov <67444538+corndev27@users.noreply.github.com>
Co-authored-by: Felix Groove <felix.groove@lhind.dlh.de>
Co-authored-by: Rob Walch <rob@jwplayer.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Regression A bug introduced in a recent release Stream Issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants