-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Request floods in 1.4.1 #5476
Comments
Do not call myhls.loadSource(playlistUrl);
myhls.attachMedia(theMediaElement);
myhls.on(Hls.Events.MEDIA_ATTACHED, function () {
pleaseReload = false;
});
myhls.on(Hls.Events.ERROR, handleHlsError);
myhls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
pressPlay();
}); |
The issue could be your error handling combined with the event listeners:
When an error is fatal, all internal attempts to recover have failed, and |
Wow. Thanks, @robwalch ! |
Np. I'm sorry that this came up as a regression. The most likely scenario is that you've got some recursion happening where with each bad request, you trigger a new one: case Hls.ErrorTypes.NETWORK_ERROR:
debug('fatal network error');
myhls.startLoad(); In earlier versions, the stream controllers may have gotten into a state where startLoad would do nothing after a fatal error. Now they work and this code reveals a very bad side-effect. |
To confirm your assessment I'll try removing that |
Created #5478 to update the docs as this should only have been recommended in very specific scenarios with warning about loop loading. v1.4.2 might behave better for you as some errors are now marked as resolved to prevent fatal errors for live streams. This may change a bit as it may have introduced cases where an error with no follow up is not-fatal which is less than ideal. |
Thanks (again) @robwalch for the really tremendous attention and support you've given. I'm going to try to push to production a build of our public page bundle with a trial fix that comments out the |
I deployed a player update with the Btw: I though y'all might be curious to learn why we use hls.js in an audio streaming service. Without it some mobile devices stop playing HLS audio streams 5 minutes after the screen is locked. It's no small thing to be able to play audio continuously from a player in a web page running in the user's chosen or default browser on a phone when the browser is not the foreground app, the page isn't isn't the foreground tab, and the device screen is locked. On some devices/browsers that works with the browser's naked HTMLMediaElement but with hls.js we can make it work for nearly everyone. Thanks! |
Fyi, we are using VOD streams and (very rarely [if ever]) EVENT streams. |
Any luck with 1.4.3? |
I haven't tried 1.4.3 yet. In our ark-player I pinned hls.js at 1.4.1 while testing your suggested improvments. I wanted it to be robust whatever 1.4.1 was doing. That stabilized over the last few days. It's slow because some people keep browser tabs open for a long time (surprisingly long) and we just have to wait until they unload. Anyway, with the suggestions you made last week I see no weird behavior with 1.4.1. In the next days I'll push the fixed ark-player to npm and then change our site back to loading |
* 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 <[email protected]> * 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 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: Troy <[email protected]> Co-authored-by: Chocobozzz <[email protected]>
Sorry I forgot to come report back. I configured my player to use 1.4.1, the version that caused the trouble, and corrected it using the advice you gave on May 9. After a few days I was satisfied things looked better. Then I made the player use the latest tagged release. No problems. FWIW, maybe someone finds this useful, I made the player report its version and that of hls.js by configuring the Hls object like this. Idk if the fetchSetup works, dunno how to test it, but the XHR version does. |
Looks correct. The easiest way to have hls.js use the fetch loader by default is to initialize the player in const hls = new Hls({ progressive: true });
hls.config.progressive = hls.config.enableSoftwareAES = false; The correct way would be to override the default |
* 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 <[email protected]> * 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 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: Troy <[email protected]> Co-authored-by: Chocobozzz <[email protected]>
* 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 <[email protected]> * 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 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: Troy <[email protected]> Co-authored-by: Chocobozzz <[email protected]>
* 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 <[email protected]> * 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 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: Troy <[email protected]> Co-authored-by: Chocobozzz <[email protected]>
* 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 <[email protected]> * 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 * Resume fragment loading after level switch follows level error Fixes video-dev#5498 (cherry picked from commit 1d7de74) * Do not adjust the end time of metadata cues that overlap with cues of another type (id3, emsg, daterange) Fixes video-dev#5531 * Keep level switch error actions within player constraints Fixes video-dev#5566 * 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 <[email protected]> * 1.3.4 * docs: modify api doc. * chore: Modify version. --------- Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Hongfei Huang <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: yajin2021 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: Troy <[email protected]> Co-authored-by: Chocobozzz <[email protected]> * 1.4.6 --------- Co-authored-by: Tom Jenkinson <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: Troy <[email protected]> Co-authored-by: Chocobozzz <[email protected]> Co-authored-by: yajin2021 <[email protected]> Co-authored-by: Hongfei Huang <[email protected]> Co-authored-by: Hongfei Huang <[email protected]> Co-authored-by: yajin2021 <[email protected]>
* 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 <[email protected]> * 1.3.4 * docs: modify api doc. * chore: Modify version. --------- Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Hongfei Huang <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: yajin2021 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: hlsjs-ci <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: Troy <[email protected]> Co-authored-by: Chocobozzz <[email protected]> * 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 #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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Jakub Perżyło <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Tom Jenkinson <[email protected]> Co-authored-by: Pat Nafarrete <[email protected]> Co-authored-by: yajin2021 <[email protected]> Co-authored-by: Hongfei Huang <[email protected]> Co-authored-by: Hongfei Huang <[email protected]> Co-authored-by: Wesley Luyten <[email protected]> Co-authored-by: Billy Chiu <[email protected]> Co-authored-by: Agajan J <[email protected]> Co-authored-by: Sta Zhu <[email protected]> Co-authored-by: Mateusz Burzyński <[email protected]> Co-authored-by: yajin2021 <[email protected]> Co-authored-by: Troy <[email protected]> Co-authored-by: Chocobozzz <[email protected]> Co-authored-by: root <root@jvarydeb> Co-authored-by: FredTsang <[email protected]> Co-authored-by: Rob Walch <[email protected]> Co-authored-by: Casey Occhialini <[email protected]> Co-authored-by: Asen-O-Nikolov <[email protected]> Co-authored-by: Tom Jenkinson <[email protected]> Co-authored-by: Vladmir Vyatkin <[email protected]> Co-authored-by: Nikola Hristov <[email protected]> Co-authored-by: Pavel Fomin <[email protected]> Co-authored-by: Vladimir Polomanov <[email protected]> Co-authored-by: Felix Groove <[email protected]> Co-authored-by: Rob Walch <[email protected]>
What version of Hls.js are you using?
1.4.1
What browser (including version) are you using?
Several including 13.0.2 Safari , SamsungBrowser/20.0 and others
What OS (including version) are you using?
Several including Intel Mac OS X 10_14_6 , Android 13; SAMSUNG SM-A146U and others
Test stream
https://ark3.spinitron.com/ark2/WZBC-20230509T090000Z/index.m3u8
Configuration
Additional player setup steps
https://github.com/spinitron/ark-player/blob/main/src/arkPlayer.js#L168-L183
Checklist
Steps to reproduce
Sorry, I had to lie in the 3rd and 5th form checkbox for Github to submit the form. I have not tested with main. There are some 404s involved. Please read on...
I operate a production audio stream service that provides an HLS server and a web player. I use the player on spinitron.com e.g. https://spinitron.com/WZBC/ The player uses hls.js
if (Hls.isSupported()
.I do not have a test env to reproduce the error.
Expected behaviour
Normal HLS client traffic visible on the HLS server.
What actually happened?
Our web pages with the player were set to load
hls.js@latest
. 6 days ago we started seeing floods of requests for.m3u8
playlists and for expired.ts
segments. A flood from a single client could sustain over 1000 requests per second for a few minutes. The number of these floods increased over a period of 5 days. Yesterday evening I changed the asset URL to[email protected]
. The floods have almost stopped and in the last 8 hours only 3 clients exhibit anomalous persistent requests.The request floods were mostly for valid .m3u8 URLs. There were also floods of requests for expired .ts segments resulting in 404 responses. The nginx server responded to cache until I added rate limiting when it responded with 429 for the excess. Rate limiting didn't change the request flood patterns that I could see.
Console output
I don't have a dev env to reproduce the error. I'm describing an incident on a production system.
Chrome media internals output
No response
The text was updated successfully, but these errors were encountered: