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

Fatal error is never reached when capLevelToPlayerSize is true #5566

Closed
5 tasks done
radiantmediaplayer opened this issue Jun 14, 2023 · 4 comments
Closed
5 tasks done

Comments

@radiantmediaplayer
Copy link
Collaborator

What version of Hls.js are you using?

1.4.5

What browser (including version) are you using?

114.0.5735.110

What OS (including version) are you using?

Windows 11 22H2

Test stream

https://www.rmp-streaming.com/test/test.m3u8

Configuration

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

Additional player setup steps

Try stream https://www.rmp-streaming.com/test/test.m3u8 with "capLevelToPlayerSize": true, Hls.Events.ERROR will trow but it will never reach data.fatal === true. Instead it will loop indefinetlty with data.fatal === false.
Now try "capLevelToPlayerSize": false and it will error to data.fatal === true after a couple of data.fatal === false as it is supposed to. You can try player code below:

	<script src="https://cdn.jsdelivr.net/npm/hls.js@1"></script>
	<!-- Or if you want the latest version from the main branch -->
	<!-- <script src="https://cdn.jsdelivr.net/npm/hls.js@canary"></script> -->
	<video id="video"></video>
	<script>
		var video = document.getElementById('video');
		var videoSrc = 'https://www.rmp-streaming.com/test/test.m3u8';
		if (Hls.isSupported()) {
			var hls = new Hls({
				"debug": true,
				"enableWorker": true,
				"lowLatencyMode": true,
				"backBufferLength": 90,
				"capLevelToPlayerSize": true
			});
			hls.loadSource(videoSrc);
			hls.attachMedia(video);
			hls.on(Hls.Events.ERROR, function (event, data) {
				var errorType = data.type;
				var errorDetails = data.details;
				var errorFatal = data.fatal;
				console.log(data.fatal);
				switch (data.details) {
					case Hls.ErrorDetails.FRAG_LOAD_ERROR:
						break;
					default:
						break;
				}
			});
		}
	</script>

Checklist

Steps to reproduce

  1. Try above player code and see the loop error effect. Note you will need to try that player code on a blank page, for a reason that I ignore I cannot reproduce it on https://hlsjs.video-dev.org/demo/
  2. All levels are erroring 404, that is the reduced use-case we can provide for the issue we want to address.

Expected behaviour

data.fatal === true at some point when "capLevelToPlayerSize": true

What actually happened?

data.fatal === true is never reached

Console output

[log] > Debug logs enabled for "Hls instance" in hls.js version 1.4.5
hls.js@1:1 [log] > stopLoad
hls.js@1:1 [log] > loadSource:https://www.rmp-streaming.com/test/test.m3u8
hls.js@1:1 [log] > [stream-controller]: Trigger BUFFER_RESET
hls.js@1:1 [log] > attachMedia
hls.js@1:1 [log] > [buffer-controller]: Media source opened
hls.js@1:1 [log] > [subtitle-stream-controller]: STOPPED->IDLE
hls.js@1:1 [log] > [level-controller]: manifest loaded, 6 level(s) found, first bitrate: 8000000
hls.js@1:1 [log] > 2 bufferCodec event(s) expected
hls.js@1:1 [log] > set firstLevel:1
hls.js@1:1 [log] > set autoLevelCapping:1
hls.js@1:1 [log] > startLoad(-1)
hls.js@1:1 [log] > [level-controller]: Switching to level 1 from level -1
hls.js@1:1 [log] > [audio-track-controller]: Updating audio tracks, 3 track(s) found in group:aac
hls.js@1:1 [log] > [audio-track-controller]: Switching to audio-track 2 "English" lang:undefined group:aac
hls.js@1:1 [log] > [audio-stream-controller]: Reset loading state
hls.js@1:1 [log] > [audio-stream-controller]: STOPPED->IDLE
hls.js@1:1 [log] > [audio-stream-controller]: IDLE->WAITING_TRACK
hls.js@1:1 [log] > [level-controller]: Loading level index 1 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
hls.js@1:1 [log] > [stream-controller]: STOPPED->IDLE
hls.js@1:1 [log] > [audio-track-controller]: loading audio-track playlist 2 "English" lang:undefined group:aac
hls.js@1:1 [log] > [audio-stream-controller]: WAITING_TRACK->STOPPED
hls.js@1:1 [log] > [audio-stream-controller]: STOPPED->WAITING_TRACK
hls.js@1:1 [log] > [subtitle-stream-controller]: IDLE->STOPPED
hls.js@1:1 [log] > [subtitle-stream-controller]: STOPPED->IDLE
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b320000_ao_t64RW5nbGlzaA==.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b320000_ao_t64RW5nbGlzaA==.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading audioTrack id: 2 group-id: "aac"
hls.js@1:1 [warn] > [audio-track-controller]: Retrying playlist loading 1/2 after "audioTrackLoadError" in 1000ms
test2.html:34 false
hls.js@1:1 
 GET https://www.rmp-streaming.com/test/chunklist_w2018193847_b320000_ao_t64RW5nbGlzaA==.m3u8 net::ERR_FAILED 404
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading level: 1 id: 0
hls.js@1:1 [warn] > [level-controller]: Retrying playlist loading 2/2 after "levelLoadError" in 2000ms
hls.js@1:1 [warn] > [warning]: switching to level 0 after levelLoadError
hls.js@1:1 [log] > [level-controller]: Switching to level 0 from level 1
hls.js@1:1 [log] > [level-controller]: Loading level index 0 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b250000_vo.m3u8
hls.js@1:1 [log] > [stream-controller]: IDLE->WAITING_LEVEL
test2.html:34 false
hls.js@1:1 
 GET https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8 net::ERR_FAILED 404
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b250000_vo.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b250000_vo.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading level: 0 id: 0
hls.js@1:1 [warn] > [level-controller]: Retrying playlist loading 1/2 after "levelLoadError" in 1000ms
hls.js@1:1 [warn] > [warning]: switching to level 5 after levelLoadError
hls.js@1:1 [log] > [level-controller]: Switching to level 1 from level 0
hls.js@1:1 [log] > [level-controller]: Loading level index 1 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
test2.html:34 false
hls.js@1:1 
 GET https://www.rmp-streaming.com/test/chunklist_w2018193847_b250000_vo.m3u8 net::ERR_FAILED 404
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading level: 1 id: 0
hls.js@1:1 [warn] > [level-controller]: Retrying playlist loading 1/2 after "levelLoadError" in 1000ms
hls.js@1:1 [warn] > [warning]: switching to level 5 after levelLoadError
hls.js@1:1 [log] > [level-controller]: Switching to level 1 from level 1
hls.js@1:1 [log] > [level-controller]: Loading level index 1 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
test2.html:34 false
hls.js@1:1 
 GET https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8 net::ERR_FAILED 404
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading level: 1 id: 0
hls.js@1:1 [warn] > [level-controller]: Retrying playlist loading 1/2 after "levelLoadError" in 1000ms
hls.js@1:1 [warn] > [warning]: switching to level 5 after levelLoadError
hls.js@1:1 [log] > [level-controller]: Switching to level 1 from level 1
hls.js@1:1 [log] > [level-controller]: Loading level index 1 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
test2.html:34 false
hls.js@1:1 
 GET https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8 net::ERR_FAILED 404
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading level: 1 id: 0
hls.js@1:1 [warn] > [level-controller]: Retrying playlist loading 1/2 after "levelLoadError" in 1000ms
hls.js@1:1 [warn] > [warning]: switching to level 5 after levelLoadError
hls.js@1:1 [log] > [level-controller]: Switching to level 1 from level 1
hls.js@1:1 [log] > [level-controller]: Loading level index 1 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
test2.html:34 false
hls.js@1:1 
 GET https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8 net::ERR_FAILED 404
