Skip to content

Commit b4219f1

Browse files
hongfeih-estjenkinsonrenovate[bot]hlsjs-ciluwes
authored
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]>
1 parent a68d9a5 commit b4219f1

26 files changed

+281
-207
lines changed

.github/workflows/automerge.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
run:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: tjenkinson/gh-action-auto-merge-dependency-updates@b2d85843a11a4075ea396c995a677a5ca1ba5c19
14+
- uses: tjenkinson/gh-action-auto-merge-dependency-updates@01b22a97735b01be6bc1d8a2705f7ee167472414
1515
with:
1616
repo-token: ${{ secrets.CI_GITHUB_TOKEN }}
1717
allowed-actors: renovate[bot]

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,8 @@ jobs:
266266
needs: [config, test_unit]
267267
if: needs.config.outputs.tag || needs.config.outputs.isMainBranch == 'true'
268268
runs-on: ubuntu-latest
269+
permissions:
270+
id-token: write
269271
steps:
270272
- uses: actions/checkout@v3
271273

README.md

Lines changed: 16 additions & 12 deletions
Large diffs are not rendered by default.

api-extractor/report/hls.js.api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,8 @@ export class BaseStreamController extends TaskLoop implements NetworkComponentAP
322322
// (undocumented)
323323
protected fragPrevious: Fragment | null;
324324
// (undocumented)
325+
protected getAppendedFrag(position: number, playlistType?: PlaylistLevelType): Fragment | null;
326+
// (undocumented)
325327
protected getCurrentContext(chunkMeta: ChunkMetadata): {
326328
frag: Fragment;
327329
part: Part | null;

docs/API.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,16 +174,16 @@ See [API Reference](https://hlsjs-dev.video-dev.org/api-docs/) for a complete li
174174

175175
### First step: setup and support
176176

177-
First include `https://cdn.jsdelivr.net/npm/hls.js@latest` (or `/hls.js` for unminified) in your web page.
177+
First include `https://cdn.jsdelivr.net/npm/hls.js@1` (or `/hls.js` for unminified) in your web page.
178178

179179
```html
180-
<script src="//cdn.jsdelivr.net/npm/hls.js@latest"></script>
180+
<script src="//cdn.jsdelivr.net/npm/hls.js@1"></script>
181181
```
182182

183183
Invoke the following static method: `Hls.isSupported()` to check whether your browser is supporting [MediaSource Extensions](http://w3c.github.io/media-source/).
184184

185185
```html
186-
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
186+
<script src="https://cdn.jsdelivr.net/npm/hls.js@1"></script>
187187
<script>
188188
if (Hls.isSupported()) {
189189
console.log('hello hls.js!');
@@ -200,7 +200,7 @@ Let's
200200
- bind video element to this HLS object
201201

202202
```html
203-
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
203+
<script src="https://cdn.jsdelivr.net/npm/hls.js@1"></script>
204204

205205
<video id="video"></video>
206206
<script>
@@ -222,7 +222,7 @@ Let's
222222
You need to provide manifest URL as below:
223223

224224
```html
225-
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
225+
<script src="https://cdn.jsdelivr.net/npm/hls.js@1"></script>
226226

227227
<video id="video"></video>
228228
<script>

package.json

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hls.js",
3-
"version": "1.4.1",
3+
"version": "1.4.2",
44
"license": "Apache-2.0",
55
"description": "JavaScript HLS client using MediaSourceExtension",
66
"homepage": "https://github.com/video-dev/hls.js",
@@ -17,9 +17,9 @@
1717
"types": "./dist/hls.js.d.ts",
1818
"exports": {
1919
".": {
20+
"types": "./dist/hls.js.d.ts",
2021
"import": "./dist/hls.mjs",
21-
"require": "./dist/hls.js",
22-
"types": "./dist/hls.js.d.ts"
22+
"require": "./dist/hls.js"
2323
},
2424
"./dist/*": "./dist/*",
2525
"./package.json": "./package.json"
@@ -71,29 +71,29 @@
7171
"@babel/preset-env": "7.21.4",
7272
"@babel/preset-typescript": "7.21.4",
7373
"@babel/register": "7.21.0",
74-
"@microsoft/api-documenter": "7.21.6",
74+
"@microsoft/api-documenter": "7.22.4",
7575
"@microsoft/api-extractor": "7.34.4",
76-
"@rollup/plugin-alias": "4.0.3",
76+
"@rollup/plugin-alias": "5.0.0",
7777
"@rollup/plugin-babel": "6.0.3",
78-
"@rollup/plugin-commonjs": "24.0.1",
79-
"@rollup/plugin-node-resolve": "15.0.1",
78+
"@rollup/plugin-commonjs": "24.1.0",
79+
"@rollup/plugin-node-resolve": "15.0.2",
8080
"@rollup/plugin-replace": "5.0.2",
81-
"@rollup/plugin-terser": "0.4.0",
82-
"@rollup/plugin-typescript": "11.0.0",
81+
"@rollup/plugin-terser": "0.4.1",
82+
"@rollup/plugin-typescript": "11.1.0",
8383
"@types/chai": "4.3.4",
8484
"@types/chart.js": "2.9.37",
8585
"@types/mocha": "10.0.1",
8686
"@types/sinon-chai": "3.2.9",
87-
"@typescript-eslint/eslint-plugin": "5.57.1",
88-
"@typescript-eslint/parser": "5.57.1",
87+
"@typescript-eslint/eslint-plugin": "5.59.2",
88+
"@typescript-eslint/parser": "5.59.2",
8989
"babel-loader": "9.1.2",
9090
"babel-plugin-transform-remove-console": "6.9.4",
9191
"chai": "4.3.7",
9292
"chart.js": "2.9.4",
93-
"chromedriver": "111.0.0",
93+
"chromedriver": "112.0.0",
9494
"doctoc": "2.2.1",
95-
"es-check": "7.1.0",
96-
"eslint": "8.37.0",
95+
"es-check": "7.1.1",
96+
"eslint": "8.39.0",
9797
"eslint-config-prettier": "8.8.0",
9898
"eslint-plugin-import": "2.27.5",
9999
"eslint-plugin-mocha": "10.1.0",
@@ -103,31 +103,31 @@
103103
"http-server": "14.1.1",
104104
"husky": "8.0.3",
105105
"jsonpack": "1.1.5",
106-
"karma": "6.4.1",
107-
"karma-chrome-launcher": "3.1.1",
106+
"karma": "6.4.2",
107+
"karma-chrome-launcher": "3.2.0",
108108
"karma-coverage": "2.2.0",
109109
"karma-mocha": "2.0.1",
110110
"karma-mocha-reporter": "2.2.5",
111111
"karma-rollup-preprocessor": "7.0.8",
112112
"karma-sinon-chai": "2.0.2",
113113
"karma-sourcemap-loader": "0.4.0",
114-
"lint-staged": "13.2.0",
114+
"lint-staged": "13.2.2",
115115
"markdown-styles": "3.2.0",
116116
"micromatch": "4.0.5",
117117
"mocha": "10.2.0",
118118
"node-fetch": "3.3.1",
119119
"npm-run-all": "4.1.5",
120-
"prettier": "2.8.7",
120+
"prettier": "2.8.8",
121121
"promise-polyfill": "8.3.0",
122-
"rollup": "3.20.2",
122+
"rollup": "3.21.0",
123123
"rollup-plugin-istanbul": "4.0.0",
124124
"sauce-connect-launcher": "1.3.2",
125-
"selenium-webdriver": "4.8.2",
126-
"semver": "7.3.8",
127-
"sinon": "15.0.3",
125+
"selenium-webdriver": "4.9.0",
126+
"semver": "7.5.0",
127+
"sinon": "15.0.4",
128128
"sinon-chai": "3.7.0",
129-
"typescript": "5.0.3",
129+
"typescript": "5.0.4",
130130
"url-toolkit": "2.2.5",
131-
"wrangler": "2.14.0"
131+
"wrangler": "2.17.0"
132132
}
133133
}

renovate.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
"labels": ["dependencies", "skip-change-log"],
44
"prHourlyLimit": 0,
55
"prConcurrentLimit": 0,
6-
"prCreation": "not-pending",
7-
"stabilityDays": 7,
6+
"prCreation": "immediate",
7+
"minimumReleaseAge": "7 days",
8+
"internalChecksFilter": "strict",
89
"vulnerabilityAlerts": {
910
"addLabels": ["security"]
1011
},

scripts/publish-npm.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ if [[ $(node ./scripts/check-already-published.js) = "not published" ]]; then
66
# see https://docs.npmjs.com/private-modules/ci-server-config
77
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> .npmrc
88
if [[ -z "$TAG" ]]; then
9-
npm publish --tag canary
9+
npm publish --provenance --tag canary
1010
echo "Published canary."
1111
curl https://purge.jsdelivr.net/npm/hls.js@canary
1212
curl https://purge.jsdelivr.net/npm/hls.js@canary/dist/hls-demo.js
@@ -19,7 +19,7 @@ if [[ $(node ./scripts/check-already-published.js) = "not published" ]]; then
1919
exit 1
2020
fi
2121
echo "Publishing tag: ${tag}"
22-
npm publish --tag "${tag}"
22+
npm publish --provenance --tag "${tag}"
2323
curl "https://purge.jsdelivr.net/npm/hls.js@${tag}"
2424
echo "Published."
2525
fi

src/controller/audio-stream-controller.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -391,10 +391,7 @@ class AudioStreamController
391391
(!mainBufferInfo?.len && bufferInfo.len)
392392
) {
393393
// Check fragment-tracker for main fragments since GAP segments do not show up in bufferInfo
394-
const mainFrag = this.fragmentTracker.getBufferedFrag(
395-
frag.start,
396-
PlaylistLevelType.MAIN
397-
);
394+
const mainFrag = this.getAppendedFrag(frag.start, PlaylistLevelType.MAIN);
398395
if (mainFrag === null) {
399396
return;
400397
}
@@ -472,12 +469,18 @@ class AudioStreamController
472469
}
473470

474471
onManifestLoading() {
475-
this.mainDetails = null;
476472
this.fragmentTracker.removeAllFragments();
477473
this.startPosition = this.lastCurrentTime = 0;
478474
this.bufferFlushed = false;
479-
this.bufferedTrack = null;
480-
this.switchingTrack = null;
475+
this.levels =
476+
this.mainDetails =
477+
this.waitingData =
478+
this.bufferedTrack =
479+
this.cachedTrackLoadedData =
480+
this.switchingTrack =
481+
null;
482+
this.startFragRequested = false;
483+
this.trackId = this.videoTrackCC = this.waitingVideoCC = -1;
481484
}
482485

483486
onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData) {
@@ -500,7 +503,11 @@ class AudioStreamController
500503
return;
501504
}
502505
this.log(
503-
`Track ${trackId} loaded [${newDetails.startSN},${newDetails.endSN}],duration:${newDetails.totalduration}`
506+
`Track ${trackId} loaded [${newDetails.startSN},${newDetails.endSN}]${
507+
newDetails.lastPartSn
508+
? `[part-${newDetails.lastPartSn}-${newDetails.lastPartIndex}]`
509+
: ''
510+
},duration:${newDetails.totalduration}`
504511
);
505512

506513
const track = levels[trackId];
@@ -768,9 +775,10 @@ class AudioStreamController
768775
}
769776

770777
if (initSegment?.tracks) {
771-
this._bufferInitSegment(initSegment.tracks, frag, chunkMeta);
778+
const mapFragment = frag.initSegment || frag;
779+
this._bufferInitSegment(initSegment.tracks, mapFragment, chunkMeta);
772780
hls.trigger(Events.FRAG_PARSING_INIT_SEGMENT, {
773-
frag,
781+
frag: mapFragment,
774782
id,
775783
tracks: initSegment.tracks,
776784
});

src/controller/audio-track-controller.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,9 @@ class AudioTrackController extends BasePlaylistController {
236236
if (!this.selectDefaultTrack || track.default) {
237237
if (
238238
!currentTrack ||
239-
currentTrack.attrs['STABLE-RENDITION-ID'] ===
240-
track.attrs['STABLE-RENDITION-ID']
239+
(currentTrack.attrs['STABLE-RENDITION-ID'] !== undefined &&
240+
currentTrack.attrs['STABLE-RENDITION-ID'] ===
241+
track.attrs['STABLE-RENDITION-ID'])
241242
) {
242243
return track.id;
243244
}

0 commit comments

Comments
 (0)