DevTools failed to load source map: Could not load content for https://cdn.jsdelivr.net/npm/hls.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading level: 1 id: 0
hls.js@1:1 [warn] > [level-controller]: Retrying playlist loading 1/2 after "levelLoadError" in 1000ms
hls.js@1:1 [warn] > [warning]: switching to level 5 after levelLoadError
hls.js@1:1 [log] > [level-controller]: Switching to level 1 from level 1
hls.js@1:1 [log] > [level-controller]: Loading level index 1 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
test2.html:34 false
hls.js@1:1 
 GET https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8 net::ERR_FAILED 404
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading level: 1 id: 0
hls.js@1:1 [warn] > [level-controller]: Retrying playlist loading 1/2 after "levelLoadError" in 1000ms
hls.js@1:1 [warn] > [warning]: switching to level 5 after levelLoadError
hls.js@1:1 [log] > [level-controller]: Switching to level 1 from level 1
hls.js@1:1 [log] > [level-controller]: Loading level index 1 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
test2.html:34 false
hls.js@1:1 
 GET https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8 net::ERR_FAILED 404
test2.html:1 Access to XMLHttpRequest at 'https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
hls.js@1:1 [error] > 0 while loading https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
hls.js@1:1 [warn] > [playlist-loader]: A network error (status 0) occurred while loading level: 1 id: 0
hls.js@1:1 [warn] > [level-controller]: Retrying playlist loading 1/2 after "levelLoadError" in 1000ms
hls.js@1:1 [warn] > [warning]: switching to level 5 after levelLoadError
hls.js@1:1 [log] > [level-controller]: Switching to level 1 from level 1
hls.js@1:1 [log] > [level-controller]: Loading level index 1 with URI 1/1 https://www.rmp-streaming.com/test/chunklist_w2018193847_b500000_vo.m3u8
test2.html:34 false

and so on and so on

Chrome media internals output

N/A
@radiantmediaplayer radiantmediaplayer added Bug Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Jun 14, 2023
@robwalch
Copy link
Collaborator

To help with reproducing the issue, what is the size of the player on the page (in pixels)?

@robwalch robwalch added Confirmed and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Jun 15, 2023
@robwalch
Copy link
Collaborator

@radiantmediaplayer does #5570 resolve the issue for you?

@radiantmediaplayer
Copy link
Collaborator Author

@robwalch yes, it does indeed fixes the reported issue. Thanks for looking into this.

@robwalch robwalch added this to the 1.4.6 milestone Jun 15, 2023
@robwalch
Copy link
Collaborator

eowino added a commit to DiceTechnology/hls.js that referenced this issue Jan 17, 2024
* 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

* 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 <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.4.6

---------

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>
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: yajin2021 <gene.jin@endeavorstreaming.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants