From 33f6d19b77c1c7819f5ee439b1725243b5831e9f Mon Sep 17 00:00:00 2001 From: Harvey Zhao Date: Fri, 11 Sep 2026 23:53:16 +0800 Subject: [PATCH] test(hls): [PKG-HLS-02] cover released contracts and real SDK playback --- .gitattributes | 2 + package.json | 2 +- refactor/baselines/hls-sdk.json | 21 + refactor/baselines/hls-validation.json | 7485 +++++++++++++++++ .../changes/2026-09-11-PKG-HLS-02-tests.md | 26 + refactor/environment-matrix.md | 2 +- refactor/hls-validation.md | 57 + refactor/plan.md | 5 +- refactor/progress.md | 8 + refactor/risk-table.md | 6 +- refactor/risks.json | 75 +- refactor/scripts/releases.mjs | 2 +- refactor/scripts/releases.test.mjs | 9 +- refactor/tasks.json | 9 +- refactor/third-party.json | 5 +- scripts/generate-hls-fixture.mjs | 31 + test/README.md | 7 + test/browser/README.md | 6 + test/browser/hls-control.spec.js | 236 + test/browser/media/hls/README.md | 16 + test/browser/media/hls/english-00.mpegts | Bin 0 -> 13912 bytes test/browser/media/hls/english-01.mpegts | Bin 0 -> 14100 bytes test/browser/media/hls/english-02.mpegts | Bin 0 -> 14100 bytes test/browser/media/hls/english-03.mpegts | Bin 0 -> 13912 bytes test/browser/media/hls/english-04.mpegts | Bin 0 -> 14100 bytes test/browser/media/hls/english-05.mpegts | Bin 0 -> 14100 bytes test/browser/media/hls/english-06.mpegts | Bin 0 -> 752 bytes test/browser/media/hls/english.m3u8 | 20 + test/browser/media/hls/french-00.mpegts | Bin 0 -> 13912 bytes test/browser/media/hls/french-01.mpegts | Bin 0 -> 14100 bytes test/browser/media/hls/french-02.mpegts | Bin 0 -> 14100 bytes test/browser/media/hls/french-03.mpegts | Bin 0 -> 13912 bytes test/browser/media/hls/french-04.mpegts | Bin 0 -> 14100 bytes test/browser/media/hls/french-05.mpegts | Bin 0 -> 14100 bytes test/browser/media/hls/french-06.mpegts | Bin 0 -> 752 bytes test/browser/media/hls/french.m3u8 | 20 + test/browser/media/hls/high-00.mpegts | Bin 0 -> 45308 bytes test/browser/media/hls/high-01.mpegts | Bin 0 -> 52264 bytes test/browser/media/hls/high-02.mpegts | Bin 0 -> 48128 bytes test/browser/media/hls/high-03.mpegts | Bin 0 -> 54144 bytes test/browser/media/hls/high-04.mpegts | Bin 0 -> 47376 bytes test/browser/media/hls/high-05.mpegts | Bin 0 -> 48128 bytes test/browser/media/hls/high.m3u8 | 18 + test/browser/media/hls/low-00.mpegts | Bin 0 -> 28952 bytes test/browser/media/hls/low-01.mpegts | Bin 0 -> 32900 bytes test/browser/media/hls/low-02.mpegts | Bin 0 -> 30268 bytes test/browser/media/hls/low-03.mpegts | Bin 0 -> 32336 bytes test/browser/media/hls/low-04.mpegts | Bin 0 -> 29704 bytes test/browser/media/hls/low-05.mpegts | Bin 0 -> 29516 bytes test/browser/media/hls/low.m3u8 | 18 + test/browser/media/hls/manifest.json | 269 + test/browser/media/hls/master.m3u8 | 8 + test/browser/media/hls/video-only.m3u8 | 4 + test/helpers/hls-control.js | 104 + test/hls-control.test.js | 221 + 55 files changed, 8678 insertions(+), 14 deletions(-) create mode 100644 refactor/baselines/hls-sdk.json create mode 100644 refactor/baselines/hls-validation.json create mode 100644 refactor/changes/2026-09-11-PKG-HLS-02-tests.md create mode 100644 refactor/hls-validation.md create mode 100644 scripts/generate-hls-fixture.mjs create mode 100644 test/browser/hls-control.spec.js create mode 100644 test/browser/media/hls/README.md create mode 100644 test/browser/media/hls/english-00.mpegts create mode 100644 test/browser/media/hls/english-01.mpegts create mode 100644 test/browser/media/hls/english-02.mpegts create mode 100644 test/browser/media/hls/english-03.mpegts create mode 100644 test/browser/media/hls/english-04.mpegts create mode 100644 test/browser/media/hls/english-05.mpegts create mode 100644 test/browser/media/hls/english-06.mpegts create mode 100644 test/browser/media/hls/english.m3u8 create mode 100644 test/browser/media/hls/french-00.mpegts create mode 100644 test/browser/media/hls/french-01.mpegts create mode 100644 test/browser/media/hls/french-02.mpegts create mode 100644 test/browser/media/hls/french-03.mpegts create mode 100644 test/browser/media/hls/french-04.mpegts create mode 100644 test/browser/media/hls/french-05.mpegts create mode 100644 test/browser/media/hls/french-06.mpegts create mode 100644 test/browser/media/hls/french.m3u8 create mode 100644 test/browser/media/hls/high-00.mpegts create mode 100644 test/browser/media/hls/high-01.mpegts create mode 100644 test/browser/media/hls/high-02.mpegts create mode 100644 test/browser/media/hls/high-03.mpegts create mode 100644 test/browser/media/hls/high-04.mpegts create mode 100644 test/browser/media/hls/high-05.mpegts create mode 100644 test/browser/media/hls/high.m3u8 create mode 100644 test/browser/media/hls/low-00.mpegts create mode 100644 test/browser/media/hls/low-01.mpegts create mode 100644 test/browser/media/hls/low-02.mpegts create mode 100644 test/browser/media/hls/low-03.mpegts create mode 100644 test/browser/media/hls/low-04.mpegts create mode 100644 test/browser/media/hls/low-05.mpegts create mode 100644 test/browser/media/hls/low.m3u8 create mode 100644 test/browser/media/hls/manifest.json create mode 100644 test/browser/media/hls/master.m3u8 create mode 100644 test/browser/media/hls/video-only.m3u8 create mode 100644 test/helpers/hls-control.js create mode 100644 test/hls-control.test.js diff --git a/.gitattributes b/.gitattributes index 93cbdaa8c..36f30df85 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,5 @@ * text=auto *.js text eol=lf +test/browser/media/hls/*.m3u8 text eol=lf +test/browser/media/hls/*.mpegts binary refactor/baselines/core-vendor/*.txt text eol=lf diff --git a/package.json b/package.json index c1076c72c..1000c8575 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "ci:build": "yarn build:types && yarn build all && yarn build:i18n && yarn build:ts && yarn build:docs && yarn test:imports", "test:imports": "node --test test/esm.test.js test/i18n.test.js test/ssr.test.js", "typecheck": "node scripts/typecheck.mjs", - "test:unit": "node --test test/playback.test.js test/dash-control.test.js test/public-behavior.test.js test/helpers.test.js test/chapter.test.js test/utils.test.js test/resource-scope.test.js test/instance-lifecycle.test.js test/options.test.js test/media-hosts.test.js test/plugins.test.js test/source.test.js test/playback-properties.test.js test/media-events.test.js test/template-resources.test.js test/core-vendor.test.js test/component-resources.test.js test/setting-model.test.js test/setting-layout.test.js test/setting-resources.test.js test/subtitle.test.js test/display-native.test.js test/display-video-fullscreen.test.js test/display-pip.test.js test/display-mini.test.js test/display-sizing.test.js test/display-orientation.test.js test/hotkey.test.js test/listener-registry.test.js test/global-events.test.js test/pointer-events.test.js test/gesture.test.js test/event-scheduling.test.js test/notice.test.js test/fast-forward.test.js test/auto-playback.test.js test/builtin-layers.test.js test/prompt-components.test.js test/screenshot.test.js test/thumbnails.test.js test/progress.test.js test/environment.test.js test/storage.test.js test/facade-properties.test.js test/dom-boundaries.test.js test/initialization.test.js test/entry.test.js test/accessibility-button.test.js test/accessibility-focus.test.js test/accessibility-slider.test.js", + "test:unit": "node --test test/playback.test.js test/dash-control.test.js test/hls-control.test.js test/public-behavior.test.js test/helpers.test.js test/chapter.test.js test/utils.test.js test/resource-scope.test.js test/instance-lifecycle.test.js test/options.test.js test/media-hosts.test.js test/plugins.test.js test/source.test.js test/playback-properties.test.js test/media-events.test.js test/template-resources.test.js test/core-vendor.test.js test/component-resources.test.js test/setting-model.test.js test/setting-layout.test.js test/setting-resources.test.js test/subtitle.test.js test/display-native.test.js test/display-video-fullscreen.test.js test/display-pip.test.js test/display-mini.test.js test/display-sizing.test.js test/display-orientation.test.js test/hotkey.test.js test/listener-registry.test.js test/global-events.test.js test/pointer-events.test.js test/gesture.test.js test/event-scheduling.test.js test/notice.test.js test/fast-forward.test.js test/auto-playback.test.js test/builtin-layers.test.js test/prompt-components.test.js test/screenshot.test.js test/thumbnails.test.js test/progress.test.js test/environment.test.js test/storage.test.js test/facade-properties.test.js test/dom-boundaries.test.js test/initialization.test.js test/entry.test.js test/accessibility-button.test.js test/accessibility-focus.test.js test/accessibility-slider.test.js", "test:coverage": "node --test test/coverage.test.js && node scripts/coverage.mjs", "test": "yarn test:node && yarn test:baseline", "test:browser": "playwright test", diff --git a/refactor/baselines/hls-sdk.json b/refactor/baselines/hls-sdk.json new file mode 100644 index 000000000..63ed86cdb --- /dev/null +++ b/refactor/baselines/hls-sdk.json @@ -0,0 +1,21 @@ +{ + "schemaVersion": 1, + "task": "PKG-HLS-02", + "capturedAt": "2026-09-11T15:36:11.802Z", + "metadataUrl": "https://registry.npmjs.org/hls.js/1.5.17", + "release": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "note": "Test-only pinned integration baseline from the existing example; selected member hashes plus whole archive integrity. No runtime dependency or complete supported version claim." +} diff --git a/refactor/baselines/hls-validation.json b/refactor/baselines/hls-validation.json new file mode 100644 index 000000000..b26b26e60 --- /dev/null +++ b/refactor/baselines/hls-validation.json @@ -0,0 +1,7485 @@ +{ + "schemaVersion": 1, + "task": "PKG-HLS-02", + "capturedAt": "2026-09-11T15:50:05.069Z", + "scope": "Pre-migration contracts and actual Hls.js baseline; not release approval or full browser support.", + "sources": { + "test/hls-control.test.js": "7618ac7ccf0e6fc9799f58642ffd7be8eb743195a3890857979f46a094c2c2c8", + "test/helpers/hls-control.js": "e6681e9cc0bc3ccbba6a119cd73ee2ec3cda39b3748a53b17f0be1a4e2fe41bd", + "test/browser/hls-control.spec.js": "5510978ead2262997e853cdf912c249093bdc3a508f0788589e4cc90e6b50288", + "scripts/generate-hls-fixture.mjs": "a204b5d82ce23b97187c66cc4e05b5a6e998998cb827fca3be80baee316b8ffd", + "test/browser/media/hls/manifest.json": "2453095f835627ccf513304f03df3682e952137abd248f9249386c211a4e9a0c", + "packages/artplayer-plugin-hls-control/src/index.js": "aa477db8743be2953a23776421edb68566d504c3278269eb13f6e907a4d5f2db" + }, + "unit": { + "file": "refactor/.cache/hls02-unit-final.log", + "sha256": "c651dea6cb39608226b790d75aa5b8b143a7452af203d0efdfdb52d94d35c872", + "passed": 45, + "failed": 0, + "skipped": 0 + }, + "browser": { + "path": "refactor/.cache/hls02-browser-mpegts.json", + "sha256": "09eff65dcc622d610c56fda18ac07e434ee6357c30865ebc21b2fdf4fc2c7664", + "stats": { + "startTime": "2026-09-11T15:46:27.856Z", + "duration": 29613.17, + "expected": 31, + "skipped": 14, + "unexpected": 0, + "flaky": 0 + }, + "cases": [ + { + "title": "SDK MSE availability is explicit; unavailable hosts report failure and clean up", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 558, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "SDK MSE availability is explicit; unavailable hosts report failure and clean up", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 1778, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "SDK MSE availability is explicit; unavailable hosts report failure and clean up", + "project": "webkit", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 734, + "errors": [], + "attachments": { + "hls-state": { + "supported": false, + "mediaSource": "undefined", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "mediaError", + "details": "manifestIncompatibleCodecsError", + "fatal": true + } + ], + "sdkEvents": [], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "26.6", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: real decoding, manual quality, Auto and audio", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 6017, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: failed manifest and actual SDK teardown", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 754, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "networkError", + "details": "manifestLoadError", + "fatal": true + } + ], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [ + "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + ], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: source switch drops SDK audio topology", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 912, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "MANIFEST_PARSED" + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / candidate HLS: real decoding, manual quality, Auto and audio", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 6100, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / candidate HLS: failed manifest and actual SDK teardown", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 981, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "networkError", + "details": "manifestLoadError", + "fatal": true + } + ], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [ + "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + ], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / candidate HLS: source switch drops SDK audio topology", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 914, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "MANIFEST_PARSED" + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: real Auto playback loses Auto label on update", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 794, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / published HLS: real decoding, manual quality, Auto and audio", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 6063, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / published HLS: failed manifest and actual SDK teardown", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 773, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "networkError", + "details": "manifestLoadError", + "fatal": true + } + ], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [ + "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + ], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / published HLS: source switch drops SDK audio topology", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 1282, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "MANIFEST_PARSED" + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / candidate HLS: real decoding, manual quality, Auto and audio", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 6111, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / candidate HLS: failed manifest and actual SDK teardown", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 788, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "networkError", + "details": "manifestLoadError", + "fatal": true + } + ], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [ + "Failed to load resource: the server responded with a status of 503 (Service Unavailable)" + ], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / candidate HLS: source switch drops SDK audio topology", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 910, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "MANIFEST_PARSED" + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / published HLS: real Auto playback loses Auto label on update", + "project": "chromium", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 837, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "153.0.8010.12", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: real decoding, manual quality, Auto and audio", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 4507, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: failed manifest and actual SDK teardown", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 989, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "networkError", + "details": "manifestLoadError", + "fatal": true + } + ], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: source switch drops SDK audio topology", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 1112, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "MANIFEST_PARSED" + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / candidate HLS: real decoding, manual quality, Auto and audio", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 4363, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / candidate HLS: failed manifest and actual SDK teardown", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 2035, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "networkError", + "details": "manifestLoadError", + "fatal": true + } + ], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / candidate HLS: source switch drops SDK audio topology", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 1083, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "MANIFEST_PARSED" + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: real Auto playback loses Auto label on update", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 1056, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / published HLS: real decoding, manual quality, Auto and audio", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 4357, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / published HLS: failed manifest and actual SDK teardown", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 975, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "networkError", + "details": "manifestLoadError", + "fatal": true + } + ], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / published HLS: source switch drops SDK audio topology", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 2100, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "MANIFEST_PARSED" + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / candidate HLS: real decoding, manual quality, Auto and audio", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 4619, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / candidate HLS: failed manifest and actual SDK teardown", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 1022, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "networkError", + "details": "manifestLoadError", + "fatal": true + } + ], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / candidate HLS: source switch drops SDK audio topology", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 1123, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + }, + { + "name": "MANIFEST_PARSED" + }, + { + "name": "LEVEL_SWITCHED", + "level": 0 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "candidate core / published HLS: real Auto playback loses Auto label on update", + "project": "firefox", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "passed", + "retry": 0, + "duration": 1034, + "errors": [], + "attachments": { + "hls-state": { + "supported": true, + "mediaSource": "function", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [], + "sdkEvents": [ + { + "name": "MANIFEST_PARSED" + }, + { + "name": "AUDIO_TRACK_SWITCHED", + "id": 0 + }, + { + "name": "LEVEL_SWITCHED", + "level": 1 + } + ], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "155.0", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=candidate", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0", + "media": null + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + }, + { + "title": "published core / published HLS: real decoding, manual quality, Auto and audio", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "published core / published HLS: failed manifest and actual SDK teardown", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "published core / published HLS: source switch drops SDK audio topology", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "published core / candidate HLS: real decoding, manual quality, Auto and audio", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "published core / candidate HLS: failed manifest and actual SDK teardown", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "published core / candidate HLS: source switch drops SDK audio topology", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "published core / published HLS: real Auto playback loses Auto label on update", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "candidate core / published HLS: real decoding, manual quality, Auto and audio", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "candidate core / published HLS: failed manifest and actual SDK teardown", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "candidate core / published HLS: source switch drops SDK audio topology", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "candidate core / candidate HLS: real decoding, manual quality, Auto and audio", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "candidate core / candidate HLS: failed manifest and actual SDK teardown", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "candidate core / candidate HLS: source switch drops SDK audio topology", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + }, + { + "title": "candidate core / published HLS: real Auto playback loses Auto label on update", + "project": "webkit", + "expectedStatus": "skipped", + "annotations": [ + { + "type": "skip", + "description": "Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval", + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "line": 117, + "column": 8 + } + } + ], + "results": [ + { + "status": "skipped", + "retry": 0, + "duration": 0, + "errors": [], + "attachments": {} + } + ] + } + ], + "inputs": { + "6c6f144eef4525cd460df96c95d9e8d7fa3e431f4e9c2a7bc075d74da7ede5fd": { + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "plugin": { + "name": "artplayer-plugin-hls-control", + "version": "1.1.0", + "metadataUrl": "https://registry.npmjs.org/artplayer-plugin-hls-control/1.1.0", + "tarball": "https://registry.npmjs.org/artplayer-plugin-hls-control/-/artplayer-plugin-hls-control-1.1.0.tgz", + "integrity": "sha512-lWN5oUOWDorWFHdzKcmy9Z8eHcf5f5EcUGDrxBsZBX7aEL5dGRlHPQ5+wqQEizr38D9PYPfTI/nCyun2yFopEw==", + "sha256": "598c354d78d3cb77965136fa61dfc0f94cdea6906a91a30781c1acef2b0c3e8b", + "archiveBytes": 3192, + "registryGitHead": "daf133b22630b4a0eecfa3336bbddab0e9119d96", + "files": { + "package/README.md": "42bd00dca467b581f6b3e8399ad1a416d68edcc52d42e6cb51b66f1749694556", + "package/dist/artplayer-plugin-hls-control.js": "7a6ce18a0b16f61f6149e0ea77efbb6e0503f997d39afe84271b59e366759e6d", + "package/dist/artplayer-plugin-hls-control.legacy.js": "893a3de27f9ed02b4b61f03732aec03bfcaf50d02c9beb15cc8a5767ef9121a0", + "package/dist/artplayer-plugin-hls-control.mjs": "85c4de4940e031d835b4de3ccf68af449d10aec4f630c89ecaf62f5503348931", + "package/package.json": "710ec2a27dc71f7254e7a1d2eb7cff3f56a6e23811047ac97356f1b18c8ac8b5", + "package/types/artplayer-plugin-hls-control.d.ts": "7dd8fdf556932e9cf6140b7513c05155cad6d486e2484bf06c6d48f6e823832a" + }, + "manifest": { + "name": "artplayer-plugin-hls-control", + "version": "1.1.0", + "description": "Hls control plugin for ArtPlayer", + "author": "Harvey Zhao ", + "license": "MIT", + "homepage": "https://artplayer.org", + "repository": { + "type": "git", + "url": "git+https://github.com/zhw2590582/ArtPlayer.git" + }, + "bugs": { + "url": "https://github.com/zhw2590582/ArtPlayer/issues" + }, + "keywords": [ + "html5", + "video", + "player" + ], + "exports": { + ".": { + "types": "./types/artplayer-plugin-hls-control.d.ts", + "import": "./dist/artplayer-plugin-hls-control.mjs", + "require": "./dist/artplayer-plugin-hls-control.js" + }, + "./legacy": { + "types": "./types/artplayer-plugin-hls-control.d.ts", + "import": "./dist/artplayer-plugin-hls-control.legacy.js", + "require": "./dist/artplayer-plugin-hls-control.legacy.js" + } + }, + "main": "./dist/artplayer-plugin-hls-control.js", + "module": "./dist/artplayer-plugin-hls-control.mjs", + "types": "./types/artplayer-plugin-hls-control.d.ts", + "legacy": "./dist/artplayer-plugin-hls-control.legacy.js", + "browserslist": "last 1 Chrome version" + } + }, + "sourceSHA256": "2e14b9a19ea46eb90dd86922d73ff0e2606457955636211a543b3ac21e72b9f7", + "media": { + "kind": "generated-hls-media", + "version": "ffmpeg version 2025-11-12-git-6cdd2cbe32-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers", + "duration": 12, + "commands": [ + [ + "-hide_banner", + "-loglevel", + "error", + "-n", + "-f", + "lavfi", + "-i", + "testsrc2=size=160x90:rate=24", + "-t", + "12", + "-an", + "-c:v", + "libx264", + "-pix_fmt", + "yuv420p", + "-profile:v", + "baseline", + "-level:v", + "3.0", + "-g", + "48", + "-keyint_min", + "48", + "-sc_threshold", + "0", + "-crf", + "28", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_segment_filename", + "low-%02d.mpegts", + "low.m3u8" + ], + [ + "-hide_banner", + "-loglevel", + "error", + "-n", + "-f", + "lavfi", + "-i", + "testsrc2=size=320x180:rate=24", + "-t", + "12", + "-an", + "-c:v", + "libx264", + "-pix_fmt", + "yuv420p", + "-profile:v", + "baseline", + "-level:v", + "3.0", + "-g", + "48", + "-keyint_min", + "48", + "-sc_threshold", + "0", + "-crf", + "28", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_segment_filename", + "high-%02d.mpegts", + "high.m3u8" + ], + [ + "-hide_banner", + "-loglevel", + "error", + "-n", + "-f", + "lavfi", + "-i", + "sine=frequency=440:sample_rate=48000", + "-t", + "12", + "-vn", + "-c:a", + "aac", + "-b:a", + "48k", + "-ac", + "2", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_segment_filename", + "english-%02d.mpegts", + "english.m3u8" + ], + [ + "-hide_banner", + "-loglevel", + "error", + "-n", + "-f", + "lavfi", + "-i", + "sine=frequency=880:sample_rate=48000", + "-t", + "12", + "-vn", + "-c:a", + "aac", + "-b:a", + "48k", + "-ac", + "2", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_segment_filename", + "french-%02d.mpegts", + "french.m3u8" + ] + ], + "files": { + "english-00.mpegts": { + "sha256": "cc599f7c270385e85c28f710a34c5bd90b09d4d27adb3b1e6af3de65584b8207", + "bytes": 13912 + }, + "english-01.mpegts": { + "sha256": "01b17c28defc8a8ebf4978c5236eb759d80521a1cb840898095c35dac420cec5", + "bytes": 14100 + }, + "english-02.mpegts": { + "sha256": "90751b8b5abedd6b2f2e4eb83ccd609098ec7f2901163aaebf977cb9a11c46eb", + "bytes": 14100 + }, + "english-03.mpegts": { + "sha256": "9b1d86b7b261df66dbdace4ef1e846796cd710ffb72b22fc69532c1fe7d1c55e", + "bytes": 13912 + }, + "english-04.mpegts": { + "sha256": "dbfddd4f997942dd0b912f4c8bdbc5c11ee2a3fc51ac67df48d3aed2756715b9", + "bytes": 14100 + }, + "english-05.mpegts": { + "sha256": "9b53790d4f50f172852b7d4ff51bdd4bedd39e4c7a1efbfe734edf7b9a68a533", + "bytes": 14100 + }, + "english-06.mpegts": { + "sha256": "50baaa5e9fe7ca49b22c4d0817c44103b3edc763aee7f1b17d22f796d4189d4a", + "bytes": 752 + }, + "english.m3u8": { + "sha256": "5aae9d117d458f65f7febae68555ea4e48b2055b4cfb123fb919e385a1edda21", + "bytes": 365 + }, + "french-00.mpegts": { + "sha256": "7278acd094bc7caeeeea424a2c11ac4285fc45a8becb6c8ec55068f295ae35cd", + "bytes": 13912 + }, + "french-01.mpegts": { + "sha256": "e9464d109e36a53d7f151442b544d47ce79324bbaa805e0a98f171621c9c7a13", + "bytes": 14100 + }, + "french-02.mpegts": { + "sha256": "3ac48cab6aac942950b59f79ac6bd950dcae425f14821b83b1b5bb72d6815eb0", + "bytes": 14100 + }, + "french-03.mpegts": { + "sha256": "906f2d8b1f29bb7d57240b145563bab975d8f7dfff78cebd1505b6d2a3feb43b", + "bytes": 13912 + }, + "french-04.mpegts": { + "sha256": "cbf82876118d41af254bdef51f6cd08d842e8c6edf53250667fad2b8088e3601", + "bytes": 14100 + }, + "french-05.mpegts": { + "sha256": "a91e564ec54d845837217c45b8e25b08fe208f2b5f97562f513baabd515427d9", + "bytes": 14100 + }, + "french-06.mpegts": { + "sha256": "2c8edc11b06bacf1e62c4db67594ce187aa93e0241012011ebcf587b64ccff46", + "bytes": 752 + }, + "french.m3u8": { + "sha256": "6f7fb3eacb944597fa3105cb6d708eac3a8dc413e1706a11b6fb0e631214634e", + "bytes": 358 + }, + "high-00.mpegts": { + "sha256": "c5a8faac85b0594818255117696dce43fda6b363df40e2f3ffc453bd236cc833", + "bytes": 45308 + }, + "high-01.mpegts": { + "sha256": "5714640c3f17d86c56036453dc17d45f871af63b461318c43527af3482f8661c", + "bytes": 52264 + }, + "high-02.mpegts": { + "sha256": "fea1cbfb199bc867a322c7a646d43594a1d0d1d23fa0bcb6e770f2669b489440", + "bytes": 48128 + }, + "high-03.mpegts": { + "sha256": "4a74a28e7ad6bc626358e32365a0b07df1da82c92753e28032983e22404958b5", + "bytes": 54144 + }, + "high-04.mpegts": { + "sha256": "d04889b3b996d3e79c12bc297f9577690d3ae4f4172cdc0484b584954dab789c", + "bytes": 47376 + }, + "high-05.mpegts": { + "sha256": "36ee0c64b8c3637d0e2282c611e9250650ac493440095fc2efbe9de1c54add15", + "bytes": 48128 + }, + "high.m3u8": { + "sha256": "672c0e8b99242be05b16fc747a00715b2c25579b1ecc1623c0579fa34f0cb11d", + "bytes": 311 + }, + "low-00.mpegts": { + "sha256": "cbd62f5f4641cbe188a15640139bea393b5927fce600ff7513ef9ade9b33fb62", + "bytes": 28952 + }, + "low-01.mpegts": { + "sha256": "f7821fba38c63f5d80daef21cdd3430880bdc9fd5f5adfa939ed6481106c2507", + "bytes": 32900 + }, + "low-02.mpegts": { + "sha256": "3dc93f9f0fd065678b01fc6c568c12350e9ab0b324d1e0fa0e9f77787da7e7d2", + "bytes": 30268 + }, + "low-03.mpegts": { + "sha256": "d94c8913f7fde98161550041287529b90a58d537d6083d4382540c5fce0b430b", + "bytes": 32336 + }, + "low-04.mpegts": { + "sha256": "11596c59b547c2ff23bbba1f70e15f061a3e87bbdc1f4f59daa9b5279a6003af", + "bytes": 29704 + }, + "low-05.mpegts": { + "sha256": "5c6ec25a69fdad73a23cfbc34f0f3c6d8abe44592650c92fa9110a38d6bd9e45", + "bytes": 29516 + }, + "low.m3u8": { + "sha256": "404a8d868ed2af3598269aee89caba0563c2805dac223fe4c00c9a9eda73554f", + "bytes": 305 + }, + "master.m3u8": { + "sha256": "f226bd38f3c76714ada2b5a6866ad1cb39b041023e4a18d971d175f26f917e38", + "bytes": 470 + }, + "video-only.m3u8": { + "sha256": "3d7bb9069f6218191dc65745389bf1ab0ba6d5ed66cbd14e2cf30211913da3fc", + "bytes": 108 + } + } + }, + "limitations": [ + "SDK worker disabled", + "local deterministic media", + "source candidate, not installed package", + "no physical device certification" + ] + } + } + }, + "initialFailure": { + "path": "refactor/.cache/hls02-three-engines-first.json", + "sha256": "ef2c6ac568eb03e8acfe1f7c625ffad3174bf609987f1b677750240594a3e268", + "stats": { + "startTime": "2026-09-11T15:40:12.658Z", + "duration": 84042.759, + "expected": 28, + "skipped": 0, + "unexpected": 14, + "flaky": 0 + }, + "cases": [ + { + "title": "published core / published HLS: real decoding, manual quality, Auto and audio", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 82 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 80 | test(`${core} core / ${plugin} HLS: real decoding, manual quality, Auto and audio`, async ({ page }, testInfo) => {\n 81 | await openHls(page, core, plugin, testInfo)\n> 82 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 83 | await page.click('#play')\n 84 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.3)\n 85 | const initial = await page.evaluate(() => ({\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:82:72" + } + ] + }, + { + "title": "published core / published HLS: failed manifest and actual SDK teardown", + "status": "timedOut", + "errors": [ + { + "message": "\u001b[31mTest timeout of 20000ms exceeded.\u001b[39m" + }, + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 18, + "line": 137 + }, + "message": "Error: page.evaluate: Test timeout of 20000ms exceeded.\n\n 135 | await expect.poll(() => page.evaluate(() => window.sdkErrors.filter(error => error.fatal))).toEqual([{ type: 'networkError', details: 'manifestLoadError', fatal: true }])\n 136 | expect(await page.locator('.art-control-hls-quality').count()).toBe(0)\n> 137 | await page.evaluate(() => window.art.switchUrl('/hls-fixture/master.m3u8'))\n | ^\n 138 | await expect.poll(() => page.evaluate(() => window.art.hls.levels.length)).toBe(2)\n 139 | await page.click('#play')\n 140 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:137:18" + } + ] + }, + { + "title": "published core / published HLS: source switch drops SDK audio topology", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 150 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 148 | test(`${core} core / ${plugin} HLS: source switch drops SDK audio topology`, async ({ page }, testInfo) => {\n 149 | await openHls(page, core, plugin, testInfo)\n> 150 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 151 | await page.click('#play')\n 152 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n 153 | await page.evaluate(() => {\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:150:72" + } + ] + }, + { + "title": "published core / candidate HLS: real decoding, manual quality, Auto and audio", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 82 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 80 | test(`${core} core / ${plugin} HLS: real decoding, manual quality, Auto and audio`, async ({ page }, testInfo) => {\n 81 | await openHls(page, core, plugin, testInfo)\n> 82 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 83 | await page.click('#play')\n 84 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.3)\n 85 | const initial = await page.evaluate(() => ({\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:82:72" + } + ] + }, + { + "title": "published core / candidate HLS: failed manifest and actual SDK teardown", + "status": "timedOut", + "errors": [ + { + "message": "\u001b[31mTest timeout of 20000ms exceeded.\u001b[39m" + }, + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 18, + "line": 137 + }, + "message": "Error: page.evaluate: Test timeout of 20000ms exceeded.\n\n 135 | await expect.poll(() => page.evaluate(() => window.sdkErrors.filter(error => error.fatal))).toEqual([{ type: 'networkError', details: 'manifestLoadError', fatal: true }])\n 136 | expect(await page.locator('.art-control-hls-quality').count()).toBe(0)\n> 137 | await page.evaluate(() => window.art.switchUrl('/hls-fixture/master.m3u8'))\n | ^\n 138 | await expect.poll(() => page.evaluate(() => window.art.hls.levels.length)).toBe(2)\n 139 | await page.click('#play')\n 140 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:137:18" + } + ] + }, + { + "title": "published core / candidate HLS: source switch drops SDK audio topology", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 150 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 148 | test(`${core} core / ${plugin} HLS: source switch drops SDK audio topology`, async ({ page }, testInfo) => {\n 149 | await openHls(page, core, plugin, testInfo)\n> 150 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 151 | await page.click('#play')\n 152 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n 153 | await page.evaluate(() => {\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:150:72" + } + ] + }, + { + "title": "published core / published HLS: real Auto playback loses Auto label on update", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 70, + "line": 171 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 169 | test(`${core} core / published HLS: real Auto playback loses Auto label on update`, async ({ page }, testInfo) => {\n 170 | await openHls(page, core, 'published', testInfo)\n> 171 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 172 | await page.click('#play')\n 173 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n 174 | expect(await page.evaluate(() => window.art.hls.autoLevelEnabled)).toBe(true)\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:171:70" + } + ] + }, + { + "title": "candidate core / published HLS: real decoding, manual quality, Auto and audio", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 82 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 80 | test(`${core} core / ${plugin} HLS: real decoding, manual quality, Auto and audio`, async ({ page }, testInfo) => {\n 81 | await openHls(page, core, plugin, testInfo)\n> 82 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 83 | await page.click('#play')\n 84 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.3)\n 85 | const initial = await page.evaluate(() => ({\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:82:72" + } + ] + }, + { + "title": "candidate core / published HLS: failed manifest and actual SDK teardown", + "status": "timedOut", + "errors": [ + { + "message": "\u001b[31mTest timeout of 20000ms exceeded.\u001b[39m" + }, + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 18, + "line": 137 + }, + "message": "Error: page.evaluate: Test timeout of 20000ms exceeded.\n\n 135 | await expect.poll(() => page.evaluate(() => window.sdkErrors.filter(error => error.fatal))).toEqual([{ type: 'networkError', details: 'manifestLoadError', fatal: true }])\n 136 | expect(await page.locator('.art-control-hls-quality').count()).toBe(0)\n> 137 | await page.evaluate(() => window.art.switchUrl('/hls-fixture/master.m3u8'))\n | ^\n 138 | await expect.poll(() => page.evaluate(() => window.art.hls.levels.length)).toBe(2)\n 139 | await page.click('#play')\n 140 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:137:18" + } + ] + }, + { + "title": "candidate core / published HLS: source switch drops SDK audio topology", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 150 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 148 | test(`${core} core / ${plugin} HLS: source switch drops SDK audio topology`, async ({ page }, testInfo) => {\n 149 | await openHls(page, core, plugin, testInfo)\n> 150 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 151 | await page.click('#play')\n 152 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n 153 | await page.evaluate(() => {\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:150:72" + } + ] + }, + { + "title": "candidate core / candidate HLS: real decoding, manual quality, Auto and audio", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 82 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 80 | test(`${core} core / ${plugin} HLS: real decoding, manual quality, Auto and audio`, async ({ page }, testInfo) => {\n 81 | await openHls(page, core, plugin, testInfo)\n> 82 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 83 | await page.click('#play')\n 84 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.3)\n 85 | const initial = await page.evaluate(() => ({\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:82:72" + } + ] + }, + { + "title": "candidate core / candidate HLS: failed manifest and actual SDK teardown", + "status": "timedOut", + "errors": [ + { + "message": "\u001b[31mTest timeout of 20000ms exceeded.\u001b[39m" + }, + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 18, + "line": 137 + }, + "message": "Error: page.evaluate: Test timeout of 20000ms exceeded.\n\n 135 | await expect.poll(() => page.evaluate(() => window.sdkErrors.filter(error => error.fatal))).toEqual([{ type: 'networkError', details: 'manifestLoadError', fatal: true }])\n 136 | expect(await page.locator('.art-control-hls-quality').count()).toBe(0)\n> 137 | await page.evaluate(() => window.art.switchUrl('/hls-fixture/master.m3u8'))\n | ^\n 138 | await expect.poll(() => page.evaluate(() => window.art.hls.levels.length)).toBe(2)\n 139 | await page.click('#play')\n 140 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:137:18" + } + ] + }, + { + "title": "candidate core / candidate HLS: source switch drops SDK audio topology", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 150 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 148 | test(`${core} core / ${plugin} HLS: source switch drops SDK audio topology`, async ({ page }, testInfo) => {\n 149 | await openHls(page, core, plugin, testInfo)\n> 150 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 151 | await page.click('#play')\n 152 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n 153 | await page.evaluate(() => {\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:150:72" + } + ] + }, + { + "title": "candidate core / published HLS: real Auto playback loses Auto label on update", + "status": "failed", + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 70, + "line": 171 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 169 | test(`${core} core / published HLS: real Auto playback loses Auto label on update`, async ({ page }, testInfo) => {\n 170 | await openHls(page, core, 'published', testInfo)\n> 171 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 172 | await page.click('#play')\n 173 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2)\n 174 | expect(await page.evaluate(() => window.art.hls.autoLevelEnabled)).toBe(true)\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:171:70" + } + ] + } + ] + }, + "webkitDiagnostic": { + "path": "refactor/.cache/hls02-webkit-diagnostic.json", + "sha256": "7acb4cff005f476537055544fe961a5678952017a5cb2e9d8777242732ff7aec", + "stats": { + "startTime": "2026-09-11T15:43:06.085Z", + "duration": 9960.709, + "expected": 0, + "skipped": 0, + "unexpected": 1, + "flaky": 0 + }, + "cases": [ + { + "title": "published core / published HLS: real decoding, manual quality, Auto and audio", + "project": "webkit", + "expectedStatus": "passed", + "annotations": [], + "results": [ + { + "status": "failed", + "retry": 0, + "duration": 6698, + "errors": [ + { + "location": { + "file": "D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js", + "column": 72, + "line": 100 + }, + "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 98 | test(`${core} core / ${plugin} HLS: real decoding, manual quality, Auto and audio`, async ({ page }, testInfo) => {\n 99 | await openHls(page, core, plugin, testInfo)\n> 100 | await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true)\n | ^\n 101 | await page.click('#play')\n 102 | await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.3)\n 103 | const initial = await page.evaluate(() => ({\n at D:\\github\\ArtPlayer\\test\\browser\\hls-control.spec.js:100:72" + } + ], + "attachments": { + "hls-state": { + "supported": false, + "mediaSource": "undefined", + "managedMediaSource": "undefined", + "video": "", + "readyState": 0, + "networkState": 0, + "sdkErrors": [ + { + "type": "mediaError", + "details": "manifestIncompatibleCodecsError", + "fatal": true + } + ], + "sdkEvents": [], + "levels": [], + "tracks": [] + }, + "browser-evidence": { + "browser": "26.6", + "platform": "win32", + "manifest": { + "kind": "artplayer-browser-test", + "resources": { + "/candidate/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744 + }, + "/compiled/artplayer.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/uncompiled/artplayer/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer\\src\\index.ts" + }, + "sha256": "32f3dc22e296dcc569dc1227f0b0cad92bd0dd7e74d747e19759ac5997443e92", + "bytes": 376744, + "aliasOf": "/candidate/artplayer.js" + }, + "/candidate/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433 + }, + "/compiled/artplayer-plugin-chapter.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/uncompiled/artplayer-plugin-chapter/index.js": { + "source": { + "kind": "workspace-build", + "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" + }, + "sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230", + "bytes": 8433, + "aliasOf": "/candidate/artplayer-plugin-chapter.js" + }, + "/published/artplayer.js": { + "source": { + "kind": "npm-release", + "version": "5.4.0", + "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", + "member": "package/dist/artplayer.js" + }, + "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", + "bytes": 134037 + }, + "/published/artplayer-plugin-chapter.js": { + "source": { + "kind": "npm-release", + "version": "1.1.0", + "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", + "member": "package/dist/artplayer-plugin-chapter.js" + }, + "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", + "bytes": 4973 + }, + "/test/pattern.mp4": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.mp4" + }, + "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", + "bytes": 251538 + }, + "/test/pattern.webm": { + "source": { + "kind": "generated-media", + "file": "test/browser/media/pattern.webm" + }, + "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", + "bytes": 162073 + }, + "/test/declaration-cues.vtt": { + "source": { + "kind": "test-subtitles", + "file": "test/browser/media/declaration-cues.vtt" + }, + "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", + "bytes": 54 + }, + "/test/thumbnail-grid.svg": { + "source": { + "kind": "test-thumbnail-grid", + "file": "test/browser/media/thumbnail-grid.svg" + }, + "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", + "bytes": 14969 + }, + "/test/legacy-safe-area.js": { + "source": { + "kind": "frozen-own-source", + "file": "test/helpers/legacy-safe-area.js", + "commit": "ccf77c4e" + }, + "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", + "bytes": 795 + }, + "/assets/sample/video.mp4": { + "source": { + "kind": "docs-media", + "file": "docs/assets/sample/video.mp4" + }, + "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", + "bytes": 5818706 + }, + "/test/performance.js": { + "source": { + "kind": "adapted-baseline-fixture", + "file": "refactor/fixtures/performance.js" + }, + "sha256": "2318f39bdb5f3a3348d755cb4335907ae4adc944be3a435839c1bba201e81500", + "bytes": 8994 + } + } + }, + "state": { + "url": "http://127.0.0.1:8084/test/player.html?core=published", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15", + "media": { + "source": "", + "width": 0, + "height": 0, + "duration": null, + "currentTime": 0 + } + }, + "errors": [], + "consoleErrors": [], + "failedRequests": [] + } + } + } + ] + } + ], + "inputs": { + "7c958222dffe389885aa095db0470ddbe95f883a6dc80102f49c5530f55dbdba": { + "sdk": { + "name": "hls.js", + "version": "1.5.17", + "tarball": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "sha256": "8f9e60001992f59dbfb1dbc397e145743c41bb6dde233ec8a7974013c8a031fe", + "files": { + "package/package.json": "f2172b9942a23ffb46edd4af815cf1ea161db088e7f63dc518d30e55c95d6ae9", + "package/LICENSE": "ca8773cf798c7ed997d4dd7c8e23c348699f8d5b7462636694cc14de6cda12db", + "package/dist/hls.min.js": "484054e8cd03d3f6d1781fb7f402bdc318d8a4c527f933a95c624e27cc9a9470", + "package/src/hls.ts": "b3d3f797669e89bc8d05d2de2aae243ae110811d6738948f173d789cc1ac1f2d", + "package/src/controller/audio-track-controller.ts": "ff34f3cb29b66aa5fcba87758bb20d129b052a053808c150ce779e0ceb1e4626" + } + }, + "plugin": { + "name": "artplayer-plugin-hls-control", + "version": "1.1.0", + "metadataUrl": "https://registry.npmjs.org/artplayer-plugin-hls-control/1.1.0", + "tarball": "https://registry.npmjs.org/artplayer-plugin-hls-control/-/artplayer-plugin-hls-control-1.1.0.tgz", + "integrity": "sha512-lWN5oUOWDorWFHdzKcmy9Z8eHcf5f5EcUGDrxBsZBX7aEL5dGRlHPQ5+wqQEizr38D9PYPfTI/nCyun2yFopEw==", + "sha256": "598c354d78d3cb77965136fa61dfc0f94cdea6906a91a30781c1acef2b0c3e8b", + "archiveBytes": 3192, + "registryGitHead": "daf133b22630b4a0eecfa3336bbddab0e9119d96", + "files": { + "package/README.md": "42bd00dca467b581f6b3e8399ad1a416d68edcc52d42e6cb51b66f1749694556", + "package/dist/artplayer-plugin-hls-control.js": "7a6ce18a0b16f61f6149e0ea77efbb6e0503f997d39afe84271b59e366759e6d", + "package/dist/artplayer-plugin-hls-control.legacy.js": "893a3de27f9ed02b4b61f03732aec03bfcaf50d02c9beb15cc8a5767ef9121a0", + "package/dist/artplayer-plugin-hls-control.mjs": "85c4de4940e031d835b4de3ccf68af449d10aec4f630c89ecaf62f5503348931", + "package/package.json": "710ec2a27dc71f7254e7a1d2eb7cff3f56a6e23811047ac97356f1b18c8ac8b5", + "package/types/artplayer-plugin-hls-control.d.ts": "7dd8fdf556932e9cf6140b7513c05155cad6d486e2484bf06c6d48f6e823832a" + }, + "manifest": { + "name": "artplayer-plugin-hls-control", + "version": "1.1.0", + "description": "Hls control plugin for ArtPlayer", + "author": "Harvey Zhao ", + "license": "MIT", + "homepage": "https://artplayer.org", + "repository": { + "type": "git", + "url": "git+https://github.com/zhw2590582/ArtPlayer.git" + }, + "bugs": { + "url": "https://github.com/zhw2590582/ArtPlayer/issues" + }, + "keywords": [ + "html5", + "video", + "player" + ], + "exports": { + ".": { + "types": "./types/artplayer-plugin-hls-control.d.ts", + "import": "./dist/artplayer-plugin-hls-control.mjs", + "require": "./dist/artplayer-plugin-hls-control.js" + }, + "./legacy": { + "types": "./types/artplayer-plugin-hls-control.d.ts", + "import": "./dist/artplayer-plugin-hls-control.legacy.js", + "require": "./dist/artplayer-plugin-hls-control.legacy.js" + } + }, + "main": "./dist/artplayer-plugin-hls-control.js", + "module": "./dist/artplayer-plugin-hls-control.mjs", + "types": "./types/artplayer-plugin-hls-control.d.ts", + "legacy": "./dist/artplayer-plugin-hls-control.legacy.js", + "browserslist": "last 1 Chrome version" + } + }, + "sourceSHA256": "2e14b9a19ea46eb90dd86922d73ff0e2606457955636211a543b3ac21e72b9f7", + "media": { + "kind": "generated-hls-media", + "version": "ffmpeg version 2025-11-12-git-6cdd2cbe32-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers", + "duration": 12, + "commands": [ + [ + "-hide_banner", + "-loglevel", + "error", + "-n", + "-f", + "lavfi", + "-i", + "testsrc2=size=160x90:rate=24", + "-t", + "12", + "-an", + "-c:v", + "libx264", + "-pix_fmt", + "yuv420p", + "-profile:v", + "baseline", + "-level:v", + "3.0", + "-g", + "48", + "-keyint_min", + "48", + "-sc_threshold", + "0", + "-crf", + "28", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_segment_filename", + "low-%02d.ts", + "low.m3u8" + ], + [ + "-hide_banner", + "-loglevel", + "error", + "-n", + "-f", + "lavfi", + "-i", + "testsrc2=size=320x180:rate=24", + "-t", + "12", + "-an", + "-c:v", + "libx264", + "-pix_fmt", + "yuv420p", + "-profile:v", + "baseline", + "-level:v", + "3.0", + "-g", + "48", + "-keyint_min", + "48", + "-sc_threshold", + "0", + "-crf", + "28", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_segment_filename", + "high-%02d.ts", + "high.m3u8" + ], + [ + "-hide_banner", + "-loglevel", + "error", + "-n", + "-f", + "lavfi", + "-i", + "sine=frequency=440:sample_rate=48000", + "-t", + "12", + "-vn", + "-c:a", + "aac", + "-b:a", + "48k", + "-ac", + "2", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_segment_filename", + "english-%02d.ts", + "english.m3u8" + ], + [ + "-hide_banner", + "-loglevel", + "error", + "-n", + "-f", + "lavfi", + "-i", + "sine=frequency=880:sample_rate=48000", + "-t", + "12", + "-vn", + "-c:a", + "aac", + "-b:a", + "48k", + "-ac", + "2", + "-f", + "hls", + "-hls_time", + "2", + "-hls_playlist_type", + "vod", + "-hls_segment_filename", + "french-%02d.ts", + "french.m3u8" + ] + ], + "files": { + "english-00.ts": { + "sha256": "cc599f7c270385e85c28f710a34c5bd90b09d4d27adb3b1e6af3de65584b8207", + "bytes": 13912 + }, + "english-01.ts": { + "sha256": "01b17c28defc8a8ebf4978c5236eb759d80521a1cb840898095c35dac420cec5", + "bytes": 14100 + }, + "english-02.ts": { + "sha256": "90751b8b5abedd6b2f2e4eb83ccd609098ec7f2901163aaebf977cb9a11c46eb", + "bytes": 14100 + }, + "english-03.ts": { + "sha256": "9b1d86b7b261df66dbdace4ef1e846796cd710ffb72b22fc69532c1fe7d1c55e", + "bytes": 13912 + }, + "english-04.ts": { + "sha256": "dbfddd4f997942dd0b912f4c8bdbc5c11ee2a3fc51ac67df48d3aed2756715b9", + "bytes": 14100 + }, + "english-05.ts": { + "sha256": "9b53790d4f50f172852b7d4ff51bdd4bedd39e4c7a1efbfe734edf7b9a68a533", + "bytes": 14100 + }, + "english-06.ts": { + "sha256": "50baaa5e9fe7ca49b22c4d0817c44103b3edc763aee7f1b17d22f796d4189d4a", + "bytes": 752 + }, + "english.m3u8": { + "sha256": "ff3842032f6c04161346752c3d376b269f29374e7d5844be8b3803ec9ea78f68", + "bytes": 337 + }, + "french-00.ts": { + "sha256": "7278acd094bc7caeeeea424a2c11ac4285fc45a8becb6c8ec55068f295ae35cd", + "bytes": 13912 + }, + "french-01.ts": { + "sha256": "e9464d109e36a53d7f151442b544d47ce79324bbaa805e0a98f171621c9c7a13", + "bytes": 14100 + }, + "french-02.ts": { + "sha256": "3ac48cab6aac942950b59f79ac6bd950dcae425f14821b83b1b5bb72d6815eb0", + "bytes": 14100 + }, + "french-03.ts": { + "sha256": "906f2d8b1f29bb7d57240b145563bab975d8f7dfff78cebd1505b6d2a3feb43b", + "bytes": 13912 + }, + "french-04.ts": { + "sha256": "cbf82876118d41af254bdef51f6cd08d842e8c6edf53250667fad2b8088e3601", + "bytes": 14100 + }, + "french-05.ts": { + "sha256": "a91e564ec54d845837217c45b8e25b08fe208f2b5f97562f513baabd515427d9", + "bytes": 14100 + }, + "french-06.ts": { + "sha256": "2c8edc11b06bacf1e62c4db67594ce187aa93e0241012011ebcf587b64ccff46", + "bytes": 752 + }, + "french.m3u8": { + "sha256": "12da60a3b26e5bc3912fd216fe13f3bb6099388f8799729543091bfda1834860", + "bytes": 330 + }, + "high-00.ts": { + "sha256": "c5a8faac85b0594818255117696dce43fda6b363df40e2f3ffc453bd236cc833", + "bytes": 45308 + }, + "high-01.ts": { + "sha256": "5714640c3f17d86c56036453dc17d45f871af63b461318c43527af3482f8661c", + "bytes": 52264 + }, + "high-02.ts": { + "sha256": "fea1cbfb199bc867a322c7a646d43594a1d0d1d23fa0bcb6e770f2669b489440", + "bytes": 48128 + }, + "high-03.ts": { + "sha256": "4a74a28e7ad6bc626358e32365a0b07df1da82c92753e28032983e22404958b5", + "bytes": 54144 + }, + "high-04.ts": { + "sha256": "d04889b3b996d3e79c12bc297f9577690d3ae4f4172cdc0484b584954dab789c", + "bytes": 47376 + }, + "high-05.ts": { + "sha256": "36ee0c64b8c3637d0e2282c611e9250650ac493440095fc2efbe9de1c54add15", + "bytes": 48128 + }, + "high.m3u8": { + "sha256": "75bc79b87d2d7e4d6e30412d4016d878ecb270d91ceeb17c9b317b06f0f9bdba", + "bytes": 287 + }, + "low-00.ts": { + "sha256": "cbd62f5f4641cbe188a15640139bea393b5927fce600ff7513ef9ade9b33fb62", + "bytes": 28952 + }, + "low-01.ts": { + "sha256": "f7821fba38c63f5d80daef21cdd3430880bdc9fd5f5adfa939ed6481106c2507", + "bytes": 32900 + }, + "low-02.ts": { + "sha256": "3dc93f9f0fd065678b01fc6c568c12350e9ab0b324d1e0fa0e9f77787da7e7d2", + "bytes": 30268 + }, + "low-03.ts": { + "sha256": "d94c8913f7fde98161550041287529b90a58d537d6083d4382540c5fce0b430b", + "bytes": 32336 + }, + "low-04.ts": { + "sha256": "11596c59b547c2ff23bbba1f70e15f061a3e87bbdc1f4f59daa9b5279a6003af", + "bytes": 29704 + }, + "low-05.ts": { + "sha256": "5c6ec25a69fdad73a23cfbc34f0f3c6d8abe44592650c92fa9110a38d6bd9e45", + "bytes": 29516 + }, + "low.m3u8": { + "sha256": "7fe24321fbff3eae203a97ad0625d9dadb57e6282df59dfc7f6be2bc6f367169", + "bytes": 281 + }, + "master.m3u8": { + "sha256": "f226bd38f3c76714ada2b5a6866ad1cb39b041023e4a18d971d175f26f917e38", + "bytes": 470 + }, + "video-only.m3u8": { + "sha256": "3d7bb9069f6218191dc65745389bf1ab0ba6d5ed66cbd14e2cf30211913da3fc", + "bytes": 108 + } + } + }, + "limitations": [ + "SDK worker disabled", + "local deterministic media", + "source candidate, not installed package", + "no physical device certification" + ] + } + } + }, + "remaining": [ + "Safari/macOS/iOS MSE and native HLS", + "SDK worker and version matrix", + "grouped audio topology changes", + "candidate refactor fixes", + "isolated installed package and official example matrix" + ] +} diff --git a/refactor/changes/2026-09-11-PKG-HLS-02-tests.md b/refactor/changes/2026-09-11-PKG-HLS-02-tests.md new file mode 100644 index 000000000..18224dc3c --- /dev/null +++ b/refactor/changes/2026-09-11-PKG-HLS-02-tests.md @@ -0,0 +1,26 @@ +# PKG-HLS-02:建立 HLS 控制与真实 SDK 基线 + +新增发布三格式/源码共用契约、发布特有缺陷观察和四组合真实 Hls.js 测试。 +测试主机、包读取、浏览器场景和媒体生成分别归属 test/helpers/hls-control.js、既有 load/release +工具、test/browser/hls-control.spec.js 与 scripts/generate-hls-fixture.mjs。 +本任务不改生产源码、公开声明和 dist;模块拆分及类型修正由 HLS-03/04 执行。 + +45 项 Node 通过;浏览器 31 项通过、14 项明确跳过。最初 Windows WebKit 14 个失败经诊断 +确认 MSE 缺失,新增能力/失败清理断言,保留 Safari/MSE 未验收风险。不能用最终退出码 0 +作为全浏览器或发布放行。见 [测试说明](../hls-validation.md) 与 [冻结证据](../baselines/hls-validation.json)。 + +真实 Hls.js 1.5.17、双档位/双音轨和无音轨流覆盖播放、画面、手动/Auto、音轨、pause/seek、 +失败恢复、切源和销毁;该样本没有复现 id/index 错位。旧版 Auto 标签与空轨道菜单残留有 +浏览器证据,过期回调有受控证据。类型/异步/公开行为不以模拟对象替代真实播放。 + +工具变更:Node 单测加入 Yarn 正式链;SDK 固定归档只供测试,不新增运行时依赖;合法点分 +包名支持及非法路径拒绝测试;媒体生成器拒绝覆盖,生成文件有版本/命令/hash。初次 .ts +媒体后缀被 ESLint 当作 TypeScript,已由生成器改成 .mpegts 并重新生成、重新跑浏览器。 + +验证:专项 lint、45 项 Node、31 通过/14 明确跳过的浏览器,以及完整 ci:check(485 单元、 +11 工程、26 基线,共 522 项;249 个生产 TS 文件严格检查)、计划/风险 +和 diff 检查。未重复核心全量安装包矩阵。本任务测试源码构建,HLS 安装包验收仍属 06。 +回退本提交撤回测试/样本/来源与风险记录;生产播放器不变。下步 HLS-03,独立提交。 + +CI 仍有既有生成文件 docs/assets/ts/artplayer.d.ts 的 unused eslint-disable warning;没有 +手改生成声明来消除它。媒体 .m3u8 固定 LF、.mpegts 标记二进制,避免跨平台 checkout 改字节。 diff --git a/refactor/environment-matrix.md b/refactor/environment-matrix.md index 8e9887096..e48fe51cb 100644 --- a/refactor/environment-matrix.md +++ b/refactor/environment-matrix.md @@ -44,7 +44,7 @@ Node10 是 TS 模块解析模式名,不代表支持 Node.js 10。现代 es2020 | artplayer-plugin-danmuku-mask / 1.1.0 | MediaPipe/TensorFlow 模型、GPU/CPU/WASM、停止/销毁;人物短片 | Yarn 与 model URL 分开;默认 solutionPath 无固定版本,下载/推理/失败待 | PKG-MASK-01/02/05/06 | | artplayer-plugin-dash-control / 1.1.0 | dash.js 实际表示/音轨、自动/手动高亮、切换拓扑;固定 MPD/segments | 本地选择逻辑 Node 测试已有;真实 dash.js/浏览器流待,示例版本见 SDK-02 | PKG-DASH-01/02/05/06、EX-03 | | artplayer-plugin-document-pip / 1.1.0 | Document PiP、节点/样式迁移与退出恢复 | 支持浏览器/版本待确认,真实用户手势与 PiP 窗口待 | PKG-DPIP-01/02/05/06 | -| artplayer-plugin-hls-control / 1.1.0 | hls.js 清晰度/音轨自动手动切换;主/子列表与拓扑变化 | 实际 SDK/流未运行,示例版本见 SDK-01;Safari 原生 HLS 与 hls.js 路径分开 | PKG-HLS-01/02/05/06、EX-03 | +| artplayer-plugin-hls-control / 1.1.0 | hls.js 清晰度/音轨自动手动切换;主/子列表与拓扑变化 | 1.5.17 在 Chromium/Firefox 本地双档位/音轨基线通过;Windows WebKit 无 MSE,14 播放用例 skipped;Safari/native/worker 仍待验,见 hls-validation.md | PKG-HLS-01/02/05/06、EX-03 | | artplayer-plugin-jassub / 1.1.0 | ASS、worker/WASM/font 加载、切源/销毁;短 ASS+明确来源字体 | 内嵌资源哈希已有;版本对应、跨源/worker 限制、实际渲染待 | PKG-JASSUB-01/02/05/06 | | artplayer-plugin-multiple-subtitles / 1.2.0 | VTT 合并/排序/解析错误、URL 回收;双语言/空/坏 VTT | parser 来源头已观察;特有行为和浏览器字幕待 | PKG-MULTI-SUB-01/02/05/06 | | artplayer-plugin-vast / 1.2.0 | Glomex/Google IMA、广告错误/恢复、重复初始化;供应商测试广告标签 | 依赖版本已记录;实际 IMA 网络/广告流程待,PR 用受控 adapter | PKG-VAST-01/02/05/06 | diff --git a/refactor/hls-validation.md b/refactor/hls-validation.md new file mode 100644 index 000000000..876b0a071 --- /dev/null +++ b/refactor/hls-validation.md @@ -0,0 +1,57 @@ +# HLS control 测试与环境边界 + +PKG-HLS-02 建立迁移前基线。源码目前仍为 src/index.js,不能把测试任务当作 TS 迁移已完成。 +来源见 [发布契约](baselines/hls-control-contract.md)、[SDK 固定记录](baselines/hls-sdk.json)、 +[本轮证据](baselines/hls-validation.json)。 + +## 可重跑入口 + +- `node --test test/hls-control.test.js`:45 项,源码与发布 main/legacy/ESM 共用正常契约, + 发布包单独复现旧缺陷;已接入 `yarn test:unit`。 +- `yarn test:browser hls-control.spec.js`:当前源码与发布插件在旧核心 5.4.0/当前核心上的四组合, + 加上 SDK 能力检查。通过现有 Playwright 工程入口执行;源码候选构建不写 dist。 +- `node refactor/scripts/hls-contract.mjs`:HLS 插件发布来源核验。 +- `node scripts/generate-hls-fixture.mjs <新的输出目录>`:只在需要改变样本时执行; + 测试使用已提交媒体和 manifest,不要求安装 FFmpeg。详见 test/browser/media/hls/README.md。 + +SDK 使用示例原有的 Hls.js 1.5.17,首次从固定 npm URL 下载并验证 SHA-512/SHA-256, +代码取归档中的 dist/hls.min.js。SDK 仅在测试浏览器执行,不加生产依赖,不改 Yarn 锁文件。 +归档读取工具允许合法的点分包名 hls.js,同时测试拒绝路径穿越等非法标识。 +生成器记录 FFmpeg 版本和参数;媒体源为 testsrc2/sine,不依赖远程影片版权或服务可用性。 + +## 已验证的内容 + +Node 契约覆盖同步注册/update、媒体身份校验、quality/audio 显示开关、名称/顺序/去重、 +getName 输入引用与一参/两参调用、SDK 写入→notice→check 顺序、回调/SDK 异常传播、替换实例。 +这些受控测试不提供 DOM、实际 ABR 或媒体解码证明。 + +Chromium 与 Firefox 各 14 项播放/失败组合通过,另各 1 项 SDK 能力检查通过: +本地两档位和双音轨、可见画面像素与解码帧、实际播放推进、90P→180P、返回 Auto、French +音轨切换完成事件、暂停/seek/继续、503 manifest 失败后恢复、切到无音轨 master、SDK 与核心销毁。 +选择通过真实鼠标操作控件;属性、画面和 SDK 事件联合断言,不只验证菜单文字。 + +旧版真实 Auto 状态下 update 将标签改成当前播放档位;旧版切到无音轨 master 后仍保留音轨控件。 +旧菜单回调写旧实例、destroy 后公开 update 继续工作在受控测试复现;后者不是浏览器泄漏定量证明。 +SDK 在当前双音轨样本中将 id 与选择索引对齐,没有把静态 id/index 差异误报为已复现错误。 + +## Windows WebKit 缺口必须保留 + +首轮完整三引擎 28 通过、14 失败。定向诊断确认 Windows Playwright WebKit 26.6 的 +MediaSource 和 ManagedMediaSource 均为 undefined,Hls.isSupported() 为 false,实际 SDK +报告 manifestIncompatibleCodecsError。新旧核心与插件共同受影响,不是 TS 候选特有回归。 + +最终报告为 **31 passed、14 skipped、0 failed**:WebKit 只通过显式能力/失败清理断言; +14 个播放场景按这个已经验证的宿主限制跳过。能力测试会在环境变化时失败提醒重新核对, +不能把跳过转换为播放通过。最初失败和定向诊断报告的摘要/完整性保留在冻结证据中。 +Safari/macOS/iOS 的真实 MSE/ManagedMediaSource 与原生 HLS fallback 仍由 PKG-HLS-05、 +EX-03、REL-09/REVIEW-02 接续,SDK-01/HLS-ENV-01 保持 open。 + +本轮 enableWorker=false,流通过 Playwright 本地路由提供。远端网络、SDK worker、分组音轨变更、 +Safari/native fallback、更多 SDK 版本、安装包及示例页面全部组合不是本轮完成内容。 +显式安装产物映射暂不接受 HLS 源码回退;HLS-06 必须加入 HLS 包对应映射和隔离 tarball 消费。 + +## 后续实施 + +PKG-HLS-03 拆出映射、UI 提交/删除、Hls 订阅与生命周期;把上述缺陷变成候选修复断言, +保留发布版观察。PKG-HLS-04 迁移自有模块和公开类型,修正可选 option、getName 对象与可选 index, +保持旧声明接受范围及分发路径。PKG-HLS-05/06 完成实际 SDK、浏览器、示例及安装包验收。 diff --git a/refactor/plan.md b/refactor/plan.md index 629c8b6dc..bcae94f22 100644 --- a/refactor/plan.md +++ b/refactor/plan.md @@ -4,7 +4,7 @@ 基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 215 项,范围 22 个包及工作区/示例。 -状态:todo 153 / doing 0 / blocked 0 / done 62 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 +状态:todo 152 / doing 0 / blocked 0 / done 63 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。 @@ -189,7 +189,7 @@ | ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | | --- | --- | --- | --- | --- | --- | --- | | PKG-HLS-01 | artplayer-plugin-hls-control
核对包契约与历史用法 | BASE-05 | quality/audio 配置、getName、update、控件名及 Hls 实例绑定 | 源码/声明/README/demo/发布包差异已登记;公开形状和版本范围冻结 | H | done | -| PKG-HLS-02 | artplayer-plugin-hls-control
建立特有行为与错误测试 | PKG-HLS-01, ENG-03, ENG-05 | Auto/手动实际 level、音轨、去重/过滤和拓扑变化 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | todo | +| PKG-HLS-02 | artplayer-plugin-hls-control
建立特有行为与错误测试 | PKG-HLS-01, ENG-03, ENG-05 | Auto/手动实际 level、音轨、去重/过滤和拓扑变化 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | H | done | | PKG-HLS-03 | artplayer-plugin-hls-control
整理内部职责与资源 | PKG-HLS-02, CORE-11, CORE-14 | 映射计算与 selector 更新/删除、Hls 事件订阅分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | H | todo | | PKG-HLS-04 | artplayer-plugin-hls-control
迁移自有源码和公开类型 | PKG-HLS-03, ENG-04, ENG-06, CORE-07 | HLS 能力适配类型、回调上下文和旧 getName 参数 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | H | todo | | PKG-HLS-05 | artplayer-plugin-hls-control
验证新旧核心和组合 | PKG-HLS-04, CORE-22 | 本地多码率 HLS、换成无轨道来源、旧核心和最终核心 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | todo | @@ -466,3 +466,4 @@ - PKG-CHAPTER-03: [记录](changes/2026-09-10-PKG-CHAPTER-03-typescript-modules.md) [记录](baselines/chapter-migration-validation.json) - PKG-CHAPTER-04: [记录](changes/2026-09-10-PKG-CHAPTER-04-public-types.md) [记录](baselines/chapter-types-validation.json) - PKG-HLS-01: [记录](baselines/hls-control-contract.md) [记录](baselines/hls-control-release.json) [记录](changes/2026-09-11-PKG-HLS-01-contract.md) +- PKG-HLS-02: [记录](hls-validation.md) [记录](baselines/hls-sdk.json) [记录](baselines/hls-validation.json) [记录](changes/2026-09-11-PKG-HLS-02-tests.md) diff --git a/refactor/progress.md b/refactor/progress.md index 02f4e2362..064d0a146 100644 --- a/refactor/progress.md +++ b/refactor/progress.md @@ -1,5 +1,13 @@ # 进度与证据 +## 最新完成:PKG-HLS-02 行为与 SDK 基线 + +45 项 HLS Node 契约通过,覆盖源码及发布 main/legacy/ESM;完整 CI 522 项、249 个生产 TS 文件通过。真实 Hls.js 1.5.17 与本地双档位/双音轨流验证四组合的解码、实际选择、pause/seek、切源、失败恢复和销毁。 + +浏览器结果为 31 passed、14 skipped;Windows WebKit 26.6 没有 MSE/ManagedMediaSource,能力/失败清理通过不能替代其播放矩阵。首轮 14 失败及定向诊断已保留,Safari/native/worker 等缺口仍 open。旧 Auto 标签与空音轨菜单残留有真实 SDK 复现,过期回调有受控证据;HLS-03 将修复这些问题。 + +见 [测试说明](hls-validation.md)、[冻结证据](baselines/hls-validation.json) 与 [交付记录](changes/2026-09-11-PKG-HLS-02-tests.md)。63 done、152 todo;本任务独立本地 commit,核实后进入 HLS-03 职责拆分。HLS 生产源码尚未迁移 TS,类型和全发布矩阵继续按 04~06 执行,没有发布放行。 + ## 最新完成:PKG-HLS-01 发布契约 HLS control 1.1.0 的六文件归档、历史源码、声明/README/manifest 与两段主逻辑对照通过。新增独立冻结记录及只读重验工具;保留 BASE-01。空轨道旧菜单、过期回调、Auto 状态、getName 类型及示例清理已映射到后续任务,没有把静态观察写成 SDK 或浏览器通过。 diff --git a/refactor/risk-table.md b/refactor/risk-table.md index 0d108bf96..6f1ad17c8 100644 --- a/refactor/risk-table.md +++ b/refactor/risk-table.md @@ -33,7 +33,7 @@ | VENDOR-06 | open / 待取证 | monaco-static-assets 来源、版本与许可闭环 | SITE-01, SITE-05 | | VENDOR-07 | open / 待取证 | vconsole 来源、版本与许可闭环 | SITE-01 | | VENDOR-08 | open / 待取证 | console-bundle 来源、版本与许可闭环 | SITE-01 | -| SDK-01 | open / 待取证 | hls.js 实际集成验证范围 | PKG-HLS-01, EX-03 | +| SDK-01 | open / 源码/产物事实 | hls.js 实际集成验证范围 | PKG-HLS-03, PKG-HLS-05, EX-03 | | SDK-02 | open / 待取证 | dash.js 实际集成验证范围 | PKG-DASH-01, EX-03 | | SDK-03 | open / 待取证 | flv.js 实际集成验证范围 | EX-03 | | SDK-04 | open / 待取证 | mpegts.js 实际集成验证范围 | EX-03 | @@ -120,3 +120,7 @@ | BASE-LIFE-47 | resolved / 已复现 | AirPlay methods can call a picker or publish events and notices after destruction | CORE-20 | | BASE-LIFE-48 | resolved / 已复现 | Proxy-time destruction cannot clean a template before its public assignment | CORE-20 | | BASE-LIFE-49 | resolved / 已复现 | Constructor and Player initialization continue after a callback destroys the instance | CORE-20 | +| HLS-UI-01 | open / 已复现 | 空轨道和关闭配置仍残留 HLS 菜单 | PKG-HLS-03 | +| HLS-LIFE-01 | open / 已复现 | 过期 HLS 选择回调与销毁后 update 仍工作 | PKG-HLS-03 | +| HLS-AUTO-01 | open / 已复现 | 真实 ABR 播放的 Auto 标签在 update 后丢失 | PKG-HLS-03, PKG-HLS-05 | +| HLS-ENV-01 | open / 已复现 | Windows WebKit 缺失 MSE,HLS 播放矩阵尚缺 Safari 证据 | PKG-HLS-05, REL-09, REVIEW-02 | diff --git a/refactor/risks.json b/refactor/risks.json index f3dfe0633..a05b378ef 100644 --- a/refactor/risks.json +++ b/refactor/risks.json @@ -603,15 +603,17 @@ { "id": "SDK-01", "title": "hls.js 实际集成验证范围", - "confirmation": "unverified", + "confirmation": "source-observed", "status": "open", "owners": [ - "PKG-HLS-01", + "PKG-HLS-03", + "PKG-HLS-05", "EX-03" ], "evidence": [ "packages/artplayer-plugin-hls-control/src/index.js", - "docs/assets/example/hls.control.js" + "docs/assets/example/hls.control.js", + "refactor/hls-validation.md" ], "compatibleResolution": "Caller supplies art.hls; homepage demo loads hls.js 1.5.17. Preserve quality/audio selectors and old core integration.", "closureCriteria": "固定 SDK/外部资源版本和环境;成功/失败/切换/销毁有真实证据,设备和网络限制逐项记录。" @@ -2520,6 +2522,73 @@ "test/initialization.test.js" ], "resolutionRationale": "Player installers and outer construction stop after reentrant closure without publishing later plugins or registering the dead instance. Installed normal descriptors/static/subclass behavior and getter/native-write destruction cases pass." + }, + { + "id": "HLS-UI-01", + "title": "空轨道和关闭配置仍残留 HLS 菜单", + "confirmation": "reproduced", + "status": "open", + "owners": [ + "PKG-HLS-03" + ], + "evidence": [ + "refactor/hls-validation.md", + "test/hls-control.test.js", + "test/browser/hls-control.spec.js" + ], + "compatibleResolution": "使用既有 remove API 清理不再可用的 UI,保留菜单名称及选择语义。", + "closureCriteria": "候选空轨道、关闭开关及恢复测试通过。" + }, + { + "id": "HLS-LIFE-01", + "title": "过期 HLS 选择回调与销毁后 update 仍工作", + "confirmation": "reproduced", + "status": "open", + "owners": [ + "PKG-HLS-03" + ], + "evidence": [ + "refactor/hls-validation.md", + "test/hls-control.test.js", + "test/browser/hls-control.spec.js" + ], + "compatibleResolution": "限制过期实例回调,整理监听器归属,Hls 仍由调用方销毁。", + "closureCriteria": "替换、销毁、重入及 SDK 订阅解绑的候选回归通过。" + }, + { + "id": "HLS-AUTO-01", + "title": "真实 ABR 播放的 Auto 标签在 update 后丢失", + "confirmation": "reproduced", + "status": "open", + "owners": [ + "PKG-HLS-03", + "PKG-HLS-05" + ], + "evidence": [ + "refactor/hls-validation.md", + "test/hls-control.test.js", + "test/browser/hls-control.spec.js" + ], + "compatibleResolution": "区分自动策略与实际播放档位,保留手动及 Auto 选择值。", + "closureCriteria": "实际 SDK 自动/手动切换和事件同步通过。" + }, + { + "id": "HLS-ENV-01", + "title": "Windows WebKit 缺失 MSE,HLS 播放矩阵尚缺 Safari 证据", + "confirmation": "reproduced", + "status": "open", + "owners": [ + "PKG-HLS-05", + "REL-09", + "REVIEW-02" + ], + "evidence": [ + "refactor/hls-validation.md", + "test/hls-control.test.js", + "test/browser/hls-control.spec.js" + ], + "compatibleResolution": "显式验证宿主不支持,保留 14 skipped,不作为播放通过;补有 MSE 的 Safari/macOS/iOS 环境。", + "closureCriteria": "实际 Safari/MSE/native 路径证据齐全,不能仅凭 Windows 能力检查关闭。" } ] } diff --git a/refactor/scripts/releases.mjs b/refactor/scripts/releases.mjs index 1d03eb822..5cf8409ec 100644 --- a/refactor/scripts/releases.mjs +++ b/refactor/scripts/releases.mjs @@ -30,7 +30,7 @@ export function readMember(archive, member) { } export async function ensureArchive(release) { - assert(/^[a-z0-9-]+$/.test(release.name) && /^\d+\.\d+\.\d+$/.test(release.version), 'Invalid release identifier') + assert(/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(release.name) && /^\d+\.\d+\.\d+$/.test(release.version), 'Invalid release identifier') const archive = path.join(cacheDir, `${release.name}-${release.version}.tgz`) if (!fs.existsSync(archive)) { const url = new URL(release.tarball) diff --git a/refactor/scripts/releases.test.mjs b/refactor/scripts/releases.test.mjs index 9fe31d6ca..ec6edb8da 100644 --- a/refactor/scripts/releases.test.mjs +++ b/refactor/scripts/releases.test.mjs @@ -1,6 +1,6 @@ import assert from 'node:assert/strict' import { test } from 'node:test' -import { hash, verifyIntegrity } from './releases.mjs' +import { ensureArchive, hash, verifyIntegrity } from './releases.mjs' test('release integrity rejects corrupted bytes and inconsistent frozen digests', () => { const bytes = Buffer.from('known release artifact') @@ -9,3 +9,10 @@ test('release integrity rejects corrupted bytes and inconsistent frozen digests' assert.throws(() => verifyIntegrity(Buffer.from('replaced artifact'), release), /Integrity mismatch/) assert.throws(() => verifyIntegrity(bytes, { ...release, sha256: '0'.repeat(64) }), /Archive hash mismatch/) }) + +test('release cache rejects unsafe package and version path identifiers before I/O', async () => { + for (const name of ['../hls.js', '.hls', 'hls..js', 'hls/js', 'hls\\js', 'hls.js/evil', '-hls']) + await assert.rejects(ensureArchive({ name, version: '1.5.17' }), /Invalid release identifier/) + for (const version of ['../1.5.17', '1.5.17/evil', 'latest']) + await assert.rejects(ensureArchive({ name: 'hls.js', version }), /Invalid release identifier/) +}) diff --git a/refactor/tasks.json b/refactor/tasks.json index 1b22987bc..577275be5 100644 --- a/refactor/tasks.json +++ b/refactor/tasks.json @@ -1804,11 +1804,16 @@ "ENG-03", "ENG-05" ], - "status": "todo", + "status": "done", "risk": "H", "deliverable": "Auto/手动实际 level、音轨、去重/过滤和拓扑变化", "acceptance": "旧版本行为可重跑,成功/失败/切源/销毁有必要断言", - "evidence": [] + "evidence": [ + "hls-validation.md", + "baselines/hls-sdk.json", + "baselines/hls-validation.json", + "changes/2026-09-11-PKG-HLS-02-tests.md" + ] }, { "id": "PKG-HLS-03", diff --git a/refactor/third-party.json b/refactor/third-party.json index 90a225775..ca40f1e25 100644 --- a/refactor/third-party.json +++ b/refactor/third-party.json @@ -1023,7 +1023,8 @@ "id": "hls.js", "riskId": "SDK-01", "owners": [ - "PKG-HLS-01", + "PKG-HLS-03", + "PKG-HLS-05", "EX-03" ], "sourceFiles": [ @@ -1031,7 +1032,7 @@ "docs/assets/example/hls.control.js" ], "contract": "Caller supplies art.hls; homepage demo loads hls.js 1.5.17. Preserve quality/audio selectors and old core integration.", - "validationStatus": "Source integration observed; complete real SDK/service/device matrix not yet verified.", + "validationStatus": "Hls.js 1.5.17 frozen in refactor/baselines/hls-sdk.json; Chromium/Firefox local playback baseline verified in PKG-HLS-02. Windows WebKit has no MSE; Safari/native/worker/version and installed-package matrices remain open. See refactor/hls-validation.md.", "demoPathsSource": "refactor/baselines/demo-inventory.json" }, { diff --git a/scripts/generate-hls-fixture.mjs b/scripts/generate-hls-fixture.mjs new file mode 100644 index 000000000..33444228c --- /dev/null +++ b/scripts/generate-hls-fixture.mjs @@ -0,0 +1,31 @@ +import assert from 'node:assert/strict' +import { execFileSync } from 'node:child_process' +import fs from 'node:fs' +import path from 'node:path' +import process from 'node:process' +import { fileURLToPath } from 'node:url' +import { hash } from '../refactor/scripts/releases.mjs' + +const root = fileURLToPath(new URL('../', import.meta.url)) +const output = path.resolve(root, process.argv[2] || 'test/browser/media/hls') +assert(!fs.existsSync(output), 'Output must be a new directory; never overwrite frozen media') +const ffmpeg = process.env.ARTPLAYER_FFMPEG || 'ffmpeg' +const version = execFileSync(ffmpeg, ['-version'], { encoding: 'utf8' }).split(/\r?\n/)[0] +fs.mkdirSync(output, { recursive: true }) +const commands = [] +function generate(name, input, encoding) { + const args = ['-hide_banner', '-loglevel', 'error', '-n', '-f', 'lavfi', '-i', input, '-t', '12', ...encoding, '-f', 'hls', '-hls_time', '2', '-hls_playlist_type', 'vod', '-hls_segment_filename', `${name}-%02d.mpegts`, `${name}.m3u8`] + execFileSync(ffmpeg, args, { cwd: output, stdio: 'pipe' }) + commands.push(args) +} +for (const [name, size] of [['low', '160x90'], ['high', '320x180']]) { + generate(name, `testsrc2=size=${size}:rate=24`, ['-an', '-c:v', 'libx264', '-pix_fmt', 'yuv420p', '-profile:v', 'baseline', '-level:v', '3.0', '-g', '48', '-keyint_min', '48', '-sc_threshold', '0', '-crf', '28']) +} +for (const [name, frequency] of [['english', 440], ['french', 880]]) + generate(name, `sine=frequency=${frequency}:sample_rate=48000`, ['-vn', '-c:a', 'aac', '-b:a', '48k', '-ac', '2']) +const variants = '#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=160x90,CODECS="avc1.42c01e,mp4a.40.2",AUDIO="audio"\nlow.m3u8\n#EXT-X-STREAM-INF:BANDWIDTH=500000,RESOLUTION=320x180,CODECS="avc1.42c01e,mp4a.40.2",AUDIO="audio"\nhigh.m3u8\n' +fs.writeFileSync(path.join(output, 'master.m3u8'), `#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="English",LANGUAGE="en",DEFAULT=YES,AUTOSELECT=YES,URI="english.m3u8"\n#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="French",LANGUAGE="fr",DEFAULT=NO,AUTOSELECT=YES,URI="french.m3u8"\n${variants}`) +fs.writeFileSync(path.join(output, 'video-only.m3u8'), '#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-STREAM-INF:BANDWIDTH=200000,RESOLUTION=160x90,CODECS="avc1.42c01e"\nlow.m3u8\n') +const files = Object.fromEntries(fs.readdirSync(output).sort().map(name => [name, { sha256: hash(fs.readFileSync(path.join(output, name))), bytes: fs.statSync(path.join(output, name)).size }])) +fs.writeFileSync(path.join(output, 'manifest.json'), `${JSON.stringify({ kind: 'generated-hls-media', version, duration: 12, commands, files }, null, 2)}\n`) +console.log(`Generated ${Object.keys(files).length} HLS files in ${output}`) diff --git a/test/README.md b/test/README.md index 1e9bf312c..e138c5aea 100644 --- a/test/README.md +++ b/test/README.md @@ -14,6 +14,13 @@ Use the pinned Node/Yarn toolchain from `../refactor/toolchain-setup.md`. `helpers/playback.js` creates the controlled media facade used by the original playback regressions. It models only the exercised methods and events. It is not HTMLMediaElement validation; actual playback remains in browser tests. +`node --test test/hls-control.test.js` runs shared HLS control contracts against workspace source +and integrity-checked published main/legacy/ESM. It is included in `yarn test:unit`. +`helpers/hls-control.js` owns the controlled SDK/registry host; it does not simulate decoding or ABR. +Published-only tests preserve historical bug observations without requiring candidate code to keep them. +Real Hls.js 1.5.17 playback is in `test/browser/hls-control.spec.js`; see its environment limits in +`refactor/hls-validation.md`. Test SDK download is pinned and verified, not an installed runtime dependency. + `contracts/emitter.js` owns public assertions, independent of module layout. `public-behavior.test.js` runs them against the integrity-checked published core and current bundled source. The combined chain/context contract corresponds to BASE-03 EVENT.chain and EVENT.context-arguments; other EVENT IDs retain their baseline names. Exceptions, callback identity, mutation during dispatch and once reentry must not be weakened during migration. Set `ARTPLAYER_TEST_CORE` to a built `.js`, `.legacy.js` or `.mjs` core file to add a candidate to the same public-contract run, then execute `node --test test/public-behavior.test.js`. An invalid path/export fails the run. This is a narrow event contract check, not isolated package installation or complete API compatibility; ENG-07 owns tarball consumption. diff --git a/test/browser/README.md b/test/browser/README.md index 864a20d86..9ca7c0a6a 100644 --- a/test/browser/README.md +++ b/test/browser/README.md @@ -15,6 +15,12 @@ no retries, a loopback server on 8084, and no existing dev server. Set `ARTPLAYE to use another free port. The server builds core and chapter from current JS/TS entries in memory; it does not modify dist or docs outputs. Restart the test command after source changes. +`hls-control.spec.js` separately builds HLS control and verifies a pinned Hls.js 1.5.17 archive. +Its local playlists/segments are generated fixtures with checked hashes. Windows WebKit lacks MSE: +one explicit capability/error-cleanup test covers that limitation and its 14 playback cases are +skipped with a reason. Chromium/Firefox run the full four-combination HLS matrix. This is not +Safari playback approval; see [HLS validation](../../refactor/hls-validation.md) for evidence and open gates. + `playback.spec.js` tests published/current core with current chapter, real decoded frame colors, media time advancing, pause, seek, source change to the existing docs video, destroy and real HTTP failure. These are initial smoke contracts, not full chapter or lifecycle coverage. diff --git a/test/browser/hls-control.spec.js b/test/browser/hls-control.spec.js new file mode 100644 index 000000000..0382df4d3 --- /dev/null +++ b/test/browser/hls-control.spec.js @@ -0,0 +1,236 @@ +import assert from 'node:assert/strict' +import fs from 'node:fs' +import process from 'node:process' +import { ensureArchive, hash, readMember } from '../../refactor/scripts/releases.mjs' +import { compilePackage } from '../helpers/load.js' +import { expect, test } from './fixtures.js' + +let sdkCode +let publishedCode +let sourceCode +let evidence +let media +test.afterEach(async ({ page }, testInfo) => { + const state = await page.evaluate(() => { + const art = window.art + return { + supported: window.Hls?.isSupported(), + mediaSource: typeof window.MediaSource, + managedMediaSource: typeof window.ManagedMediaSource, + video: art?.video.outerHTML, + readyState: art?.video.readyState, + networkState: art?.video.networkState, + sdkErrors: window.sdkErrors, + sdkEvents: window.sdkEvents, + levels: art?.hls.levels.map(level => ({ height: level.height, codec: level.videoCodec })), + tracks: art?.hls.audioTracks.map(track => ({ id: track.id, name: track.name })), + } + }).catch(error => ({ diagnosticError: error.message })) + await testInfo.attach('hls-state', { contentType: 'application/json', body: JSON.stringify(state, null, 2) }) +}) +test.beforeAll(async () => { + const sdk = JSON.parse(fs.readFileSync(new URL('../../refactor/baselines/hls-sdk.json', import.meta.url))) + const plugin = JSON.parse(fs.readFileSync(new URL('../../refactor/baselines/hls-control-release.json', import.meta.url))) + async function code(release, member) { + const bytes = readMember(await ensureArchive(release), member) + assert.equal(hash(bytes), release.files[member]) + return bytes.toString() + } + sdkCode = await code(sdk.release, 'package/dist/hls.min.js') + publishedCode = await code(plugin.release, 'package/dist/artplayer-plugin-hls-control.js') + // This task exercises source builds. Installed artifacts are a separate HLS-06 gate. + assert(!process.env.ARTPLAYER_BROWSER_ARTIFACTS, 'HLS source fixture cannot masquerade as an installed plugin') + sourceCode = await compilePackage('artplayer-plugin-hls-control', 'umd') + const manifest = JSON.parse(fs.readFileSync(new URL('./media/hls/manifest.json', import.meta.url))) + media = new Map() + for (const [name, expected] of Object.entries(manifest.files)) { + assert(/^[\w.-]+$/.test(name)) + const bytes = fs.readFileSync(new URL(`./media/hls/${name}`, import.meta.url)) + assert.equal(hash(bytes), expected.sha256) + assert.equal(bytes.length, expected.bytes) + media.set(name, bytes) + } + evidence = { sdk: sdk.release, plugin: plugin.release, sourceSHA256: hash(sourceCode), media: manifest, limitations: ['SDK worker disabled', 'local deterministic media', 'source candidate, not installed package', 'no physical device certification'] } +}) + +async function openHls(page, core, plugin, testInfo, manifest = 'master.m3u8') { + await testInfo.attach('hls-inputs', { contentType: 'application/json', body: JSON.stringify(evidence) }) + await page.route('**/hls-fixture/**', async (route) => { + const name = new URL(route.request().url()).pathname.split('/').at(-1) + const bytes = media.get(name) + await route.fulfill({ status: bytes ? 200 : 503, body: bytes || 'Intentional HLS failure', contentType: name.endsWith('.m3u8') ? 'application/vnd.apple.mpegurl' : 'video/mp2t' }) + }) + await page.goto(`/test/player.html?core=${core}`) + await page.addScriptTag({ content: sdkCode }) + await page.addScriptTag({ content: plugin === 'published' ? publishedCode : sourceCode }) + await page.evaluate((manifest) => { + window.sdkErrors = [] + window.sdkEvents = [] + window.destroyedEngines = 0 + window.art = new window.Artplayer({ + container: '.player', + url: `/hls-fixture/${manifest}`, + muted: true, + setting: true, + plugins: [window.artplayerPluginHlsControl({ quality: { control: true, setting: true }, audio: { control: true, setting: true } })], + customType: { m3u8(video, url, art) { + if (art.hls) + art.hls.destroy() + const hls = new window.Hls({ enableWorker: false, manifestLoadingMaxRetry: 0 }) + art.hls = hls + hls.on(window.Hls.Events.ERROR, (_, data) => window.sdkErrors.push({ type: data.type, details: data.details, fatal: data.fatal })) + for (const name of ['LEVEL_SWITCHED', 'AUDIO_TRACK_SWITCHED', 'MANIFEST_PARSED']) + hls.on(window.Hls.Events[name], (_, data) => window.sdkEvents.push({ name, level: data.level, id: data.id })) + hls.on(window.Hls.Events.DESTROYING, () => window.destroyedEngines++) + hls.loadSource(url) + hls.attachMedia(video) + } }, + }) + const art = window.art + art.on('destroy', () => art.hls.destroy()) + document.querySelector('#play').onclick = () => art.play() + document.querySelector('#pause').onclick = () => art.pause() + }, manifest) +} + +test('SDK MSE availability is explicit; unavailable hosts report failure and clean up', async ({ page, browserName }, testInfo) => { + await openHls(page, 'candidate', 'published', testInfo) + const capability = await page.evaluate(() => ({ supported: window.Hls.isSupported(), mse: typeof window.MediaSource, managed: typeof window.ManagedMediaSource })) + if (process.platform === 'win32' && browserName === 'webkit') { + expect(capability).toEqual({ supported: false, mse: 'undefined', managed: 'undefined' }) + await expect.poll(() => page.evaluate(() => window.sdkErrors.filter(error => error.fatal))).toEqual([{ type: 'mediaError', details: 'manifestIncompatibleCodecsError', fatal: true }]) + expect(await page.evaluate(() => window.art.isReady)).toBe(false) + } + else { + expect(capability.supported).toBe(true) + await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true) + } + expect(await page.evaluate(() => { + const sdk = window.art.hls + window.art.destroy() + return { media: sdk.media, destroyed: window.destroyedEngines } + })).toEqual({ media: null, destroyed: 1 }) +}) + +test.describe('MSE playback matrix', () => { + // Verified by the separate capability test above. Safari/MSE coverage remains HLS-05 work. + test.skip(({ browserName }) => process.platform === 'win32' && browserName === 'webkit', 'Bundled Windows WebKit exposes neither MediaSource nor ManagedMediaSource; this is an unverified playback environment, not compatibility approval') + for (const core of ['published', 'candidate']) { + for (const plugin of ['published', 'candidate']) { + test(`${core} core / ${plugin} HLS: real decoding, manual quality, Auto and audio`, async ({ page }, testInfo) => { + await openHls(page, core, plugin, testInfo) + await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true) + await page.click('#play') + await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.3) + const initial = await page.evaluate(() => ({ + supported: window.Hls.isSupported(), + version: window.Hls.version, + levels: window.art.hls.levels.map(level => level.height), + tracks: window.art.hls.audioTracks.map(track => ({ id: track.id, name: track.name })), + frames: window.art.video.getVideoPlaybackQuality().totalVideoFrames, + })) + expect(initial).toMatchObject({ supported: true, version: '1.5.17', levels: [90, 180], tracks: [{ id: 0, name: 'English' }, { id: 1, name: 'French' }] }) + expect(initial.frames).toBeGreaterThan(0) + await page.evaluate(() => { + window.art.controls.show = true + }) + const quality = page.locator('.art-control-hls-quality') + await quality.hover() + await quality.locator('.art-selector-item').filter({ hasText: /^90P$/ }).click() + await expect.poll(() => page.evaluate(() => ({ automatic: window.art.hls.autoLevelEnabled, level: window.art.hls.currentLevel, height: window.art.video.videoHeight }))).toEqual({ automatic: false, level: 0, height: 90 }) + await quality.hover() + await quality.locator('.art-selector-item').filter({ hasText: /^180P$/ }).click() + await expect.poll(() => page.evaluate(() => ({ manual: window.art.hls.autoLevelEnabled, level: window.art.hls.currentLevel, height: window.art.video.videoHeight }))).toEqual({ manual: false, level: 1, height: 180 }) + await quality.hover() + await quality.locator('.art-selector-item').filter({ hasText: /^Auto$/ }).click() + await expect.poll(() => page.evaluate(() => window.art.hls.autoLevelEnabled)).toBe(true) + await expect.poll(() => page.evaluate(() => window.art.hls.currentLevel)).toBeGreaterThanOrEqual(0) + await page.evaluate(() => { + window.art.controls.show = true + }) + const audio = page.locator('.art-control-hls-audio') + await audio.hover() + await audio.locator('.art-selector-item').filter({ hasText: /^French$/ }).click() + await expect.poll(() => page.evaluate(() => window.sdkEvents.some(event => event.name === 'AUDIO_TRACK_SWITCHED' && event.id === 1))).toBe(true) + expect(await page.evaluate(() => window.art.hls.audioTrack)).toBe(1) + await page.click('#pause') + await expect.poll(() => page.evaluate(() => window.art.video.paused)).toBe(true) + await page.evaluate(() => { + window.art.seek = 5 + }) + await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeCloseTo(5, 1) + await page.click('#play') + await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(5.2) + expect(await page.evaluate(() => window.sdkErrors.filter(error => error.fatal))).toEqual([]) + const result = await page.evaluate(() => { + const video = window.art.video + const canvas = document.createElement('canvas') + canvas.width = 16 + canvas.height = 16 + const ctx = canvas.getContext('2d') + ctx.drawImage(video, 0, 0, 16, 16) + const pixels = ctx.getImageData(0, 0, 16, 16).data + const colors = new Set() + for (let index = 0; index < pixels.length; index += 4) + colors.add(`${pixels[index]},${pixels[index + 1]},${pixels[index + 2]}`) + const sdk = window.art.hls + window.art.destroy() + return { colors: colors.size, media: sdk.media, destroyed: window.destroyedEngines, children: document.querySelector('.player').childElementCount } + }) + expect(result.colors).toBeGreaterThan(8) + expect(result).toMatchObject({ media: null, destroyed: 1, children: 0 }) + }) + + test(`${core} core / ${plugin} HLS: failed manifest and actual SDK teardown`, async ({ page }, testInfo) => { + await openHls(page, core, plugin, testInfo, 'missing.m3u8') + await expect.poll(() => page.evaluate(() => window.sdkErrors.filter(error => error.fatal))).toEqual([{ type: 'networkError', details: 'manifestLoadError', fatal: true }]) + expect(await page.locator('.art-control-hls-quality').count()).toBe(0) + await page.evaluate(() => window.art.switchUrl('/hls-fixture/master.m3u8')) + await expect.poll(() => page.evaluate(() => window.art.hls.levels.length)).toBe(2) + await page.click('#play') + await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2) + expect(await page.evaluate(() => { + const sdk = window.art.hls + window.art.destroy() + return { destroyed: window.destroyedEngines, media: sdk.media } + })).toEqual({ destroyed: 2, media: null }) + }) + + test(`${core} core / ${plugin} HLS: source switch drops SDK audio topology`, async ({ page }, testInfo) => { + await openHls(page, core, plugin, testInfo) + await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true) + await page.click('#play') + await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2) + await page.evaluate(() => { + window.previousHls = window.art.hls + return window.art.switchUrl('/hls-fixture/video-only.m3u8') + }) + await expect.poll(() => page.evaluate(() => ({ levels: window.art.hls.levels.length, tracks: window.art.hls.audioTracks.length, height: window.art.video.videoHeight }))).toEqual({ levels: 1, tracks: 0, height: 90 }) + expect(await page.evaluate(() => ({ oldMedia: window.previousHls.media, replaced: window.previousHls !== window.art.hls, destroyed: window.destroyedEngines }))).toEqual({ oldMedia: null, replaced: true, destroyed: 1 }) + if (plugin === 'published') { + // Real SDK corroboration of the frozen historical empty-topology defect. + await expect(page.locator('.art-control-hls-audio')).toHaveCount(1) + } + expect(await page.evaluate(() => window.sdkErrors.filter(error => error.fatal))).toEqual([]) + await page.evaluate(() => window.art.destroy()) + expect(await page.evaluate(() => window.destroyedEngines)).toBe(2) + }) + } + + test(`${core} core / published HLS: real Auto playback loses Auto label on update`, async ({ page }, testInfo) => { + await openHls(page, core, 'published', testInfo) + await expect.poll(() => page.evaluate(() => window.art.isReady)).toBe(true) + await page.click('#play') + await expect.poll(() => page.evaluate(() => window.art.video.currentTime)).toBeGreaterThan(0.2) + expect(await page.evaluate(() => window.art.hls.autoLevelEnabled)).toBe(true) + const height = await page.evaluate(() => { + const art = window.art + art.plugins.artplayerPluginHlsControl.update() + return art.hls.levels[art.hls.currentLevel].height + }) + await expect(page.locator('.art-control-hls-quality .art-selector-value')).toHaveText(`${height}P`) + expect(await page.evaluate(() => window.art.hls.autoLevelEnabled)).toBe(true) + await page.evaluate(() => window.art.destroy()) + }) + } +}) diff --git a/test/browser/media/hls/README.md b/test/browser/media/hls/README.md new file mode 100644 index 000000000..7a12534a8 --- /dev/null +++ b/test/browser/media/hls/README.md @@ -0,0 +1,16 @@ +# Deterministic HLS fixtures + +Generated by `node scripts/generate-hls-fixture.mjs`, using FFmpeg recorded in manifest.json. +No downloaded film or audio: testsrc2 supplies moving patterns, sine supplies 440/880 Hz audio. +The 12-second master offers 160x90 and 320x180 AVC video, English/French AAC audio, and a +separate video-only master for topology changes. Each media playlist is VOD with 2-second segments. + +Segments use `.mpegts` so source tools cannot mistake MPEG transport streams for TypeScript. +The HLS browser fixture serves them as video/mp2t. File contents and byte counts are checked +against manifest.json before browser use. Tests need neither FFmpeg nor a remote media service. + +To change the media, generate into a new directory, for example +`node scripts/generate-hls-fixture.mjs refactor/.cache/hls-media-next`; inspect the output and +update the media, manifest and browser evidence together. The script refuses existing directories. +Set ARTPLAYER_FFMPEG to a particular FFmpeg executable if it is not on PATH. Re-encoding with +another FFmpeg version is not expected to preserve bytes; do not overwrite hashes to silence drift. diff --git a/test/browser/media/hls/english-00.mpegts b/test/browser/media/hls/english-00.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..0d15592a19f113bcf61b7e0586bcaa5c3f2ed55e GIT binary patch literal 13912 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 V#3I6=?e*jq!|6u?C literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/english-01.mpegts b/test/browser/media/hls/english-01.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..ebe6caeff0d02bcc70665ec94f26c1497b631ee3 GIT binary patch literal 14100 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 literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/english-02.mpegts b/test/browser/media/hls/english-02.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..692740e8d3978cd3169896336120d92c1b94a779 GIT binary patch literal 14100 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 r)2yH_>(pW1GKm^}XO+j#;923(U8ckWS literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/english-03.mpegts b/test/browser/media/hls/english-03.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..12f0f7d0ddd4a5299803b528b69577a5e7966de2 GIT binary patch literal 13912 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 OI2iaRMEwil=YIf^yKvM1 literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/english-04.mpegts b/test/browser/media/hls/english-04.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..d5956909ad9b4b084470506fcc59672676a04c4f GIT binary patch literal 14100 zcmd6tcRbbc+y6;2Qdt>=B9xh#5s_q%?8r!{P-L$-Dw2_vk#&^4Wo7S>J&%*b$voBx zaX8lb+@Es}zT>{{KYrieKli6cM~_DjA5Yi&dSBP;8p`rC^h644TtvjpL_`2FKt#On zPp?8td`d~_`3svT6nZw!?zUDoLc$&|?{oqGw;pAAB6=dCFK6)VM8s=Eyd@_~|8F7w zuQbZ{K=u<~Xz}b*L~BIna35cjn#TUuZ}~s-AIi6hZjs$1BHhvOBO)RqZla*}_a|j1 z5*@Sz);0X85&P_ndTl8eYz_QUcOi{?mL7U~(4@NZKdY9RxtSA8!`~t66Pyf>h>`|V zdZsd{2+y-fA+b+A;l*Aw75dF;x4&|=6s3+^RTOu3G&Ka|vjkeT$zITv^<6EWGXJJc z0yA0!viE?mjBesmi?!Waf3`r9!$%TN0T3vtRP{0;m$op#&lI(~_Jr8}DB;g%P!nM<7H*1e8V`%3KP^ zBlaT5B@7m_8fEM3Xq=*($wi`})Xe-V3?Lh}POSBc+BT6M5yC&~kJ>^xnIBMfF;FG3 zY?u{?yOw<>0@Oc4^AgH-4 znx~)f=@^8#31<@;2o9t-)U2(FTBBbN)qE3Nl4@ z3%^Dzd=FC5VQ}7|&dz3d-1W=IFhiD^jsb@jy^U288MpcfZx;o{j&_%Vf~#s%Y_EuZ zSp`L35*3?e{cm+IaXZpA@tTQgVb7ZCZqm2P&qkU&S)M9Nvs3P&fvv{zgCgmie76}r zLFjm<{~-(hgwEldMV~aeV6U<9`tC;b+*7B>jMab>?`bm2`ZYyCcG~r5VaedLUNd{n z73@1#ZISakT7I^$Tb=VzuK}-_Tqn&79Lapcg83LsU;R7FS6gD_8AMig3~&2fNn@J% z$->r1;1dTs5O{Jt-<`0)t1mAf+k)u#u`%=}z_YQJliT+NHf$xhMxxWK^O8tJy#t$g zJPN3tACf1sB-)r?e|mjW?(@O9EeVH`$P$m|T??rUDPBV-vyKntCB+R@?Mb8Z%*YO4$7jEVXC>7ehM8Tt(jyJN+O{4 zhH|X1jO&`d)wvt78bd_CSZ`^Ge8`057z(}ME^9nz?t;YL0?_E(cDraLcAtuWK%B)v z(1Psrhdu(B^RMWNWGk>MuLHveK#LpvX7s+V_2bI+b(E!z?eN(=cj|JAtPAY3C(mju zTn!*r<%Xr}!!%Gd^g4IxRn98z4+lyl1^2+XNz)7%Q1w3}Lv;1dhB}n!Lcf&%jCnl} ztJ~wrx}bOsD+h)wj8+ZO*&?DKY!ovoTX2kp_Z8Yp1h3tn1c@GzDROA}0tb!b`&~W` zMds)S%keC?Shg-Cg6!wb219F}JJPaOIf-3i@9y2>da9a|%EHqU{{;Eu=C3th@z52o z**t&invD|=$@M&U1TIWv`+L+hh)+nhP>#I%?VY>_>_IAbVzwqs>z69wf|7eqzWxN9 zo19!cww)h|@Rp*+G3m`Er#)h?@=JYk;KHXK*C!!Zx_JGezUB`j_Ms06GTY`OvDb;T zhUshqMf+to`lVxKHlS|aMK;&4c_$l}h+)P9QlCwhbV3d5Kz0V2HS(tTpZYG`iaHjb znu*qenwNtXw;*tl^6FVutN&ab6He ze>HegSLV%W-9f9j{9w>O!^BjRA>TBZ@Mw90p>2?R@*N|`<_(Oa){s=O>zTe3@${+4 zso&ktKS~Fie@QZ2bV^k&x|9kyZUK$LoN)+aZtKzO$7e%C2q~!`J0s2*uoSjtc4k_j z7|`A?UgaB?{56W!UD6-(Ux(RdjbqvdW_`Og3gTO$ephHp>@@a@P0;x!xM+$ELkq>@ zDEj5hihlKd@HOV73jFpPom*yP!h7TTT4kPZN`)*CH%$*?*RZvhy0mE2eLGW%bx?gj6IO06)WNxC#r}Cjolf9K7 zJCmi#DLHPJ(n84f_-;Xq`0lwl{zgHW@$=XjY6UXEG333(65UVPN#j{-VWGVt=ey~{ zcq!J^e;^b%2Hr*OK{kQL-P2JnzAnSAn=@^0@<%*`Ta9-USaRG`_VWFM)cL$(19uCF zt1>#*xGi5PON`D1nrU)Ed9~koaio6%vh|}k`eir0B4jpxt;&=)ZN)B3#T5p-ZLm}A zteV8t-}JkM{wR!!Y8T49Z&?DeGmFAb{$dL%l#_e1la~)Oi|_61r&l{7AR@vu(8%FV z2N&nefJ?i6z>X2iS}qG(DX*di{?Jg(LCwOIXU@rKhx10-gXO#n3%){6hDl@|wzQJ) z*IQbCe3BAr>BDz1q=zj&=EBRzW*=^h=DjtOT&kV5Z;sw7u#pugqAb=WD_L5_0K?lr zR~0f)1(_#qP&iuq?;tpT1+&i$M7LY$OMOixu8nSilPoJL`-Qt;dJHW3d5 z(nYr2U##l9O%3g}>j<{XB$s=?$ss@HTZY(2TMqVPDN?K6$!DiY8J z?aqS0S{FN5+e7nT8p=w}7e~g5SxHDeQj^j*^}c;3hXKyx z^exkYl}F*}OA4P8%|e6d)QrWf$UQ<3DdyyZ529oVChLI6fxflD<>PY26#ZbjWU)j1 zrT-Ds3w*vkJbvut%4~*kghHC?E@T}8AbjE<$F_^dn!l8FAdbw{vJQQ}RL=Q{Dv4G{ zXQF*pycWmb@}U7eC}nyRkchm zaqd5Nx5!FH0~9}O0yFDC!?s{AUzj~_9mf0D5f34BQ6BCA@y5J zi;IKy)H3Jv59Bt1)X7CB7jto=4pAPD@5dwr&pj$;C^dCOZy~@kqRVP5E+HdUORDgp zAX5njLC(bm(lzPDG}&R!|1V*uHy zKT}2^eRw}1t?p`y+v`#(73u{1C=dCvCi~d85w#A)bd(8*s`4hgm^2-e5aY!=-aqtE zDJ&{ph<>0F19Uq%iS;_nbIT@_z)K|&BoeH=Ydbecta}7@@!>LoJ_^IBNJbcua zK-{epmG5e1BaN*3a4BE!p<@_=0wa`G6Dj1Hx519~!Z}U@6fRM|JBh_xbUS8E+f$i?Bbh{jc|@2~h1Wk_q<_?)H1dpz zm~3i!rm;V0*Ft2-bhXGa$lG8!^51?w4gTkY?DU`@yekxmV8ucX8v74C+P%64Vkr}U z65p-jmQZYe-NPm2o=wWFx*>6*X>Nz@4GBq`264iBR_Yrz%KVi!vC@)}6hiD8n~%8k zHNI)pR(ZapJHun9&ab=2q(}DgoX92R;&4C?i$G#)XJqD{ss(C3KSm)U_$y5+!C$v0 z3&2zz178HzA^n&Kg`Lht+g^_5ZWS#%Fv=S_43+0So45^b}* z!Zr0MvY$=g*A0Y8#fTcp)X{3*-^%@Q+ISq$!JtSbC5ug_!wP;nT~|!=2BU0Nqc#wV zg|tjKsKb)<R5{oY-&Fi-qRo=Ihp%J_A%yD!d=zcu;DRJvW668)5tM_*h+^9uu*~&hHQ@pGneZI z+T~wwxbTm-(A9ewhN`IC3GC&rX8nGHp**Hdk|R6!YBB{<{X5!VAF{X)pk8**TzS6~ z=Q8RTa*T1P4Z)KF*(F5(11(07a$xGjsciKFu!_sZPAnCQvsa^5Bjj$ey&!%!baU|= zWM^tN`mN?>MW>lfv3|u29{M1?uXW@vur5Gr6uBa>_vGB5mvt7A^gkR@ozrH`G?binh-nrY<5O4Kye+30XkLz=(=|WG_mk1LN-G;a*Zejz4iZ2xL#;?DsOLlFoI^Oz&esjj#v6>TX!!TP(NBiD+a#~djh4{R5vr@iiqShTX z_{do~DpJO&Mv3`=-Zs02Tf{n(I6xJePu}OxkV}VIR%CaxNX4ekU~7IYyT>Qn_;^&N zdU)e<)5Rkgf?Xho;R*qs5=CtLO8^5&-Q93|ZkTD$81x=f|Byd@Db#^@S$NpprS!|T zYt_}=Xic$>FG-}mHz;WN=M)2f^G_u-#aPw9)3uSX8ScJXn4J@D$;M|=5yAH0>2RQ| z*fazTR7IjlpmiUBC*|8!@ZGPIaco;Y0y&cHh+~HVk0?+v7FS<(@0h7SU0v@s=Q9J@ zS-idX+-b9nog}T0h1ub8$?6>`{oI@ZESG#dm4)`PbJkh3hZ z1foqacH%@b$0bL=aTBPY7Br1tHgk+m{c66(t(FitL8JR!zM-tjPV_5U&5lDsL2cqY zXHFEmgu}>3?%>vlxB4JE>z|+TujpdMJf}DRhN{07pfZGZw%@28!AK0eb5&s90$Zfo zdy^bt4HP`pd1;;yZ{$;6xpr!AQ(Tn?ZVDnzW2+;CVHbgD%5ET==afA z#hIlXCaqU)7u}U+EHHJ@o-Isshbhc7rXI+p z9@I`3sfr^~YF0h6GaBU2MipK$Iagg zvTNjlQaV{JGxQFXs>#SF#!lXe+nX-w)VM-K8wogI@}o69kPfvIi;LHfGCsi;sUU$~ zeR4*|V=Mw-!~%guYE@qkYTw&jHZeAQ_BEC3=eNY4Gx6}24NMM@Qz#rZ>;MZH7AgIJbUn6P*50RXwJrs(#I3He~8f6*_4TvTw16 zWvJ$z9^d*S9^-#>B1fsdkzffhwJxl42Ph8j0_#|yA?-m(!^;gp&w5WU^lje9AH_DF zv+pFQ-B##}@;;F#{pI1qht~4nU%d(@Im@Er?r~=9{K`l!Nl6={<6FjtccWjSXYFQ^ zE#EbQ?9?*o0^}Hfu=}mErPN&eZGTY)5L z?B~XT)^(u#S8btTk$z`{L#5mIN0u(~Pf=EqslkJWNqnW}I7-1Xb9)f1GJA1o@dzL+4_iQ}TNOhs_ZFbxtwbrZs}Q;=OMxDc&s))|DWP8vRp!go1Bd zg6uTZz~Svl1zi@rJ?sMwQdnSl7l13))HYsXsu}MH`FQFhGK#~+vI@Gv>DvG8xiQ7U zDF!Nmd=k+*CMM?lLZVbFG83zwZhung{6sXSv^{NFmP$=?-F`;b&-)z~nd|-AfCU^| z!v&kbVA@6}W%Qd4S@01KUsHk67WCIe0j9v#T>$J_Ve-A^|A>a9Ld>rRWhB2+_k7;S zTOw03C=&B72xO=2tepV6Ct$7F%`0Z7Ut!Z;By~k;x@UqUO%!EviC6T_n=koJP2KK4 zuKyx=Tg$4Qp7KAx+5eD)kP#sSgKYhN1{&nF0*9Lg7*BS93$bY!C6sS%9j55Usq-RT z!x?thsO@?ZOp_YWGM^H{HJq)>PWCv{1wWDY5VxQTQ*+FT-`ce z`zcn0UPI7^<@K$=%i`K$&)n%W`C5ZX%(*;YEW?XwS$(MacLsj6wgV!VS98)Mt?c%? z;gAO~UfulmSgnJL&oZ>FQpn%;pn<7YEBdxu(Hkf!4<(h(ki&UsE|qthD+ z^+HLTZ@8qaB2dL*b*T~w5nmhJMcT)%rtCT^-{C15_Nfr5gohHEozacjSUHRREW?bU zCui1WWW7-^!Y^@hMi&%3pcWIyX|bxXLoId!uf?SL@LCMtg~YiaqF_;gCfElJps)y( ziMo3A%^CB;;l9UB^u8Q!0q&CNHzj`vI~#s9(v@#&?TEguW(8`+P!>s{wO>Mo0g+GV z!)0TjpSv^o%cv4ci5et7yt!_&Wia)AlWwGJ4XMasegFY`;d_SBLw~d|@O;;egyV!p zXvwA?Ml6e!+2I@S6rhMozyh>8!zSQeQ)>z@7B)e**U3B~(g}xVxDJ%&rIw~krx&}@ zHK&DKtG-L4r~?W_DMgiG3d~&KuZHcQCPS7RX+mRYRQHT&f%}^J5`^_>01s*pf(Ep= z^Ybfuy*JJmo7%Uwzc@N_LZCtrIJR+#l{_{Pm+4dCuT^s;Mz^=uE3?h_?JY(0JIw|| zqAruj(n*Qdp;j+L(`a$ei$eLB&m0OS-obX{Eg(DNABS4EROK^Waiq?DGhLGpwA9Hr ziceaZ!8%-RM97*O0@Qka8+Rf7%gvl4Ny|QanDOCaKk;M35T>RyjfX^&AQ44ugD+&y z57;wDCT8})?D@2P)~}y1>*|Du(u6-><_1OE;IQKX9FwuM~Cb~)ZCoX?VtF%xaCLy+y zjbK*cLLh-XdABideqx$Sfe_EGvQiK!Qy(Emi5Ft z#;|Xbu>!Ik0aw#JwD0(m2Pv_?MF02q5im&nkNbq+9ol?|3!Y?3>|Uwh)OQb3BRE?B z3;NRi&u-2dDYH%9X-)Q$yG&zmn@>mIh|cRx0vl7OPQ7?&<(YJfHTkPCeV8oBe!+qh z{z>6}6i3I6*z?p{OW%zy=oFA66xavfnLk;?-OfLu6~!J`Q(0>p@?;LJLC_u+1Y7KX z;$Kj(BLn-U4HA2}LbK9X=FjL?$CGSw4WcBWLw&?GuaUuAW5MPQotZkK=uZ9!g{0DWbCm_ z9e2|q0Sf@KU&M{paTIz7VE;$AD%BAK0}kQP+R`wY^}g^oIl$X%XKrh(FI9{(HNmCxYV@L2%rx4nueiP8 z(-fc(AQqF0Fx9REf>wdAdi^59jr_}T#kEO?DBu@-L^+2zvI8)>29i2M2MMHRbAE(r#y1Qs&jL1Qg?ZEasP?A9mCWUL%A96H9~iEOdqyfaiO z{s6q}bNh9eE!`<+7q(;%6*?}H7h?}jItsdJ%yBF1LD7arU5~-3zTZMDuQBMOSt-?D zRKAYWlFV=E6)v_0T8-N(wjs2|v#K6M>MY=Dg&~lg6~LDZ@u_TGrh-~l!{LjE71uC}zN2GqOS)ZE$YN?`FTeV3oVVu^zw|!bx`u4M~mrO2CsP}9f)NM>)AtfhMD`X{Penxw+h8x|?`D}SU zKXCr{EN!nw)|8|`Z_WE=29DpR_qSx#_W$+eM>L039rfYy5Xy!3CuSNU2e;&QzE{;I ze$SR@9Wo=LxvAhD;NdA|%pGqe^LOU`ZBQE1axx1&d}#R_WWUsonSR*S@#d^)V)l6| zW|O+ToCn;xS05#b02Mqhxn80kc?|a9%8-A5?;!{wgyD`y50;!^$zHX-wT{BxawwYp z;OipUQ}3YpCOcVpa|mmYqt?o)44X}}U5hI8Sh|C2h|ueRA2jTJvcv3Dq+-!6s?tnU zPYk<*uk9-$9rlRz()CQAsjsGml5@#Zd$axPt3h^Z-0S_1Ekf`V1i@3#_@a_b;flsK zXh1|iX;$V4g0aEe&%XYiMy#m1{(1EiY`WZ^Z9M+$W}vAfBO_z7&z=m(l#Job+eHm< z6$nd3IjM;C7IJC7H6AqkvL=~{;xWEeTE@B4Ua6O`=J=UvpMkRmcZ+0NL))E!D%O>cS4>Ae|ucI$5l%fdH7J`|WjQnzDj z3-6kLZDeHw6(Zrm*G7byG&+SBjBH@{a|6pe>C81>4TIVCjDmKjYqpX3dg(6_wx6*e zPKApw&)BgZ2A2gS#K1%vu6bgum)qS^rZ+?Tttdmi?61;lwdUBzpNd7v?4qaJZE8GU zY@d!X;?R*hXJ)hxWbXqZmC3vH%K-Rv;**%|LSyU zyb__c8j|$sTBqUXGTIB@TzfyR&xcrC!dT#eadqQy!d?vQh`bu&LNf$o)(o7p}hjaM_y;ybk_{mLXh? zRKnHR1cT@(#c73CgOLU}2kzL}YJ;s8POQp7pp#JN`4;N}4Sp@70w!kro6(Rv&xgdR zBcn4NW;r>zCv;)y>kfg44x0}6 zU$p&4+)gt9q^k8BmX9l#latS*)&h^RQvQC;f!}Dy3mrux+jKQ`dgGK4x1vlC;r#zHAj1*w%aRAX;pVIG0|~cW{>1P3_LbjGc3)o@jUKt8t_V?I$?XOj z*Anw=vp#MPYl_S#+Vpv+DTZ$6aoN|mQbvI6jA|V{+d`z@Z1j5M8_23^C8p9-!I#^;~AV~$+ru+NNFr{KOLJ-=b2_JJJYfWDeLTSmgo z#B+LwLXS)HpBF%rRUb$G2Kz6zx8FyfIu*kl1zXh=s`yN)ua~!t@G)udr8j!TnkJhW z?h-L$vf^g=P5TYZ9-Iju0E6n$b}p?R2HD}qy(o~K3Ac}mUmm+e@Z9Z5{smp#Wc&)~ zm_ea_ZKn|r^w&t!x0d+;__)E6`*~L>tbzL->o`NOjk_A^hJ>njdWA;utE@ht`{3xw z5jV1GYD)E){l_}seUO zmRbq!i5%n!I>k$%YLmu0X0FQ+gWZ^~SDa*8m_^FweUZ2G1i{4>W1aLk@QbNaF+a$D z;XeEZxEk8F(3P{$a4tFnf-P%l2zpaskU+AAQ}N^}Pe2L11K5Qo+w|@^%x|q@y8H25 z;0L|}r9L#!-tT8~tmILxxI=F239Xyr+Q>CsL(R{UPN*Qs4p z9$vg%kr;Aq!v4`4fk&Z28+sSD(goBwRs7A^%adzOzAG7OiG`2lzB(Z}5X>S6dgJ*1 z_u4*M3+dSYvy%?;_+IK!{~ezTj?~fiZ+>uND|Q%%A-B{v0d9n5`(mbu(uJx&iHIU5 zJOniqcZf?qMnk=}{?|>=>`D&mKIy-O`EO(L2IgZ%233fcv%$sXT?j0+W?+V0eZ7TX zgUYXE@4$Z%3K|6HDd3za(f0Z#(1E~iS3A$=OO7x9g`0D&Q1wP9pNRLaB;h6s{tVik zr8CPQYe*ia72%?d^(*E+y}@3;HzH(GrS{I|x#)hhf|;x^NkEJ)MCISukNjQ>5g3n?RE4Yfc6&zIVLl7wjeLPRU zb=TLq`BUEdGV}J_`X=_|c#gQoN6D^`Yw2kbaOH&&9c6XzHdgN5!n?2HGH(YyJCnep zkj~^)p7%KN6w(crlMk}9GD*@IBRaqdO%Mv`zyOWX`N_J2!SOzx{}@CZ=0u!Hz)}-z zj4cX~zvly+;y^Jbr)t=|(Oh?5rv9aq|KeOc-P;?CJ(gu0LhOeROb*LZVcp_4py)+XXDu_Nh*v?R1KBd{LD0!wNI zqRSZBtBtriJXXNHekuQf-M*dkF+Y(csKw+!Ek-7JxG#3H7q7)+d+=I}*5dHQK|_Nl zUWl98rygXvRp$*$BJLxoyeC`eHGddNX!*pnWzJ5)6)#9Wu~|if!;B4&V)J^Nm3GTJ z((t#Biw$GWwypHX8HYwcerms$$rwTL2ibReU4ymy1IM-EfiLnh>?>d@5pM)nSvG+3 zzDjYECl{A5PDMO8%J)ah^LSgKQkZzJ_Jek(2DI0KYZcv&1s^25*V}#*f72QyyVvm= z+$_DRxc;a0{(UB}aua^E6h%U!WD{EK`hZa}$qkV6?wK1cYh^LWBa6@&j9l&)sJOj1 zR2h)ClznGmGZi=O+fRcFG?Z#gEO#*aAKQz>AHOSxvkJJg$Y~9hR+~T<_HTX3)r&Aq z5590ad107s23%e+=*k}x8|w!82+};;#$K!~SjEPR4Qom*4I4ky^4dj#>@;DL8^2@S z=AV>iiL%72#kkG4?M)J^cI}e48yd>kFQ!jS`>g@xtlUE2A{037*7Aew%OMY9YSoiwpxled4!6;hxzQC|c6Sy6Cn|xuQRJWJC4o*z1X!CtyH|8S!}6Z$o8S0l(hsSrz_}g3 zMsR2zWT(X-gKNCjC)|#0^RK%MpdN$W2v9^?IPUw&{k1XAH!_lfU!1I1M75p#uEXx4 zeBFTB=JFHI=){QOJXLUmZdaxQ>h;G1YL)~A0)(ulpbqL|I)xL#^@)WXKUJKe^r4~m zs3)vvMx{41(X!#?99O0HAm9Ss2VS&EO?6+@B)VAJ;o7lj2+dRo?wk&i3pNmqxQVZ^ z?yxe*PIv1?{jxcC^{J0pvwF_5zkkpCRe7#h3D+0zl`CG(^UDP{;*t-{^Yu4&i`>~H z`o7q0D`gp~FXhJMc)=7DL6_+Q4#daWXW2n4{NYnz@bX^t+YGd;G+ zVE_jRmuM3=!KEZqOf&Os1lNb=?4#{XCoGsF&R9EB@=u|anV_BYxkf3f0}|EX8eu76 zEwnV9B(9*eo7*t-?>&&6-akS4TV0@G?x+00vNzjfUET@WVjKZK^fR#du@4t~9PI02 z4Xe2;dSUAy*G82uAKHWv!4U+{WxL9^iA%rC&-I7ws+X1#;q@5*1m2fLTt&mr(0TAvepbXWgU5t*v;>*CRABNG6q}LJlE!qF! z%^(8EF3$h|5+e!Ngm{0X1vYRq1e&Nsu%WRB^kjCwcWL#u8ru2$LoI=iUa3W=D{W?o z{JDH(JAGVz@-GC>&gZe-I8XPN*~(p>?!wACX!d)(f^DtAk⏙yZo7`^_ZVO_5R dZQo_TBEExL5Kd5!zkqzZ*^#+1cPy&O{tFW{t1JKj literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/english-05.mpegts b/test/browser/media/hls/english-05.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..8151b0b58ffcc127174dad9ba6369e78e706ca5c GIT binary patch literal 14100 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

+WBXGLt>t8@gXi4VPx2Mi@-%4otE#sI zZ)XrHJtXCCc$oJ*K-sLMm7~%s!GNVv&&;y@g#^+cB@YXlh-qj_xWd zz_>hi1KDZA`(|D9P2%FJ^E7N^EOZ-|ehg=&&@mzqH^pV5^alcMFdhk&lnK-7Ucdih z;G)PJ7e#4LNkNSd>ZKYcjM*5nZyNfG+>-rOuB^*NJul2tam8uK$}H307T)Zm!QmS1>oWiK_JUWUd5%B|spbLte58g`pQ=ZRMhI c%Ow9Z5Ba+RgUvdgR%9hhGfOk`Kl=gy2jMR2#{d8T literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/english-06.mpegts b/test/browser/media/hls/english-06.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..6846b8b272b7673ae3022ae8c8165938e6fe086f GIT binary patch literal 752 zcmZ>F5ENr@`k>0dc#whNKjVJ}#y<@r9zu+4Zf>~+sp*`-sYPX($*Bg0~;pm4-8rxSvCzWC*pLCdjQbwOdEv2Zhy$|fq@@HY@2=HCQdDbM#9~Z z!A>E7fn%3X9Rp5BF)%P5V3^p@z^cgLc{TC>N1p~k`#*}}A&Gn)VO7s|&MPl3FY**p pabf>d!`t>D{@nZXXM1a?1>E@KcCJgGd-v|0NiLm&3~<2Q002rIPVE2y literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/english.m3u8 b/test/browser/media/hls/english.m3u8 new file mode 100644 index 000000000..43514c0a7 --- /dev/null +++ b/test/browser/media/hls/english.m3u8 @@ -0,0 +1,20 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:2 +#EXT-X-MEDIA-SEQUENCE:0 +#EXT-X-PLAYLIST-TYPE:VOD +#EXTINF:2.005333, +english-00.mpegts +#EXTINF:2.005333, +english-01.mpegts +#EXTINF:2.005333, +english-02.mpegts +#EXTINF:1.984000, +english-03.mpegts +#EXTINF:2.005333, +english-04.mpegts +#EXTINF:2.005333, +english-05.mpegts +#EXTINF:0.021333, +english-06.mpegts +#EXT-X-ENDLIST diff --git a/test/browser/media/hls/french-00.mpegts b/test/browser/media/hls/french-00.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..4ba09f08760c656b4b02c8aa94c7f803a12131cb GIT binary patch literal 13912 zcmd6uc{tSX_y0#)C<)mmWC;mLLPQ$bvqU0mk)05-j!K0>_6QTQXGtOJXq8=rBvg_u z>ok@bGxzTvGt+1JeZJT4`d;7PAKzE+tGcfD<#j(^=RWs2&vVY5mO3j7LSs=BLH7!Q z0CWIBw-L^+%|^HV%o&fXj!ul{9DV#sbJe=|BhHh>>>YF{iu29zxm^`ACZ+sXc(XY_^#4&Q&=7;X0vpz{>Mbw z&syQ8`R)Gx@tK*Khf%xMP?;&W4`^oJAV2X3wkt5fCyMpCU2}8uhj@BE1$Q3y%6II> znw$R_?*3!*&o63*APB@h^7`Cr8$#Odq_D8C)>DUyTfH4#R%WQ-!Q9e7rX`A~MTcOu z-5@CsT4KN}fNrszwFE>IA=s}>o_FJk>oKDESQUrT-h=PoMMes~&5?_adbhW5r}+BW z9lf!hb|=$6d-58gyZv^OuUuS0_~S8|2kgen>vWo1ZN-zzt_}-A zaPrf8x{CSFiJpZ6wnWs*+U(g7*j0xq;>4SdgU(FTBz z0G%$xgTzDw`Bnj$+?KbSyS+Up=KalR@#Ow^r87RU#*9*xJeQC~f+72yLo5Xt?{{MG zVPoUK+LqNjGaz>S!9RcB7j0`9>07+%QR41opHrRCf8lRk{RQrg6&o* z!4bPcuEM`yyAMw$w2$fuI^Y_YEtJIN*>*y9b_PzX2g`~*Yk#DM12e!99@S06r#Ji% z^~|EDZrnGrMVSF*Mg0DcY#Qo`8bUph_X}6CU`5Sq1K{-T?p2)6?C+}JOR;bSQjNL_ z9(d#Do~_a1IgvTh2h>@WQp9u8)@OY0ct0$j`fppxh#sdY-F#AELuav@lr8nLv0YqKz0sd-i#!!o1^`e?~e8>t&?c} z!S0bo{(NhetiZ{vz?m#R1I?b`;@UZz)QZM!Jr8P;AKyMx58CI9JgIPAvIM*#qL#rI zo1Aj1C94L?q6h@#YpKhU_G?#MQ_nk;(J%;lmq=)0vQMW+VtKILpeDP~@jFO=tJJDr zfw8{1Z>8c=^n+aP8OZmZOLOz&NtORt5wmrw?ehg2V=+hl2S)p~Y~;&)u(m+21&@O4 zoGWJS$EwdZHdEJSCV%Z74DD-q*yN4kG=x4fSf3p7Llf2Fu%K;F*mP(-qyJ7=)9>K4 zq3N>p>0!(gXj}~WfInNr$jB&pkWT0@W8wMXQd7y*(;l{YN@q2uOznr+9#kwU_C#K@ z;WDhYb^?au8(_KWL%+iHNqOqxnI~Vrn!65aX9_?3%-mSAu8&Z5%rfbgT7KPf_y|%{P+bJ6`GNk9NCiUU=C;%$ zTj;)e<*;6l`k`MAYOp|!Fe;t;UO!~xde6VC4Jd0b@3&x6kPtvZ@5(&cZ{-Arh-zq{ zcm7!^_u9(nw-fep{xwcc?nmB)22Ore;qu|We9K<%`Sa%$xzC?{y2|_{B!B(P6H#3i znFnUMDqJFLx3%J%B2Q;8DTfxn>;}&vJ2xJsMoKBYYW=Gx-i_mVwf3E@W2$1($spBGK=NXDquHGK+l9I-vD_WFyR9RyKgPoeP znmqeR5uFr~rzHRCsPZqHQ)0~fBpbv(pSj8K>9o5}f_|Yk|6N{If!o2jH(uc03JJ9_ zZQ1_)`F=k;8o;Lav7o39ki|W4p6mbyAxq=4cvQQ@#jhovhyeRNUMDNvqk-Fr3Pc}DPJ~+n~AFgkvV$d~{4*_i>@ci~BoI>n6*(_5LhX$vcWH2PP zK@w`+>PeM;!PALTDQTJahPR$k64k60sY2~`8ejcha;E5si&%n-c>JBnoT$A>tjnwDg*oF3bMi+8S5HLc3hR`4*nt9FWqsxG zdL1<8&;KmFygF`2`4$+;pq^17>zTR^s-9Wg)H95O6g@-T?`8haD-N=WNEmIbe2O;0 zFho?`Dj0q8VZfYweWlCIz9d~&GQC*QdqZ$+Kx4VjHrtg6Av2d&@}~VYZZvf=s9e`2 zp(DX1|7pBKmwx023qIuI6ES}@__=PkNTOS2!QdJ|5oh#c9KGYv?!Uq*c$7m&MZoh5 zahi%hA_qLJ;@RV1jzEr){DVNrjIBy1&I2pxl2TZOJjJG9e%#W+Huvj1qy8afWb=-r z$qhMAUPtZe_0usvt~*lyWu%G|v%l$f6byUI77kP5%(pgoe1FN)F;FuHY&RxMb^FCs zYdWY#+Ei9F&nIN|Bqd3}vwsZxZW2X2IfeoUOw6s9?k3yO<;^$>Ry~*z_`tJo5|42T zjuuA?eCK*9b(3_)p(`=P)TbxqJmc?g5lr*?-y!?{^c}Sd#T^_se4>(fYP@+lt|7db zzWxJ?A)&o6AYS57+1i`73ffLlJ^!yY9$QE!dZGiOxpH58G4Y<7i3Be;@*qf6maUek=q&lQYS7x$(Lgip4-yszOLPf%e z<(80X@TC3wh|{^=HmfEWlFaxzz@GKXFl)QqTT6wY!~n7u6QIVSkq0j#1YyqASvY10 zYSxKhW4@*+v1`as)W|L|XZv(wpj$-#C9I`dS64=H{67ijy&Yopqn7K=k38K?zW8Vr^7?O#-cPsV7no7tjC*YGVMsG0kN*_w`&? z=I>p?8xJwrwfw)CR~RL-YGciaObGt_?o6oDpDr~w|H>= zZ0_5oqY06I`^b5f6=})J7*@8522KQk1(^qC8tbD2`)Fy3s!gEE-_*AFk?FUk40kmS zSZ~Y(pa2(+2#BrmMZtsDmb$qRLOk*ViY!s`dB$Q%joELVxQbsGBk>z~#zJhyqHJ94 z6Dd+v0USv1T$u?n#3cwbPfDPNhRj?{{CU3#IuSLb` z?bd9vEhNeX2g`ApBmbdD;T2z?EzU6~oh ztdYjnQIk!Qc{VkEI)6_L0`Umx}TPhu8vteK-_r7`S~eQ%DgNI@aqSabV`CcEAiQj+YpXu1kn z*6e3YMM)O|_@*M1S@+&wP+VUF1a!+fST6b6Y4r++>yB}!8DtZN7Dm=bgg6y>xOH+^ zQx|+sfId7J10E-;a}OJOU8FZLIg_HBt;f6?7u>QVY9aO>c>1R{oNstdc0uRWPNP@5 zMix|7Rb@mU1U8O-$V#~2y_+pY|6Qs$yXm!k&Jm7;uU+5|39|}@&(0M>cJ}sj!voDU z4C)!Co!@LuQ`uAv2bqjd-9&QkoSh6v71Oz!^m&V5l8)g?>}m;~Uv=wv*rSRd=DV^8 z6&b6>iseOYMf;~)dXg%}ZJw4dI9xSiOti0P1)nin{D!Q1GAN4pt=JQ_Yx3ApV2A@~ z{QAg5Yl8iR0u6z7e#a;f%OlyGNE@iZSYiI_st1cCG#*UM4hKPY4*gF}wqb7WOiwx` zA3ctg*mmgA6F)B-<5zpbuJwX!OTm`GwAiyEb{(la9w2PfP z++Yp(N>u9uFY>q~msWAnH=?$CGD_jCyxz>DShrni!l#~rBFPPVbneis@Y~o^UYzue zntWutbB?G_Pu&RJ6~Rnz(J#1D=o>Qo7^8H=_Y8mNE_WJSgI1ug6yQ-SNjVcXCrQs> z7N$JZ@b>o*+i&g>^xH&R6@vLN5GWvm<(N^wguIKx84r1L`c51ck7sdlm~cnlI(ZkT zIJlUPI41i{^pY;jdKwzK5fQ`j>W`|cnA~4q&=P;8ZEDNDSA=bcF%0(EtYS@pE9EsL zHA4cJ;A@x_)vc+4>|9E+G#YAjqtXzdX*MJN#s1lYV0Z(lk)$jOxH|&h{-k><{qA;a z_UOkQ(e@o{9(B7HGMcwA?r^^7eD=W_&jTg(=8w-rjV^CwUprbZ-ea%PE<1VSVdaM* zA3f$bF%0ou=1i`K&$X8F83%^oYth+yW?=CaDob zO-HMATb{PkLv}@r|DhK9ua(?k1Gj_jta3e?RU=0ar|Jh^@$6DZOuM>RChikUK+ z>+kRH`_=?U3QBvh(lF)3EmHZxF;cQtJxQ+)hD;=;uiVxK;KR`4pwi4>*7Rvm$3MQ3 z8EP>lvKGVNr)V)o#HJS8H9*l~e|LbT+L^mVL&Uc%BoHQDJZcd523VHWN=)l+_X?Gj zTUOY9To@x)IpviVql)NZs*k?LXD`23-EMTO>7mN-)Vl)>66Tj?i${5_L%Z{Wv7#SV5o$rWj%Q}a`MCJ1 zSS-^`KlfeMcIv&Jd9nX7owEBS?@}j&;zvB_+-q(Fb-3A)>ge5?t(=c6I-BY4+>EdE zJRQn%7b&E(KH!L&CKmu<1yMdM#Mwc)W(o|&8)>PZFv2}>frq;_TTV2zp%+C&`a z{Mvd`oIavAIW(~Q1Ea8kzaTrG zXxxt6V?_?Z<1I;{j@I4G+jPWZ9izmQnc=RL*Q6VQ=OoMqn7x=LmT$BF>Epka*%XH~ z*Ia{9-Q-l9Mm9XEHgjQNYIxFE98j>)i*ATBKk>NroRejjNX}(v-}|IHf$6!as_o|x z^uI_$9+HP7v!cbL#Vd2AG&!DWG9q^=Ki9sV`RjM(i-1>hdhEBgPQAa6OkZ`wE`h<7 z4b*z&vX$A-pbcCdWZy@F*{so7FqBPN8?h&6nATiY>56WFKP0dU+9u_G)@9Gmn%!X4 zd2;`WqfX_s{_8lSwWSR2uUBO*Ug+6P{H-YT>dscXJB)9!-Jd>TyX6XS=;+erLL0^) zrPJMMEMF>a!?rh5}!pzwJ`EHcLZy-xqUO zo)tjZ(sCkIG*6Yp2if@-w;VxsMf=(|wxs3uoYYAR<`3?^ir6u1UtNe#SLi=E*Q8&Y zpYD3j;FwFkl7frv=o@j4U#0E0UaWo)VYD%-ScV18ivwI~_+Z^t(DDbMNY^KQe!eKc zydj^V&1bVq#7ZT?j|f8HTtaS6rI!zXF+&khEhJm~aDADiX=!6s*OYwBz*)2Cl%z)` zk4g_cI&jwU=`VEafinsyFi&bjfSF2&@`{v ztg_A=(3wTMFM;nwH7xkDoG{Z?P!nTxR5#}Q*&+6uQkf}dTOTP{>y+@B8tq2-SIIw< zs*=qgfc@TEHpll0HV-czC)oa!_TUy-$-k{(TTUhbEpCx_Z!|?}HwORdLXl+V zpy%3K{=%7{)vVsr3_(dVn~D|oh1d2?t!VS^Yss@B9U7Mb^P!kNP>mZ+n7cLha-06e zv)z|9whCT6=E29=#4|&9$~Ty)PVZOs{+&xgR7N{8qJxc%O+@UwPyA-yFq0_Gp z|A6eQKVwTCj_cNLn7_9LUkRuJ;4#}MI=lmOl|u1v>WpXe2xrT2%_?@Ih-!xGU|`v_ zZa}x71kp7x_qC$NKZJ17tut$4evmYVV7gbwJ}*)6h#mopX&KeLmaHoh!JSi`^~U>d z)gLU&-4lYW%NrD_m?En)T!s@YGz(x%3zW2W6Ft`-{?`taf|u$Mcx!lsl@cL48@cvA zznWo=S_5$y@V-bdHM-!r#~l}gOwOxFo%6L{My^@9Hx;>?bv{Pid6OY6YIeEcMNR7q z`N!`+>gKv4Lr*8mNDZ(yF#pVcnywI~4oe!Ove3>^Z1e&USXu>Z{SrP)rYjy5R1(U; zRimc;(F+4ULTC+#!19{+eP9kHKtTN-u__ucyNKa~Z9ju+@ynC#ZlSfizLcM|JS~9#P)lQ)|_9Y+`1Fi<&8D@55ZDGs{I(3R=l&(mBijE z+4I}l7%q^FV#&JGZDrPM1$L7mJG=$dUjQ=aLmdhsWXh?)p(DL~i}I~dluVGl`k zZSpBBvBrVdMxJkxSnb`(sw=gOY`yX|y_!ZtuI^Qb7Z?i$uac_o`aGm_#55iZvMMyW zv(*OXL6z}VhdrvoeNt%|79$JMJXUXgiqF!0^2%ZRk1wT>P|7S?-dP`cNKVPHvZ;dX z$8`R`X|b#gr#&R}66_C;NDh|o^HgaHRLAPbr*D(YDH`7Ma_MXLoKnEKo^ObqAC`pQ zmNyW(8?Ix#HIupDaRnUE;x2PC;A85I?J@JYA*yBnKJv^!@DiMjp;}<``dW!igZInj z^@+cqqzJW`0@Px3%KB6-#=EJ-cK2^;F`E8Zhh}$BN<<1<6R^L~q%m0eO^mlodTXkN zd7nxs?EU;ZUi(08U2PxIFXM;4f%?5ePKd4dgq5s14(m#qmxuDL+u0A^V-ER!<+XXa zKbzMrdA3!@eNT2t-|>q=))$Wd#}}*9C@JT3j2gK|p%mg}>C9z41ntf>K6!DloP<^@ z2dHEBf8@Kyf^M_$Z97V4?ww4Vxcg>LVOkQVv5Thyaqz9wy}%UgF2PEAdNEZwqQs+E zxen(ci#JWG?76eWmI|7Dd+1^KwiQqwZAAT9hXcd)r%oJ4O#?_lPiZ6+efN3IX60}I4Un@0*>^yH; z(t>Fy2;L1-b!jXiUEznK#4dM3>`n5pAp|}fmli)F}b`{$9E{C-&Xx!!yfb6{G!$dVg z|A1zq#KcOo>O|;^goWX~dHd$iC?A_SyX{HijeZ1O;%oDtJRMhrUfhaQycMM~^UKw@ zxJuIdhj+y_(NX@Pnzy^8jU={szKLOp@g3w{vL%L%O@q<0N~ttMnQ9sdWmrusC-9j< z3K~kA^TKQ5>&xY~L{(VPZTOn>I%?y(rg$BTo~N-m8B}+64J6$pp~ib2$EhQh`dX~? z4(Zlc&EkzAJKvev&NFqQFru1PM6^VuDD8Fb-uCeU%yg004)E_h8B#I`3{i0;ud0TH#D{Ib91+Vw$K$o^NqQ`%K1YKnnf5mUuP4G~wMYT8YLk!lt+I`K5+ zls%g^u3(3g4fo6MVmRwh_bzB1?cm#c@q!&onT@&3jN{C;7nOC5JZ943NkyK< z#qsaxk8v36hFvrHBa)k=9%1wKnS9g|=mWOIS;bBqhhLm-OgPOdbj|EslkvCNNG?TL3kx4$-q= zA?Ld8(`cyYh~=;Arg19ra<{?^W9t>&0cti-W5CT4K}vh~!;c_>xw;atSY?-f`=2`qpjGdaHt zA$}Q!TOFTs8fdWF+hjRcR36`&(fX^fU2ugloK4>6mk(}!7LI32vmRM=JiPFd?KR03 zyY83qRLIytg*)=|W=BzI*ZujIYOoVe1USk3vn6|CpC^+!AiDtkV^bcnplR;%u=*x> zE}^#+U-EaXFo@m0C5>k z;D1JFvN2dkG0mmP-9LA??D?6`4;0F@C3s`WjTxDDBj(^M4E#inMr)^S`!A;bH3n4` zsnG&I?94zvAzLG00nH8ww&*`#?zqV>i}=~&)^{wwOvpiYmL4RladA;wD{jbZXAf8P z9R!0EPhQCy);^Z$_wQf7f6p<^{GQV*Z@l?nr8s6gqe`hn-|HJxwYV#mi2Z>EZdj;| z@@K5tcfUH;>RUY3UosAJ)Tas8o9$oAPS$WE9~;$O z#l+lLuttJykKXb}kER-@=Z3;*B%7|vhT7a5$Sx=I-_>FS>xW4Z8j0k)D(B)db;rO6 z0fhmv6a6kv>sn%*N|>}f2ptIrujf84Z*cwa8{-3N-m#mt5#Ed~2gOBU<3sp|YdjYN zJSUJAd^JID6V3g7PE<2*<4T@TeJ0OgsB%OMHi{!(9AF=xG^qirVPgwmyw=asP5Rlm z#Y{8pGp<4{c9g8ef~a?{7`JX}u|1zCTFjQ>eb^C~x3^Ao5KFpzK>-{b5i6JVlIprn z6sfnK=i}^)-YTdYnje~P=`mP*joIU8PV~XSDYLgpI%ju^h}Y&si&w!}a5T&9E%W;f zZPw;>IqynIz8PhaD!Q5>r3^=vT4@CHj7eZPM?w)Cf2K-YBd(3;(h#YW1_A0>w5CX4 za&-Xh&VC3}v!4V@7GS#ymP}h+9t8F^F#GjQuCNYw#9$b1&z-mN_@=`jPFJ$z^;LYJis4wRla5)< z00LaS%%r=qxX{_9Fv!j^-LHS%CI3xtx=V>kT5UDwS>5}+x6QMd*OFXSpaa6eSpTZh zU>tY`yB6R?Yoqjf()F4PG?q;<_Ky%{&uL;4q3yl$qXe@CdlF0F!vXI^r(DVH@jCnp zZ%-wQnZ=~!$#9}2Uf;fl(MNcR7m4RwiQ3hzI*RRfSqPN6A)~w^!T%#7@i9X$bIGaBQk zdWVx!*oR6Wl<#)~KZqC~f`%O2QfB(l+zk=&4pBtL6z9F~vMOST92I2LPFhKGR z&~2)1D0r0dm_|eCG@vOSyE?*>lB5`?;V9ET8Un`GU^H;SXMQ@yyds|xQy#gaekMTb^tHZRsH)$QT`>!&TYVlEHt)Ri}KT- zP1td&DMHt_q+uPjz|svrBKKl8E$+)38U=M=NplfAzu=04dK}CkiP-Y}ew47?d9f~0 zzYyp1xSzAID@QPjb$c@RvBmDV*{e2H+K4mfI(YJ2^5ksSm7j>(3mue54k?;&PRKj$ z(bn2_ja$4jcK$*gGxSs*HRYvATj2HwUT*2HFOqMIGnb@dP;$C0WapvAlCPhuBP3Fh zBEEwjUMN`CK_xJto0!Ew!sCkR_lnkfK0oNdKg9Dw%g}eq&B%t>gm5dnZ?^O9y4m%^`u1qTj;9t^U86X)?0D%4 zKGbIiXjrm5PH#jtTIGG@vGiDp~c+V?y24^^dHAKk~a-7LQH$pC)~FDqo{JAj)l zGX%8@q%lIx$D74+Tgz3ghKX$oAh1p$K_pfTQC`q{$quD>vw5sgiN8t5|xA^W}+ALTfB zzp^33H=zW?;Q)rTE>{vIU5J}M!MIhg@|hkJcRk!zSgG6MU47K3pjY5_Fq z7yr;JRt=7Ara@5zhb`4{Mn11xvLPRT`Qa1{sT&Wa0ZMiDu&?5XN=e#{UkR=+bQH>t z8NZ1k&usWFNDg+A2DuR`hoo(W0rx5iy^O4A37jmM)1CU}847*|-q~E|XO$uwp z{AN8R_Q+=t48e;sU}3V+vCN6DAlX-z21BiRsTP7snNxv$QOtb*%eF~S0CONQ*`(LB zV6x`8EDwWmmeXzCZ8O_u?nFuNp1H>USfNZ#p1yl7dKiqy%4A@LFiZsN`i0(iM*BNY>7<(-vp6g# zn0IFOvfs?n>A(%vvMK~aVsgiuIR9g~L4zxELiHyPcikzzo>^jEli^#W9PrNQ<(q0z zA^Q$*@>M$Vg+VSf;F=?WjeJwZH(sv49#cPxJ{)Q>^8I(ZTIzkVt%I9djJ5AyW|Y_w zqZEJHM@SLV!css)_mME`&PDK2XDGbXDSRgGr`s;iNEH+5sra@S>CE;N6|aDC@NagVLyf)>7Pm)H!*jYvt;^MKSn4Sny0Y5Ta?Ns@~5 zUwc!I0oB@TU#AOi?7xpZv4pmQS5#mFYONpIoz*nqrP<}N_l3NbmxfA&#cnXL6u5Uf zj|3O|mYW}8H@@WFSDKzK=XQ>s-UVLbwDY{i6y343U4-evgK3*TucEgzO4SM`Nh-z4 zUlJO-kDnx`?P2h~_(}5XlKrHA8)(q3;SfeHR7b$8YYuu#TzJ&*9|FK9rFLgIp6hj7 z*|L0Ln$z(SAJXY8a}I9i`~&Q*MTGG2%Z=Hk*~$iif0|#vx^d(7z59@z?HSj1FX^q` zG6pwA^bRH)@~<0? z$Q$lseE73fOp(p*`|A>%uswecL%+NNY>Kr--1y|3%_b8@>h2x`bD>Qb;*ficT%M|& zEM(tHV?j`K2cYIza(|A8e9>YBJ3FgJ8k>We@ts()LkQu#;~jtL;EwW9$9>w1yPtNa z1SPk0UO}ky&ugkSJgsYgdi&69;AAbK7t1!@wMSiqNl!#DSK#)Rd`HHJac_8|n2nbZ zh{M4v1uHNh|41~GI~iI+n<7*HxdiRL2i_Xq#`$}XbP{tnj-*z;0Vbb5dC4RLfoCO`$v38q%ipnU|BB41sgpjUpW}St zN=|EA;5T8-ksZ9O%#j+6VZm$H!8jgtlY(0BMJF4&w9|}2nVH&BZSpmnQ-ORP)F`r- zM!Q{}Rf zJKZ-yAiKhW|96Ze{}UW?tBOsHnvt!FU~hwZW=ak#P>;}9Zp`?>i85c8qokzm` zT~eg_{X_k``gaW)1!uNO#PoHDAzaElpSl<)i#{I;7zXU{_mI5>_;E|e*g$RV-)}Z literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/french-01.mpegts b/test/browser/media/hls/french-01.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..02001e0bace80398fac9b90d9ab7f52b14b52cce GIT binary patch literal 14100 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 Njme$&f*)i}{|^E#Z7Ki& literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/french-03.mpegts b/test/browser/media/hls/french-03.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..979a1cdd5900678a60235b7423a330347641c846 GIT binary patch literal 13912 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 literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/french-04.mpegts b/test/browser/media/hls/french-04.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..203d4a8bc644952b9682b201fff103ecc429444b GIT binary patch literal 14100 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 H-0%MY`S+Zp literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/french-05.mpegts b/test/browser/media/hls/french-05.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..a18852804bd521bcd09d254c83061604be372ee6 GIT binary patch literal 14100 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 literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/french.m3u8 b/test/browser/media/hls/french.m3u8 new file mode 100644 index 000000000..9bd1751ef --- /dev/null +++ b/test/browser/media/hls/french.m3u8 @@ -0,0 +1,20 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:2 +#EXT-X-MEDIA-SEQUENCE:0 +#EXT-X-PLAYLIST-TYPE:VOD +#EXTINF:2.005333, +french-00.mpegts +#EXTINF:2.005333, +french-01.mpegts +#EXTINF:2.005333, +french-02.mpegts +#EXTINF:1.984000, +french-03.mpegts +#EXTINF:2.005333, +french-04.mpegts +#EXTINF:2.005333, +french-05.mpegts +#EXTINF:0.021333, +french-06.mpegts +#EXT-X-ENDLIST diff --git a/test/browser/media/hls/high-00.mpegts b/test/browser/media/hls/high-00.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..f9b20af42b9015ff3ca6c16b61fcc3ab2f3cd1c2 GIT binary patch literal 45308 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

I8n+~erY1FvgsuqhKzbjB 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

;7ci!Y!c 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 literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/high-01.mpegts b/test/browser/media/hls/high-01.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..c85e3544152a17966a66a9ec87c92010c5f0a7a9 GIT binary patch literal 52264 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 E25)1Uvj6}9 literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/high-02.mpegts b/test/browser/media/hls/high-02.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..4aecfdd2c78dddd7381a2491ebf8d48ec42b4c68 GIT binary patch literal 48128 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


SF99BsYBBOofw#f z2I@W{ddP+0`!T*pOyx2sD6@+X(xI*|>7{DC!noLm&zrg|U>21*OB)9G{!jnvC+ENT zE)P!nlka|jw{znz8`v7r6t@D>if}jX!|tswQ${PwdL_Rephj(YPK1=}pJ zVx{Gn@gTTlo~uQo{+Sqt^wz^Lxa25{ciAivl$|dzEwreI<@mazp1a+Af@;AX35>gN zR@2b(5y=eb?JbJp&TO>~NS}_3X(TipGPpZE;r-$9JU>^*9!|p3NS0Gw7M3GoV`nj0 z1_v@b`MN1&|Wv=k?pHtmZ@*6tFm10d9of!o6;8r(Xln3OPTl_cz@na$UT4*K`{e4;2{S zjFqFyZzl1TR5?3)IlJ7s#(;scO6JRpnxz5kBI^et3co4hBJ&z85)OcA3WOf$_e~=t z6rhpTBQx!dK}_?0g`PImK?dkSjhc|i#; z-u{J^9v{D_see|&C2!?@2e(w+5q3kjSok$~btoxQOkOwCGvx#8)pq*_(^|AvbH^{= zJ)yX}YizAMKB1s)?#v!zF1b9`SJFndH|D_Bf%1X@h7V!?au;yTM5r8PXHzx~T*rHm z3}?!z0Cv$Zg7-D9&9lUNA*ZhYOzgY2bhiEp0sjGhIEWhQuv~ijYRXvH-ON{C*9C{F z@~TeD8^wuze*@8nKX3_q6W} z%>*Y0drjBoO55Pf-1|GI15c7i`W(evAMzNID}W1m>hFP$q{7h&kw~p+K~8hb#%3~t zx5CI+ni95MZrm=EUJ6yvYy{aA(f#UgtxA9S zQ>zJ`Xp$uEhyDc&55(WzL4knUSA9QPr~bj3J}8dMxCVRZ=ZEVJRW3X*#r4M&#e@CU zzL$*>3Jo6{ZB|ZmkGehmHlNDzP;^BUNN8#w};d}PefYNj>qxDf%firOrP9QpLD$wd3Y5Zu$7;w(apBMo@C0% z=nnJ$&9ODhqB&8ZVBrIRVpEJbojkGWaN}$uB>ju{*MU+RlQJ+jjD&FAO3B=4(UMf_ z5Anl!Q|g>E*WwXJ`J2fpue4|?Y1?=_A-@)>I1%&hU7D+W{n`i`>g5bLBb*Na*FjYT zoTLZGmDW58C4=0A!IeeC>|rzEIgAqouLT-PHf-*Q zsnz@juuD!<@FC=RkJJjgg(L;Iq#z~G(3J;o9ns_;gcDa{Wn7hEt?c0smCSy{*A(PF z2g7`PAF-+6Ke*P5Zc}p)%m+3(KA6SitzR3`z#T^23W(x?&1+B`q}U44ZEt&@nCdT1 zGt(+l!`KirXUAYuf(Ho@zRfM$-=sz*zp1977S48Fogf(&<;MYbb2#Yy%6<>)+r3MV zloOi^IIJ>dTu;z28|4Y$c=w9Z9B5B~5i6zigU=%$^WB~aW3T^}R{#53zkl&lq1@t- zD{{F^Qx^4(HdZkn5`QB@GWA{?0@lk>q)N8!9^xsmI)LS`?q6(VvDkf*Z1dV;6HoJl z^T}5;Bn8q`LsAYBSN8j7nx=?vMZ!EvzcE+BIDHurp8>7@Q-A-u{kK+)r2f=uVRuy} z(V>~FwG@R6So3LpdV}Ku=f$?V=v&A^vpuu=1q{KZMrd3nZR!6>Zs^Ml&mxg(@_HFZ z`KNqpykSvHxk|DsmY@6gTj>?)@?%Cz`b>#(7RayFCY;hwwe3i8Q4$PMo?h!G##28~ zgl~R2Q%Ug!Wuk9z%OqO(f8qmGa2Amg^J={%t{aZezm!w%E&;|}MyV2(@U&)Ue(Sr* z%4g5j)DK(rZWD)08QKn^Zl4zA2ty3uoYuq_4xiNc<_&MM3@mv}LmsJV;+pOPKIQSF ze3Tz)@f2WliCtlcn87T{rfQMjbhwrLI{A4@K#!Jkx#ie3@(qv_nTc_{G6!fE{wsNzkEN>y1tO{ zQm=RLn5%bB#LxZ6wORl>;*7$RQINirQN8KR`1<4PZ3SYn@t%KAlWkkf zp(dob`%WMeW97Gr;j>q5?0YO#prfHwx-c+jNx#>rs>^-aZ8;F8kwpfDy1ci#ubp!( zj`3Sv7^l$C#@u;2#$Fd@*OUM`Mp2zX%FA zkP!@~5G&>gXGKk&)vroHkEPaY8)#&_$zml}y%O}@kN<9+SB6bH9hiDwFSl@i*VyF8s;&7QnmT$F*J~c1W)To4&_}fHhYs`J_{b^Rpw$mqgAQUI4n~ zwVO9G7Z`mf3huonAC??GW%nX{MsktFwNIu~2A?>bb!fr5Uf|>^`sXK4u7c*SnO~et zUZtyvs8^0Ed8}-gM`x8W6IMAaLyFrQ$?B)69dQ~DgZMl0KD$$M$kjU(9M;}?_BmVl0XYFhUHBv%p zr|!O>6JvT@e;o=E#Tb43MpqOFjtVwij5(;fhkQ8s&==r;!w{rFVqvP^RcgxMFAxXOEYEM)=vh5Cg|$rw=KN&WxLrDj=l*@$#QlOj z5lK1`{d8)it=;|X?C45N^m*8JI?H}LYRlwx)liZN|KQF-)~{(hjc4PTLpX6WUd_II z8)p2sO8LvJ0*|>fvB%F|1h5N-nFyGI{G-pZFrzm{tY)H;aY)xAf!J^KQU1}WenV}M zq$1*Qg2Sch$YFkY?%eGB^L`@Z{FC^~k?kO|g!e9rsU<0C~ij7Hmn>qr3mA?5#x zR{vUnp0te~Ac7(G3%#USfnYah!g~9Kse=O6E-u7Cr4~xpWQHp$H7&VdGc`SY&6~=0 z{P_z{66vV%9NE6PK6bX98|IkB0}~ti&Jv5udE`PsXO0tAn~O0x!{Jv@$fpA_RwLei4iJH<8?@F4f$s;?4 zX>5f!BzO#5HG+vBIDD=0=JTAw=ni8=n&xVy6Z~6(9Xupy2aa>KS-=T#tB{iffN>XV zggMtx19NaR3jPg?|E5U1Wgt$5oFv|hlg@Wcqi^Gt)>K`ZIP8aZP69g?JPEflUxz0M zJl?g_J&ORAC+=T)q(wzxurwjiv4CilSPG6 zVogj1&a-b8_-d z#?3d+G7Lt#*haW!q3@&^(`Xh_(c3k3*9#%uNpTb4O?r0z>w?}3hu6sq!BM5ZU#_v{ z$ld{SvuzC0%tdN%^6jPV;8>MQ1<@BuPTJh^%h?iN-Jd!cns_b}#mokFbq-C=orW&$4zS6b0USABF! z@W4!41SlghnUu{q7a#ZjAn^*7p@E;<1c-{@J6i zO-xN0xd8UV2LCGG|04hHAN3Fe^O7Q2?l_$@wsch4EE^k-jG+Uxa6e}s)A#073Udhd z+0V)ldVQ9Oc}%rEeD2`>Y}?M0Zxp$%iFL;yo}o3G`z&YYrHMG3Ue+qZd7CC_&d9Yt z!B>EVQRqrj`yfupz(xHA!^n!5soDx2&`p6%@CfurW27f#>tE7ToM$b9x3MolVw>n7_m{;*_+BdLaqPRt zM^{|!zdlo0X5?-h8#!mT{3z&WP6cVpx!2EoarK;7T-$X5m5pcAnL@Y`<~H6PTjkxKxGfL}I zxWlxyogaQw0mWZ<+x=e66NZ<00ql5fsPoE zH72w6@SH^S!Be*3SQ29z=~l#V=YNi zrEK^3mtrYi0Aoui~(9d@PPfa6UEmlE6A7%M1%N=B4TgD^tNBn)sC}sJ4 zzRKI0RmY_FeRh^=A5SP=KCo2?v0GKx@i>wp#$o_*E6|SS;PHYp>$+fThgNr9%C_6MoA;aC`Ksof&ry);kT|<`$e^VH?I4}Kz_kVbFA*)_=c>NQv%kQxS{QV zxy+4xVtls|KezMsgWKEdW1+E=4+@Y4vx!WhyD{L~Gm$cUom-|}UF36MA$4`(q|oi} z0klp|E?ESf%;+V4GPT;0xoYZ}JDxy(DoL&jjb)zh+Hp@nq=u@HCE2>WJ?5})jy%Z% z3-ySC2PEEO7*q=YyQb@Zc%J$HOgw*oKuG3;XJMnRwy?yIkf=!6#73C1L`@`635Yn& z`6%=Xl1m4yX#neIsCTVISMz{yJkaYiwa_1720#`^ZKQfSD0rE~n&d(B+1Gd~guH24 z)T1|5zCR^^Gz3pUT7Y@xpZ?WltH0-&*LHu-GxFU}u2!Oin)Y@C@*}b!fju$CZ8gkqO-DPD_ZpFEL2%8^3<$sSm6gd?*w6pK05@7j`gPEo8u)24e zS;V6UYIag@O_;5v?zMkt<^Nri#kLu};SLeewjr%Gb5fZt7;;g`6UtbS-7NM;qp07g z^v`|qFeESUO%PqUNQwebwccfVoeYe-z-%A6vdO9=u?L*6o_9#WCrnqp zzbrEOiZ$R_lZG?A)?0nhlI=VWo~)(qopowD4Beb(0|g_}fhy`55-|Z5YlMUi%$3C; zyJ)hLk5%TBwYbgpM5L9A_cZ+06JK8&Z3caU8s>kv88J^NKi@wIliOeD+##%ln}6X> zU#;{D?$_7V;yp=Y+n?JwSoh}S#mNun&hfK2FPt$=+*%vQ>=4G28>%A6iYgNUGyS?hGit+>iVr&mhj=#L-C!{c%`9@tCAqsMO=GD;ZrE_a>v>dk;CTu}&-IV*-IAU$@31ZLW7!?|)$kYeMUC5b7E`8u8i$QvpYJ9j#f+_Rx z*=-F0L+G`*g~xT}5Wc}k`4U#gW+o)&VDfeQy?fh;JRp=%$am53dPZyR4kLFvIe9=< z0vW(C_mAy=qA^*J-`sVM;xPAvkAp=9TdiDfycgyg2^XD{`K~n2!$34wO%l`jj362y zp0w$gK^g-h7(ftlcf|XtX5Zo;hbh&$qO_7r^14M0PH2QDo*7@d5@nx;2_EIKSV z=7lp>l)#Qo0CwH~Kiu;jPQ=hwTRuc?NG4W7I3S=CARm$Qx*?-gGdSoO2-h*qg{}lY zrP26f@>}isimMn87Rv_E>Y?3QD(&&#TJ6dHQ>(x|Uyx}%unVrij#I-z>gfH#g2$SR z-&;yzKyOO$H9&X+RBuwIDV^25;P9S~L+@4N&6m&|zde31cMnFZ3%Q&Q``*11!j@3( z)WEuKXY~1}hrHEBB#w5Jza8-?===(czJVs!;1J|nxu+mT{{<&ouL%LOw~WMnl|2OGF{) z&WQ0>i-F}1yOM??IR+)lFzw*IhOw&zL+Iv;Xj?Og9An%?wcB}Dc^kq(Lz)``&6U9Z zot)wkn$)=$o+>!w=0&ut^12$fm0>zM_=wlm19GqzczuKar>)Xc=M4h zj3V`e_N~G5yfs~PQZ;xJzx9!#9=UGA*J{hqz!wWZhSSaNXYX9gy&Y>l0T z<9s-exR`$Qof3YE!7os?>Y4E9RGRz8@%)6+;-3I^1I2%7ZHkLR+`SJpyu7Psr0Y+! zhR=uC!ctYlp3bwK;y7@@rD%~g5?#N{dI5n6PzSQ8pu9Iv30@_Xvg&3_#qA0E{!CUp z8yV$lnpQE$hXdWQ$B!8t@r^Y>qw;-pxUS})qzr_d&@2p0@T;u|^r&@2oBzfSZ=YV8qyZSdjA zYt~r6i1Ov_YNp2ybFb2A`vDg&T#Si4bkzP^+FhxZ=#B*!5iP)r-XEdoy_5ofC87vJ%BF4~Y0+ zlpYNJeaN36TZ)=5Yq8n-Ejq7qj48%A^Y!K)k!x`TB@y(tDm1h4` zmIri`Xetw31MVnnPS5~2{I`^678v<=zNB#O8bD!wn=O*b~6?pwEFVJ3IRyHuFrFv>hD0iX0HDh`H9 zn1yD??cVcArhoON>^fH>yzNiZkW8}U$)Y&YLGI?2-;nX~DB-n>H8V%UBCqI+Z4>T( zt!k$$zF3MSTBr;9KKdrR{V^YKb1kkFp+r7_{q{Ra)%J=-8JPcCt8 z{}ey+=1p<=&He$K-|~OK|Ut_Z6Z*HWqx;m*J=#H{M{*n=aj`1z2Z{0QJf4=$GKHQN;+l+ z;=lha9NnYi_rP?^L`=V|XjtHB|0gr8Xe;;hdh!Y5kkXwOrkEk-nv({tlunPytJd6i zSX7F$uJRP3FMW6KuYvn%mMdO+VF@gI2`hd+LTTx>abYl#!!YoKEuEmAzQ8XeU~n8y zgW5%eO(Sa;2|G&hj{xi@ZvT>2|K1}0Ykz58_t+d~&K=8Zb175f0AbZtZi2rRxQRK{ zvOR1;8oH3pA3dpxeu7P5Cb(W%6#mA601=_QmK;az(!8C>gArQyWmW)Jo=l?G8}C4z z&GlTO$SfkYh8rq=8|0`5XmvOL9mLr9=ca57h^|DJy^^m8{H!nRr!}tcUiZ|^Mgf2t3%OkjP z!HK6k5oK2h-?ar^iod_dfH$=Eut4|mXIVEQP>=FX6pfT+8V>a6xWE>0k~0Ui8FJC{ zO6x}OEJi%fj5a3uYP<;y2{>A~LM$p^mcY0pICmGRs|~V*9Z37D+*-fXdofpNSJasd z7-C2Wq=jOGsrNMX@#j$>d@u`zPrxTUvR>nys9UUmA_VT}5jw+`oD$T*dU?L@^o8Im zdg{UY!H-m9PQ*YLF?&mBA3SD*OE0FAof#Yp5vA-07@M?%foJlxzDrNjfpEVD`S~W0 z5D;<{#zbaWkFxuQIEdd|mNRmS=ibEh4V5w<+dpJ!M}JxJLlWc7D~umiqt*oIZa^Ur z#II)#2D#oi^YT+CD{sTLHajpdNkrf(l5!~`Nm*@jN6qeGxbeiR8y)MP)n!ouv&H4c zgvrQ=)auV0*rPR;i5W4Wy$%SkBK%9a#$P1=gOF8X?RPq`Qz*e zKOFM7(OVnLI;oMHh`pm0*V&1_gNAZytFgSc)?nZibd!K6x=kG++%-u|Rita1(Hrul z(vm)g_^9F>M9h@AWg$575LWoo-E>`-=g=un0K4|H|7(2z*HrN@d@EkQ%h*@tUX*nr zsBSNW900WyiRb|MesGuXe3^gqeP8UKd@t;LIwr=|q}LlB3HE$wHY4+4kDuff{Y}~g z+t}mp7F3AKs~m#q+}qJTH_3K{moUGjFWP=vgvZt!#J-l=NnyGBncn-pM%f%|cKo`Y zm|;t1em}W*EzIO&`LaF=IVru5drE~5@(LcaFE^F|kB*}kgt4h_1=cl>f!&ur7k`iv zzmYY>GF_G*)))*t_!HB_S9?@wH``bU(sadhL#1(Px|A&7JR8xKk&U5|+ai>~ z;`M>oeI_5}Ml+lh@piK*@Q{xpMe$bd|7PZwrda}4&-@Fbu&^8RtxuYc2ux7whdY)S zvJ$+}&6+5Fmo6qhRP$y7Gt~b6@7vgY!s6}+#;(k&Mf6AGvvOO0dA)DD9NfDWOSe+n z%MjFwC;c*fgKO@PHyp2S#Z!gN^^Wc^I zXsp~1$7?ck4ScHu#uQ}NLp1}bEK-KL)MtT1<}AWdvkRZ1q|{CewK#sTDV5bVVOj@> z&xd`Cu_U+&by%6Mwi3MOX?OjqXlnD09djGz`mX|?F1&6yG}ZtPIz6rvN{XYevcJIe zZkoyt=QXx-B`vR?{Lb)V{!9og?waO-&wL&Ou#52dg~0BNcohe{NZ*m(TRI19qh&Mr zr4@Q8O~NiGfIttZNCVd=E`!{<`BE(`)yy_vp@0sl%Kl2s&j6mP`K$Zq& zZZ2L6$G1vFG28kNcHS-QtZuxP#X2r*jsizx27*WP$IVTwaCosAy@u%Zi&g%zl88vK z>`Ee*>l3HXX8{MJd=!EU(rYzzQu=@rHOol(OSm4>qUBvg9rUnLRg5Il-i7%lYEoI& zE4fK&4}e|I?EhG+QGiX=rt~Gn0h0w($K>={j;Mor=55lhW4Xpi*9d3=Y^@&{f{cfx zWLrtup9IT1BG=h>y>To&$fSZq__<}=|K6w2*w?_7!Wuc!dF8;lwl?RT80*PVL=pww z76J5V@IYiAi5pX*^kZOP8K|5?@N+Dn)!p}-pu#`@)~ZFvpIU9{whwF_cokp++Sy$H z*$7^&cPA`}EkZ6Gc)dUU<$4`U z)B}^+pnFrl5bW!Y5fCwfL3lh!yKB}Jb_M|usUZDkkTvI#(@X;w;$ecka|ccaRy(-& z<0CfK23Ne#&DSSyX3>yK?1Bk8T~wQ}^cXpo)>Z>B?&5hQT8N`5%8DkK7Hm8TDpqJd zZ_D5_T-H}`Z+od<(`(x7iDWNL(6=F{)WYhh$t`S&v7TYt`MovV!#$=&2*8&+2HourO!eU)Bck=)| zICM7OvNwh7=IKdPUse{4!RL#4|y#*TZ(cTAI;-bxZ$tL|GQU`{U>v) z^zcgDM&-?m1wTuEFA|8g zr?J5wEPNOl!W0K`+tDQg0^k*V^=Yi4CkCr)mnoj~2`d?0xg^f(B>Zm9ad!}pKY>Ca9{ z$cnEAXPj(D%{GAo9M%1&7sz7OYrXUitF$eRh5DJ_I+uCn&Vu0spyAuWwzn3j>1b&* zH(xSRjNH+pS}7!UTbsoYE0@ncw@qgHm*&Sj;1FJZiD2#E3Q(>fAt(go3Hoy0&t>o8 zbswA-gy+ss1Ghw_zR}cB^Wg!OD2L{-zQ5$I=gMf8?@|VT^W9hYPrm=?p8E`Rhgc{k zJa3mz@0F7}cft4vZx*#gFC=4e`?T8;j;@ah*}{WMrrCO0a7`cnmV3)qeI^)Uf|U0V zxsAp8?0OX>VYT6QEAGzzBhvJAD#zx)T{6$v4$P$&p+{kgy*THK(mG!k^vg|ZW+Oi#$wY|0o792^#$76qoPY)_eptEqhzqZT z%*ns`BO-q{0(Z-x^hL5GP?YAsyEK~>rccoLBn9r?@LaHemuJyh?DXE6QnllL~PxrKRBkWZN- z^!@4t+!jc)OTAfUJlLH_pvl)yk3H8p))y9+5$_}0axA=T{h`fjnns}NY?i%=rPmdgjZy)>-U*no z5X+%xj_ty!gm)i&JHNIUZQp>1q;IW~%4Wbq1q_IM_Ps?+i01xGB}$Wn`mB0ommO;} z)>8~8e_*i2uTDM!r*`pfu$5#)6w*nldT0`adL1!$NR}&qTF3PDb?K|xyL&Mie%4kf zE71&ugu-N7?d{ID5KAP#R_=pvz-~Sm-(SZCWy4m^u0bbCy*YoFZ*?p@b2L<{Z!+Z| zEsJh0%BHwepzET}&d$s-1TXZI+(v9Wu{jIvyh z3*anDmM&OeDqm@iWRgCOaY;jEv5}|h1I4Y|GXNdZ*MuCA zNL63an4Q^On|AB(P=#B6YcqLi!CnU&1q)Il?QTq?1>&#=Q3Q>o*tT!9W zlc56kKi&W#l7%AW8u)SCsqL|4MatO0t!%to4=o7=?A17sw`R}TC+vI;dNVQ$6kt)YK0H`A*wYZrp}SsoqncW)4c4N&kJUF#G>~PCAEbp{Tkec?&o5mb zzo_B(#Yb+Z@NKRChIvxH`WRR{M8HY&WaoZXIGEJXt^~! zNa%6yqIWF0a>diqLws6UIA$BY4uNFr)D!~Pg??iqkK*t{-x6+!RBhPXVYnS*2gII5 zxXoB!$dLi|>7I>z3^Fz0y9mW=Bd=dpQ!4)%jL9Q#)75URLr@|-t;S3~%KVKvmeTqi@6c*QAO)y8@246GQhD6Yh46V-n7R+St6})j?ucs( z-uzEr@@V0S(6={=<2;MaQy4L5TqpvJ!!VCZI#5Dq9 z5xD^Dx*`A7TK)b|oQo7lQ{3nxV)R46lyZWVTyB4 z7dY=Bo2e>?oP#nv4vbht93OZGPYbd5MfFkzw7Oe=2QmQv*6Ne;KeZ~~y<-7B#uJxU zd+gUN@~B8^njD;`_p5o7AI=!}AoeL(eu$owx$>twa&vBRc9n&A!dYnob|IGEr2d52 zH-Vpybs zSh4l2l25N^cXFn#pAbOD8(dZTp7S^}ZEhubDNK3#H#dg+M^^Qn2!gKF2bVR1rSes= z*IkezDx{Ep4_}rfktG@Jes1y!=Rq3t;7@vS)cVY6dU8OF5?B;?a;<+6^DB1*T?Y%d z53fZgNb(Dl7J-5Z)gsNO;*NG*n`W&x=ukwM@rKvEh*=v{WLAg&drR}E4^fwvwcWxC z*4*(w5hA;FF|lE$r3*XzwKPwod_v0yXlkuhx>wb2stqOnMXzbVIt#wlUOzX~8O2V> z*sI7Bl16f-Y_F{#1UVHZPAZLH!+S@r-$B76evf?KZn09fM?ju?;aQVGJMw9QbeOEu z5%-PJ_DZ6enV5R7J2#Ogf?A z#2TEYr8~VK+}Cjk+LHF@krf0wQ_8=|A7+5YIv3yKhd2T32LBh|RY4pRPgZ-27BXSu zdj9;RS@JC|3X7GuEF zwt~{J)KV7)=P_A5kyYdLl4MB^iF+>;#G)JaWRn5D@7CX;2etp^d+pYre7ERCw-~wF z0uhWEF$vxCphq7Zr;lgr5jn~C$Fj)KwWSDrNq_+t@|ix=;`ti$a*@L2^`l&i^0$Ya zFMpr3)idxNnk*D4<|o89 zMLRW|*arHLcrqMM%$8Rl$o6)4gK-P*^8-0QXe6Ayx_{O)0c-H&UAgppLq<{~vzNW{ z@sgmvDp`Yk{5;)s64A?PuPl+3j8d(^+W|e|EHaLprb*LGKLym~^FowyCzi&yhV2bM zZZ)?<889|CClAbB!V4wBkKVjHX0`2cEwO`POY3gGSX0x?%A)(~r%LrtHO0n(EJPQ^ znWV3;(broP`h$*|pGZI3#0_AVbZ@NJoA_=}!SVn)$7%y6OUVA$y8KOX&?G6tCPh;9 zE9?;{2s>k00g}^;h=~Isw<<#Y=g5wOaz$N~ugtueu=8f2e7SeOVg=VShgJ^Rx88u7 z>ayb07NFV1O}qztW=B;y1CO@{mqyc7)dY0&N*-e^_T+sp`|)8VaJ9yDQ_c0@sY}ri zy>E<&^Oy8KbTW#uiQ}=`RAZf(Gz`^dYg^Wg(Y_h1^y0-nX)#G^NMeiCu0~Iud><@Y@$ge^hV>#Anis5FF>a715s7(q(1lcb|iLL`Pdz6cvSGyH))iy1rRZk+* zdDEIUK)FYJgfGJGrjsFo0nu4nrg$RX_LQy1_+w>U<%7c6r$|Wu{IwDSNL3d{0{T#&dv8v37L~+jZ1ODV|3Mns?n=IXkhpy z7BKFJ>fB4gG-t+z)<;)}+gU3Nv9a?K{O{-N82U|Oi6=Mju__x7NipwJLvPp+&s85A zjldPzNz{KzvX^bPpOmir#@8^uRqvHP!<8G;n(CXY*8&@303|<6-(2Z)`)mGv=_-YYpnhm-*6T zjhEE}?ULROWb634yFdIo>y@*B1%htL)n|L zhH77BQuSiPX9F%)Mv;wdCoc0$Jmw^bh+i@_bh)#0m|sZbW)s`|6}Bs^R~0`ZN9Oa( zl(7k+)wB>CWnz;97R`B1yg_arI$Q*yX0`xJg>C>7On0%oSK z>ppmTF~l6$@c-jm(zgFk=6f2>+ilpMoX~fSpAF$;v;VjUQE5;%!yOi38kHjzfPnJ* zML$#W8ti;^IOCUK$1fo*@3etRA4H2H&j;#C4i?NDEeRx0XrPnt6hEU5fAf9y?w@@BC&!R?c9@QaDTeIVpnt z{j$VP**Ob;P`_~Gzx6~fUmImuxFT_&VOl=OFHu0KfM12oweKiIs&#|_tWQqi6|~DWW3 zr^4s%xg6aIl7Cv7zUklKTRfnjFXmWj8w_}iR|R~vus zS$W4?UdR*KWaw*fHgGn;j@>4QJhjFIL$E017@U~t?D&pi&N&VN`8{9V28!!~5idQa z0PMo>ogWW}y%F0M?9IXJ<8CTFLxLKScppfRMa3+>4#I*LfnKYt)MQX~@QVTD$c`WJW2mOXp)D~u+uLId$NAo8# zYpw5#e_!*}h#4HYdqCsGT0i8SzC3jG+WxRW_tiHX<{LYnu#-=ZnM?cV1&^<& zFHwT$_toD$mNUzt3#7PEaC?*%S#y;G2%xQ%O)qwQ*DrQR?0>}f@C zU^t_`NR3`>@j=aQ;|*uy7*xM9WS^#P9V|YPA15q8h`(xu>Z*tY_`d6Zhgz%r#djsd z_@8_)?6$w$H5x+mkO+)~>RmowWcpYyc_)!PT>T}nFwykz7gdN$&f&WI$qR$`eA!KL zPft$>Qh!2J78qMNf{y3e7S^OmCqDl>T;>Pw;-*v72D9#G#E*DBbiA^BX%f0E1#-T{ z=Z5@q>=rhi?Likgq$msh)SoWO(iGi9vy%0$*bDtc$?DxHKLTJkTxfBxCN2m9dL z`(S^2aArU_2; z*3RIrS(TkJUx423sj20n+P+mEDEB~cky7bG{YXm+pGPu_3|xM$Zc)w0o^fu@l9)xd zx(JiYOR#W-aE~ps`ev8r8-Np!8Z~p997bmsc(R*5wk`1}cW}q!jZ}&bt#@U~Rcg*;N|nW)0kt3q6CfXM+lhG5DnskwPh z)qJ7MvFCNZz+do;M>#4lu;LZ;_Gk=$%ejT9!l-Y@kdR9^N7`UL6Uj(XcrnC!W}FvD zn((?J(DB4{UfoMw)=ubN&Dl3b0SvPz*Yu8Hnz1fIJc0Zi0wg=h%3I2lP!%I55Tf$N96dX`~z4Hzg_}LlteD25lqLu6^@`dr_<$QPuZkuGL|1)jF|P^8KBr7%|HjRLWUtpD zdDC^t!oLRdkn!LlN$#r@xiVi!q z8L`!HpbpEBY8fB)cE1jGDe{aqEci%J*TVA!4}`Gb_NXyTXC2|^?lxG9WsyVVsXPaS z;cj0cGyoBPbvi2wu%s;S_4$mC{vX;q-IQ+X6>1T{w|v8Uvo}9_L~UV6sk@S`j-}8~ z5U=KirksYEY*Ram=?0x@6R&=^`?&j_r>_XM@`>6qg$J(gXz7M}<3+NA*#Pyn?g3|K z(;hLw>p2RnOzQEhn@0BRcg^^|kf1)G7Uc5UeHXonC858)V^O_h4%IZ_^-~+7N0%VzWzXAWoxaxd?f4-(UR@e^%WN9;K5CIpz?`Qp^Xt|%peQQP~H%m zhQZMX&#~N7H}8!X4CbWYZY#kYIy+j}&Egyf&mH9e zZ;O%+g&i~J|1NRjkMUb=^%ChT4 z)u{;xq>Qpb7d%8$6Ixp|5c17hb7{QEFV?Kvi|^nlKy*pV1-tZgOOI72Z& zRWrC0QDU9Vnaq^ig{CaOB&kDfn1ct^*j(z{)wI->WP zl(de%FfM;3<3}4FW`91(kXU3dtIPFS_Jua9psV|dZAwi_&a_+1gt$(qVCDS}4}KWC zZyJ`oB(>vfmM*GvzobMZH0y@EPV#>jp*-^F(=1Kdpgl&4Bm$JK7UR!Fu@b-CBQ_fH zUE4klVi#zCt}DFgkE%Y=eO|%Cb}Z%_ggy9!_im&CxIF$Ba9BiaWRBc2im_c)mAzl=#s3JHNK0Z1+ROL4OBbE9A<=9EOvvsi?CCc})E z_^jm!ei4T}ov5bJ@Tda;Z;Y^E!g?gR@6g-jOd! z+%v{|YBs<}uzFd_Pi(v{$6S&3?wePe*uFL)(aAo;e;js=MV6U6#E_!P3|=@vCztc` zQOW!;HWqMc=4fBgzM60IwF=aun@Yo16ef!97AeOSscMY}=xIhrZnaB6|1P9nA-3Kx z*^1~++?UIf0|#%InPCjEq<~ozVJth^H#84C_X7|6a+DY{1541WSiK5KQ--BLE459O znn+DJiswsA&%EQERPm#>5O*m0s8}=MUU~FXwJMxVL@_8K%o2DUVE{?3E*n)`YxF)> zo)xq}%ZwhJqm5noTAsy|>&!XjOE@1rnD@B=Awg+&N2tc zf{)LF*bj=Ye7{R6XgeksM>QwK*I6Xa-Irn28R!zmL11~;~MiIRiCu5y(kAAbCf740_^ zY^~5@*Q_VWLIazA&b*l_lv{7m?Jv<_QBC3T49#3=5W5cIPkVp%{hH%FDuOhfthVa{ zg9n0^T=AVfQ=n*u*PBVlISRqdip4KoooOyg$^IK^jpMyxv%sWj+R`B(Ki9R6P24>{ zvVctmFM@UCGX%58A(ZaDAkDS9=OGRs&6m~v-^VS0U)#W(r{zPDNDnIfwSxX;?=S$MoZb;e%9*;cyC79+R>= z%#imdbyg~WGm+s^>pwQb@ITG6Z$3EOSGu$syb)!N|J+KWhaitYz%kXl7!mZY-VxvZ zOEW%ub9y4XJAWT!VqJy*DpkW$<5Y6&cUxgnc_(*(l!y*(tKrrOB8svU=nI-44+Wa= zXjP+_QQ$~T>dXsuRk17j2KCIf&4+xD7jc!Qa4&*eAtvPV=+jiODA(*$FZ7SGJ!hR= zvWnleY_ebGXsr2$+Bx8{-`VbLy)V}Z*B7hPT>SAiy_+qIyccqWp1Z$(cSX*x9{VZM zmObcYgtV>z$R>q?MJy+$6xBBfYQ#_`UYN#|E4-#Fa>RnzMH8X7F9F9|S%KwuqnQh> zBzK`wynMlC5kJv->n`G~@38|k!pQPcj!Kfs!L^Ao7hkDcE~DF(>@!D+qo`Pj*d`}Y z%kHWcu}}&pc`-6$L&<2}(F_J8)r(4gjnw2hV;u&4r593v@`Y0VKRUo0!#YHauF&H)qc{1k6?FKDGR5X$#HGH z`rbPv^1asph~Jd#z`?G(f#H3&4N%vyEIOn<+H?Lb4Bc%BZaK_?*bNDP`s)9y4Cy*8 zdAs#8Ue!A;Lb*vWbf_tS5XpR!iO>OjzTQ_tx2NvSLhSL+ zz^=akr>{Oe`=_s(_c}~xG}V~!x2Ii%TE8D5xNO|4qKvAhJ5G{voAFi=FRYA`S^*1| zv!|)3e@y+abK0VDzRpP}#I@zeuwHLiC_;=_=b?&k0?Z?eyUsqTWe>8McGBD{&GI`) zr~uxCQ~N|AmUKHY3MDP8Y3VSF1@!R`!YCBQ-`F9%Zjm4CRA*kqPnR%@^4`|%&$-rHWQ7XeN2Pj!pfD@GLyZg3~Std=G?=LF53lXi}&cb|g zui`G|3GB5+aj2hvkb4=j&z8uuM8SkKB+8qv_f_82;Cl^XNAlg0Oqzyp4!yqYNgtcj z2<2tfl06F14GcNFH=YMu1?O;7p|ux?8aN3(cubNR>RkUmEb?Pt#1CN}*xVH!?tY#N3r#$FYL#h&`WQ^)GQ2su%$yEB{pDbqA> z4Hly>)1MU#I7LK{ZAYD1en(kl-P7%y&}iFlFr+5BNhP@|`bT4~qmswk#zAt&BJ;<> z0gS^e>T9|P(7?X1*XKhO!~mV48raKU80aAujGOXgV>&;0K7F?*&0})c)&Fen=d{W+ z&+KX5-TNPQha^P0MAmlhcz+E3!03By=Zpu=ac>aCBHtmfJAh`-a&T(&2Hiv?IreMq zgqyE`0s#GOGnBTz1DH8`Qo|`kWV$i}+8~`~R|F9~8{n1oT1vy|T<}H*%VCA#g zBh}4l2n^MRjY{M{4bB*;%z@`F_)DK>>WBUAJ2Acx1Al-1ERfL@>e~OpBc;g$_-3tnZS^796od6e+kV>6q+#fC4$6q6J@{D*L3Ec-Whx=)+`}DM<9#9!@QwXlD%x>)z z&N{`^N^<5~>zVxgu*ehY@=za~Qb?GXu_}8G`LpHNBu;p{xOSCu(IakB7`ew?zuyaP z4r^x&ibX2#697#1AIN^cHuW6YWYM@XW5V{cynU)z^k+eV7cA&bXoNy&<}N64DLvzT zm_>%8b(Fm%>Wv!&k@%8FZTT3lx^GfYAf~LWoGQGI8YO5$jV^F15oD1s&j9G!A$(yY zPIZnwGKDysd*AGP*kRt)coAqm8S+KiAWcZ)P@AIg?9-l-`Y^${ZCbxnaAi!-3NcSI z)yI?T$qyr*Dwr(Jc394{M!a=OQDd!r#t6nRcWAloObELb zZ67H89fwB*I{FBSzc|9d`6>g{YUpOeKXTK_m6h3?F{bRal4NJ!|JvHbx(H9D#5x~Yd)d4F#(S~R z9K?Rm`TPYK)5_heeogmdtHE&LqLYvxMQ-|}zzMusvn*edE(Ld@r7x+3GBy_u926M& zoXsk9&yF_Wk`j`Wr!_qTLrsFPB3wY@&;Se4uU`Y)bd&ZP?p3G4c(B-LR@Ucc6&@%$ z7EL}U|QkpluayppX1x5xZMj}EiOk(_M6 zZP&;3l`L%Qr>L|Hx(xPO44pE?5ftsz%GZAp#I95K|5=>*?~pWE^gs9asE~ignX#om z<4oL#iBOM_TAckv@Fr~Nt9YuowYdpN8p7a*R;)9Dlk=#kYWK=B2rj#k`=}K?ZL4@< zAvI%W4#LBV8fB~BQPtD_8WS3McJT)Nq2Zfc)l3m@5+5z|+dAu#M7Z~Ys;(V6bYxwA zyF~s$^u*7ZNBXG+U18;Cda7UK4>We$nAC?Wjf*s;&%2n|+NH7XSv@;RX|CSOS4Fga zFl8mH5lQu4B~wEc22olBsK!?r&T7JqbTqwi6>f@9*qs*6P#-m9?c}SYFhKIaV1VRv zhCLf2t1cyKRxLN$w5FMCOCPVDl%`g@oz?q=MP-XXpFT9oMXx!y}7z<)NB3@PpqpH5QS0*Z(o9){^2#4^B8+5p}xcriQsi|Nf8@y$F zSeaw!x5CZUHC1nR4O8v7{iicYcd&-RzF2tJ^P4z}I$cC;jIPSB`^Lar02dL<)GwJ= zH=DFQmx-~p4%+`36%^B8cJ1~1-~}Q=-(X&8yNzm*u0P%kH=f&(;h5BQKCk`A}<$z3(+c?IiQFE^^ zavlS*i!nH4QgqU1+0iyOR?m2ZEckmD*`n-cL$jqTmlSB|kPvEgd=gpZNcbDJv&~1{ zJ;%|vTj2m4CYyfNK~>f0y1mwet*A!B(?t#ZqI?Msne?sR?g^z69&(p$u?@FE@)duJ z`bSk>G%cycj4xOpNNzXjVZ-5`Xa;SWF4qzLAC#5J=QSWo^2)cE&pVY5pN~BKHk7{5 z^<7}@MaJ{qt9Av#%}CguOx3$)_{Liu2%pQQ3e~o4kNZ+wuRC&=woD;FfGdBIJgo1Z-{_w{VbEitZzObMAp1w)x>rKZ_4^D=FYF(Fv^_dwcG6sSmB)U-ajm#Sju8N z1~}9rF8|p6h5-W3Xmw@TUB1CLu8oB8HGNw+OAL=-T^gP9yHo>L4TW^RJUMk zLAY!JEB10eqx=7naRwCxSlpnQg;AE{zjUu-t$$4J4dY7TJI45 zq`oZnU@;uX`$+KA+2+20=D&aL`;5+-Grzx3O*hH4y4wq$J2I($ zir{PeF$9HyS!vtWtBOOq;9UtqYmIsNKO&tHfApmbG@HZ*3bhQT z3mJP*qL5KYWp9||W8){x23Mnl`!ihm6-a^aph~n!%{m#~HyVGLELj)oN88o%Z zPPf_PuGdiickMl%ZvGXP=Ea2ZfpiIRYUF*L)iEiQCjoNmX7I$)Mr}Pxpp7tEfOUME z61UIaN6&0^$)`URfa5cF#;zeGUJ-v`SQJ~@5Gau+*f||AIDpP{8v8X%& z-Yiev_&g`XZ*p36Y*gFn8s{l`&i9k!mD(QGwzs3#juLt{hEWsPm1-dE=_AqNQ#r2H zopjXJ5*_N5MO?D|WGx=iN_nFO=JW|6I4kTl?w-vPE%?%a3wF0Wo0BJz{YsvNyfDh^VXjR!V6SKI7~m* z6v`ZgL!mZNmR~|YrU@^7?3p7G@KTP?k&mx+`=3ovzy%yXSn|?_O6)Hql*kZi*87!w zfP!mzHv3a+!!PZ?2 zn!m&W24Sx#9NN;^R%4h~`fp$GUX^(j*?N>K@pd^`;VW*Q&zkSiI#;mp&7}Me>BYU> ztOIU$_mlkI!XBSkY(Nx`x_yrlhH!cF<{_e|I_?`j6TqI{h@d}ozPzuszAOKNIO+Of zs^7ILEt2|O4gh2x-NzPYWwb6MAzUrtl4JG$OXH5JvSH@tyTl`TJydA{8CGzU7u_7F z&m_{^W`1!8YWanKc05__|NaH0bw!0$iEUvz{`#@TB1CULx1aOgTx5dX?xG(D_quXo zFbv?QbpDoXAc+lKkFtvvXeY;x+9TLo_&`Zy5c|Ou=>etMqEW@H#frH{S?gc)(s!3f zdAS}2duf+Zo2=}JDW`Xk1pOHzcW3%lk8R2}e~39}i!Ei*6N}BhiH(Y*bisbJ&NIADGUluQgN8zLg}B9 zEGkDwTCm+53(yicofYVA!-58 z8E3Qx{){t|e`C;G=Np2+T?sPZ=b1H?8Prcpt)dN$-lY!-{B2$s;q}2_!j6tB@cz<< z2TA2&9@>{h%3yq2p<9{V5*oauT>9`9o4F1s7{@l|D|7(^KX2(=&V+#T_?##;|E$1v z976P$;Vx@?2Q0H&TDgI*UBjD=GFRm|!~~}PZah523Q3C!W9h>*!$&-%MPO&?3@8aa zcM%U>_iSoNb@mL4D8R6zThV>1<)HJ;VlY$}R}@OcvK7yV2dI@`gWdQ5BQXjI)u{C0 z5-1}&Ls0G&O6f<(`XAT==8@h1bIZeq_xGtC5FM z`RLQaJWJucbm=tSj?Q6KE3t!OlC){Hm_6Pf(I&MX#~D1e^*qr-0rgT&K3)ixx<1mS_;AR`=B+hr^isRc00TM2D$+YA(4{qTd-2szhat`2<5D6R= zfQhiEvA3LYk_P_X63kEH#7A WG~@1AeEbq0VvK!k*%?bn_Fc$WLb4^&f}w~ahRV*2v87T%A=xTPvQ+kM#!?YQ zCCWNTNErKI%>A1_pYP{;-tY7O{r=~C&-tCt|MMT`yyoVfIp=X-Uf1(=y{_xJZz~Kh zKVU}P4?x-g0EB=5gia8!=7S(CEidDIeA!O;goIu^@1w2}7H$3>{Lgw>VE}#rsN(tu zI{={qN-yEB{<9GOk2F?}Om=7$-#^$V0V*K&XAo?$JNbY7%74rWD^uVwt0MrA<9z*{*@VQRp zSwY@-rY;=|6$l`+mYXI4Jp3JpP~VGkSGw^%SR;{bjla7?o~={^MnN5b>I`Ck!#rVHg& zy4rG*EG+@l z(Z`Y1!dc!@^Xv5Q$y8(FX%P#SV*G^Xz=a6N0+StecIyr1z3{Vq0hs5xr{T!$lIhp@ z-Kg)R)df zo)BbpfgQUs$mN5N8P(wobjW>IHs~Re^J#$X=b|+*c)^;2#p9RWo)YD7zw6+s2*kBB zr=Ni1t>0R0WmmLI34yvL@yB!KxX(CD*l;JS8f;6^c@Il1{dUJ1 zo85$G%&2c2QDvXF*%Q(TYo>bS_lK`kMp#AXiwh5vA`R6Tyz0dS@~Tff zx$?AeMATyG{1IV~claHd3YiM*z)8)6J0@{z$MP#{yev%() zbzQc_{2A?act%!=3HcW1%1t@S_pohAiU4ZmsQkMF%Te$0qlV%E2%s#j2$1bA^wUnC z(<(Z}kh*gpaoqM>K)5szaAG#9Efw5t?}B++@ZCVjK%P8&XsHOWue}2x4%QSv8mpi{ z1!)IaP@XBQD49+GhDIcYX}b4v%NY0SU*9qT3Dh~7BtnKKzR(6o0J5P1Y)AleODK*k z-RZ^+B=KK?B{-?F!vFZHKp--Cx+|f-OBF)q7w;zWUk6wT(MQk8y<~+zgyRW>TS($d z41i(R2hJ0^yD1QA^0$M?h)w|N3EYLkx(Vi^MgTjnBQh$H05Ox3b~A$CK)P~3NO$R;~}1|WeYSLf^wqP<6UGp^*K zqtc{xW!STD`)M7A<2C9w{0Tw^&4`;no?cdJloC1AjJzz@JG{^3Ig?$GABws9>t`$r zpy(B}a(7{gk-f1wLFLypzoxOU7-zckdMaq5K6voU(elTUyME&fhe?Sp1@ri&me(#H z-i|M>b79iF$)en9wWd7&`u6Vv7V{rISm|Xac)^mNAi@o5G%n>R;wJl#7j8B0mTy# z!2#HpnH`1{NZx8d;v#v(j~i$+juq?v=HLivvhcaWnx|4PX!_0@h@qvT{{aD8FUAGkSFD zJsL1)yDvF7)TxfdeN$Hef-JNi)Tkjb%q7B+0AN@MKq|yNe3;`py7Rup`=5ZNrH&K7 z!M7i1nY+paKn|MZHatw%V@|DIGLNElsmCDkVjOe+gae$B@?8;KrYLzBE0bLalMQe@ z%SHD;QpZ4nlQ32Q&Elora_!52-Bs{9D-C@L2_)%W)ia?QKyDGx_2gzki`8`n3Cq>87) zca=!{;Q;vhn;Oa^?OdYK*C7%OA;8XL7k-9OwgO+Ku^iKi){rAiIx!7ty_bRtKrB#&@purx+I zMw4k26Do}>873?#s!2PI}~4{b`5sqR54kipI!)j$T-h)`n9j zQ_pEu5%`5Cf$Vn_9F$!N3nQS8JAt$*eT?&oNfNtM29AKq_Ok|(I8u}W-UhMgAAm|s z`YQ5!Y&-!iLVzB;`+AniE{X=yE3MsbS&lu!b%uurR7HIlViU>aww1@BN;pDq>3%kB z_IpxF;rkqL_)FAl)YUPcJ~5FKj-CJwNtDaOW0)m^h-krj2>3pa_u zCq9(FGy(=qwkR}n6__n;a1FT|U;FZfIhv8cm~jb&zBr*>6Po#{sF5tzf8@YHSEB@g z;KLF}xTp?@|OXysJNZGwWgk6XX$gMX>pHA zh@X_U#NhU+c_V5A&nbwk>0V6(RN^@is>#1IQycbLz5?>(!k4II2Fmj|21uq{m3dV~ zfJ5(m!ypw&$z+N&*L@Bp7$HGd5uAcdem3==#6%}|jH2V{j@GQ4QUugu`pH~?XX*C` z{SG5YG?2Y`SFoG_TYqvvGmptG{vH}QL?x{vn!mqMf2)01Lv_DN^}KVwTLR}y5+0=R zg4F)1iB_p~YN0(8@;#1yX5uI7)-p&U?;Q@8W|8hehVsQWE|eq|#)EX*E>`wo3ZfQw zcW4m@JK)Q9W4C%Ao+0l`(cWL2)T8V-ze!@d&?6>T=imD-CuE>a3Zyk3;tWR~e{Fne z7cj4VPeB?*FLB|Afzj_XwEgtN}Hw_*Yryw#asq`a0DnEngIoXY&38| zp!25I!+%yWYnv&q6TdDRN9pbU{sw@4ZHGduj5L5( zXn+ImRz*Sa@Y!YqdBwmqLEzB^SaKUhcr}_P0X0O6HC`(BLmt1IUvn`Qg>ktBBX~|S z!|8h(&(Bs7eLF)tQ!41J;}H;9CcETIi#@CMjK0iFgmAO83P<9POFnu1o@7(UYump5 z2PaS&KnDxLhYElVn?+#cz^xAZkb;Ffe7Dn}Iome)(P>k5>*J-WE^1?0P2}i~w1B6U z5w$a;n(YY(truK<Vb_Xi>$bST(QjwnQ4eZ-D zm~nY+j)mQy?z`lBb$U}*tAmeN2vt$z$J^(f4ES+qTz4mDC+So1b2m0q0D|$Hhcnrw z02Bt5?d_Jersc6HW z;vUJ^mpSitRf!V*t~MWO3r7Mg=$AGR5aqL3}I!KH$CJuIN2IV@jn~X{O+#Q zrR=u>6aJF&v0p*D#_q8xg1&a{{&r*|h3LY&Yge&0^2u=$Zz17a`{60(`vCJCNSo9-f+r+h9q>*}>y7*L z;^i^r`a57eb0&fy9tbiOcv6lf$nss>cp;22%XUPiv9klhtu_}vh3xTNrM7!|5s+#w ztpt%*jVmcqdlczp3k>yw&)N-uMIV#HjUt{~>)GG6PgRWlXjsATEcB`RfCKx-!vlXv zGue4*Unqgwoj8T{8xzml0VofLQodQahijs&m`a{j|Ve-CIO1DCSQkPegF{M^ZWWx$gNdCKEkUP2m!aFQ$@uI ze1ZD!pspgeqsJQAW34WH|D~d$AB`*4g234~$*vN#(6 zHSH)b9`>kFB+cY7L|*)6RiFPB%wDSZwmpZ*&bJwEf1IUXP}RkC=i$zot+NSNN_Z+; zw(ph9g5w#%X5i(=TTSer4R$h|;qwHAToXM#XXx*YeLs?-&Tb%KGTgJIXUKg_!~_ATeauDgpki{=&kV7;n;EC|Ou)%KHqveJII$H{;P37_O^U_E>*B(~=nrfF z3UX({dLYm4+tkb#g0GZ>HKAaQ)$n|4e=>_bw?bP&V4!@g-Zr@7nbepHg1pJ5SqL`G z5#l83k|)6&-3$zVg)ugDh}&ajOMa?#k1kvl#<&EseQ&~2mh?E| zpf3aixlLdH(MUllcl==l05x;OpzdR;;9bCl6MV`aRdJl`#|2VE4S_RNr=Z?Io`|fR zI5#4Pd@7UPb9#WGP99eY?E%-@H|UnacrNI5w$fMSW&}u3EMze6C@yUjK%(Gm1OTlBNGnxP4^s|o zjrK!)_`n}(b&u=t5&x?=1y<@>7@OW_;pM8QXpT|n2Vw>zfj zc$7MabQj}OOd&Mj7OvAE?2<#$7j+4h&)_6Ld5!{z>iq;LiyyfIYI6BdA<^|*=>a}# zadDO#pL7=ES^hC`g9ztPdt8)7g8buamr5zXiS<(!!W~S3D}=<~AyE8gPTU3v=JI(e z&VXQsZr5WmK{$#x9bj%&Z^lf3=!49ax{EMe(JIVj7Y0N^Fl5*%2(sGZ3Mvz%XG32} z+>|1C`xtYWjHBsw+mvcY7$?CLb4Y|mgK+4xE$S1%VGR^FG(pG*0*&Kbr_}P`e$&kT z+60Z2(RNBE#~xfvsM6wk=YKjIEp9u|i~68)jlly}^{d8J@5~5@bYEg6pam4k><|Jk z)&eak;@;_K@dl?3be`#Y>;22*>Iu<>%<1odtPpM=qyxmf5Ft}L^>vjV zbe&q4C6nDCjk$>YN4*gD&D6C?{vcR&a$mu!w6c;?(}Sj5Qw@yHKSJm~fwY5zdpI*6 zd59GSz>9ePo{z*`{*z<;XFk&Ofx%C;`U->O_J>fbYbA^mK=04|rc8s9qh0rcVJ#-B z0zK?C-o>YQca1i~>k9@bNav+HMqgzj!Zg&sV-76Vq}hCp9Qa}vK}!uf%b>SA$v7 zfAeTMa+5x;G25=L2O*1x$ zBSXEGym-_x(?iIxA^LtvD#84ec^19!kub}2)kJRGRx3gN~K;^$he)v)su7OE|Xon*yr;S zlH}DC%F7`|h@m1G_D4W0C-BKmFKCA{OG=w^yY*&pD9q|({xV4C=Eu#d>azlLsMZ7j z8nUdxW7UD^G+u~!Lb6&H?>>)wq$#2uWrh?eEi^*{i6`W-a0qZqK@4s@RxOl_zIA)Y z$24Dy)fJdu}`Pv0<}#K2OM%@C!9(rwTaPqEx)CX@tjQTX&XsXuu! z$#tB@s4xyv^X0jbu+(SyUz_4%RLQ!NOC^<+B{UbGB2%^(?;t8YYLVuJ^ISg{;?9@` zTo#{~ojEP3`%|Lz*|ba3){*(f;An+G9s#kXzU5lC%gTV9XrS2Z`5eW!c2A_q;JkH9Rbb)voGw?1a3(-6npOz2lT0zjHccQe2j)ks5zA z^4Yn+Yh-G}Up3M>A~#=v9cT0DrJgu2Qbfe5Ht8(ag6&mgh~Y#q?3V z;+O867|gJ7Z=7^KV4>?kz*HR<|?lA-v0ifkZ2B~c)yZ{A_6kme1tGTUH83dRjcF$dtrw`+b^D{{udxm zV>T--oc1Voo8o;%RSUF_NFA^Z;gFBiKVT74cwII>?pl&P9wIiJ-`diV(0=EprwB5q z0v#6bIn%>H!oYZf`Z;v1?++xR%}P~7#M9EZ&jh0QWFmr^B<`0L^!r%)eI$rIEoKT_V6`<o3a-P zHmbLbZf0G=x??E~yPp&oi><3fXIyKqd+B=)SKeOpc@Ri-H*x+_d{AVkN+5-ovk!X+ zGBGPE|3YCmYpgGim=i>aS0i$Zw|iANBfcyn*u6;rtIh1l_q(iAVVRn1#nRG zg?E5o(}5g4vfTclBYRra_s)S<3zT>YvH6h(w-5CM+9D1L=QZp?!qg+%#L2;se!tt; zJx6t$#Z00HF>0C)KJaPS`SbpLVOOH$gCxmg>ecQJoph+1$*%L_Kh#(Mw=q@`mouN$ zo~L6w){*I}x_^ANvgYr;TE_BMUp@aG+ez)R(AR_<`lM-zk#9LZ`~8aLz_(;-!s;(v zViiV~dpR0fv3>e*-*8waL#35;jiOh6&>-z$)XCghFfQ$W)%bTC)dl1S{UOV{#S8NFvFTmJ$37Tf;Ag2-fq0XGz8;3PcfvV`j<{$1d~NyP(^E;pba>OHG7=TB zZ&=oU=`+<o!FyzTJsE7Y99E6w)9TN&@a+J+|p6 zxM1xlyJ)df6g}@@u|aK*Ve>;b2XDEv4qCgar`OJo{WfHb9#tCmJ2e&&YxyE13QIpu z>4=4+yr`y6+mHeh%EWAE>hKr3s4Z0$e{pEo{SQI@$R06t8z;qnG5s>%#3>)P1n%0f(hpYf7Xd z<&!P%y^q;yhpx+gVz9Dt23M}iZA_fy`gQt;sY_(1M`?1b(Qp2qE^)ZHSO8Jp8+BI- z;M5aSDNJkyMDC>h3}F5UMdQ(yL_`d?b7Pzu3?o; z1M}l0cBK9U&PZR5c)(gG?D$bX&bLdE^=i*Tvs@1g1U}PlS1sl4xOO)07dSZ8Wh{}k z;pYW4z4+>>zQg#&e(Py5C%QmP=~s=B2%f zAjskKH-xisc|4Ll1aC?kqc}e!509;45U; zh{Y!f1Nm1!*X#lCbnKH_Y6rlk&9IyQ8t#lle)QgbYl@U!%Z6flspp*NJQ~L~M_J^< zkMJRtd-X@&!;0xYH>CEUZ8NTiV3BUi#@lr?c=h!8wPknmv$b&v;(Hwe-&xMtz#+EUdu__r>HZ`}W$$M=MoZvDCF30_93$OOctPz_3vraFm1l)tSxc+{j z>fLaS3=V*QcBndQITi@q{82f`NZ}-#YigEbsS<}EoyXSi_i^fT+w2`27rxdm{qmG{ zt_p-i5M$b1Liy$6lHrwljBMpkY?58u*G$&vE)C6?O4`KzI9C7n!jsEBy9t>-;((cd zOQ`UD+{>n3;M~Qh)qPZJ`bf<$unqFjY{kCy&T1tkezH^d5u+YG1j0ot&F+qc%%TN2 zkb0fXZ5iH1iE2YP9)*Q+#D(M?Bwo*=no>UX8OojKAa$}1$1T`&qm|DxsuIeo zHgAL~+I;sq@c|#&+l*!=)ZWrJ%cdr_#73I=(FW;LwL0{U$u5}^TZzS+_OUuZTUajR zV8U{bdZTK{Y<4v%yR&7J(`luXQJD;>1}RFM5Xovin+@lcwGr;kL_?!>N3a= zW8hC$+}ci+L6L#VD(aS9X~~D&VPnRNo87=Lb z2$oL2U{f~T^s7lt;OI5x9wWuGf_XXY!)!;Xu(SHs3!C*2Wp5>?oI3wDM145QY`Q*Z zoV(&2&nP7E^X&Ic878~bOn#a@zE1-g?M0JepxHYLlMMvQvj0$jgL< z1EXEU3-46T&NtkJh`#J;itA{tWx+KY@?v~HNYRKqIbhgWQlxS7VqM+EuA2>eYUD1$ zQQVYU_4~eZxPXe?!Q;t;6>o0d*2iBOXuy3newf{|6D;UNIn1+GnMG(FUHn!fEjflQ zSTytI5ZLMpVJnc;M;|FBqW5ixk27A)>1J-wI2dcL9($)-9*^eV>rpFXva4VC_xP&e z;s6Q`Nj6tvNPMB`7{L;EDy#tANR9^`KQ4VP- z-0ThZd${()wjL2C-8T+sz}D@3xAt`9L!|^e%Fuy}-q@FKLNj&CE#I~dnN39S9#VUe zts5p+Dx-8HD9Y4URvhN)swdf5OLOSR7Gb1BJbVYzxGouO@R%fAsX8y#_A%C#n$l)Q zH#xF_oc?Ct48QXwh=xm_Aqy^MbJIPL5bjX1rd0-tX?H$qp{FqJ+6Br7ir%?1WEq23 z?uFl$=e1ryWpnorbKQ)3W*FhSscmyJ|nn*nXzajM6lO;!&)ps ziPKbAhdZ9h&hMHvR+Uaw@!3k|N(&@IT03eRMoW8y`mCYqwqUan>p6XzG@@bL>-Rpg zJ}bq}p@FQhYUCb^LI%Or$rMUj&)59vbr>NQp7zTC$JQ)iHjPt6bf-)a1&&XC4>R%q zaGo@`u`}pUDbj{Czl1T}ZiT@mqWP0muc}pYb$lc9KHuZX=di0F35m(61n9D@Bo9NBnd|~)G;cGDq0}CNP?*wN z#%BCilVitrFO?$C=dRy(U48sjrSf*^`@GgrcJD4>E~2g8{UKoC3|YLkLY+%4coas= z3DmbnN52EC)*1#$0Q;7qM|@VhA`1SpEv@S|cQc>}c~*NRc1A zRhFE%>#`l5jX{aEf_U=U!2+Don=38|;p?hJ98YQ;>owpTxeMeQcn6&7K*VIoWxWKw zYY|6(w+{z!&Kgy-9J$x!1#-CbNZO1juftpf{}PCr>BA0Vy8WY>-V_vp<3 zb}R9(KWd;)QRd{0L!jcx#HP#BcOm=6ew`|1jQYDa-yDgn+}@EtGdIV-$T+_#yHGF( zy1n~Nw_xgw-k+G@O~v1I<{)(buR7DwTj%F@j9?m@^|QE7sql+oiP93}%^`hoq2uB2 z9HXFx<0l$|HrMrOO2a(E)X(m*vK40WO2^jpc9JF!u)k<=u*~HTB=ww~)QtL?pJI+D zsOEpNrG+-EMeBaP7?niqj~V^(t9fTHf4HG;?Zu@8*do~Mk4RaK`WDUY=;L}{LSjoZuEgRA=;v}#jX@JZOw~rf%SsRRu%p2^6QnjcBY`cqgeD3<^68}6^hU@A_D24q|_lcso+nD+u#;vG^syA z>2yXO%cKl+>iAP6>w2Tnzroi|i6xcq?~m~CCf{YmEIjuOV`Qhz=nPRfpWmDvub#Vj z&q*;LV|+Ph?*k|mo$-b{ls$;ZNn)~#QcWMC;P4qVhAHT6oxm+Bj_@=ZxFek}M-WHDBjv5tT-`0etfK?{D z;pKm;uktM}54@|SWE}(7k9$oo>)%sIFmlI}nDXC3mkMI7M@rE6YE~=UGNVS9d+Ij4 z3bHR5mSutTed1+%8zqaeXXA+Y2ipvMD&b%8`v=J1eHE?qS6`j(btoHRM(qXdLB@b` zdGwYUkT-TCOy)QP$SHfg_P*`{SC$}F+^*##A0tNoCx7fDe)2HMQ6(+9T|Taw_DcKR z<-6zA@z5-`x>+O0!M7*!8QB?LgE94|#Fnc1vAL1A_7r4l$;E2-_ejk35XpT3H%wA@u|oLJ z@MY9z3T7BzOA|0$jk<_`yhQ|vBR2eq(?Ky_q?)~Y3nWk|dz0AU$j>but*N(NZ>`R$ zAHL~mmo^p7WS2x-1?mBRk2;BTH2Zcq8)9ZJ2%1YB#k0)Ba&f%U8R!>NN4q0gA)REH z%c39Iq=O7UywU65SHlcg3?isB_%qH8Ph4ddc@nGYP)rlB>Jun*sx~ev-A>?n7JTE2 z{j%P(uevm=W@#wWeDW66|GK-14ekO+@Enp-FFdgQtf1rI3s4H^IrFoQ5oH-ib|u;DDDrRZmzS8h+s90sw1vDtd$N59=!1`D?|l>TXkXOle+^=Ub5 zHr`n`T^)z&43cjC>ew#> zdxsstW=#x@MY$;=W0C$-jMjyWDMsPH;`agPzx%3j++Tb(7uGY`mIhOaDtAj#I--kb zB!j@+os8(CJ3IBBrrq>&k2HOu`%Akcr@MLQ7cLHSBsq{}_YND5Y`v)dK+QSaT)IG5neyGQwzFj7>5q_un_S_^BR8mlU`)Xc|xi z6%99oa535WJqgkaa0p~0PN~qFSO(LLGzdAI# zKjgf(2P=(O&96Yj-FCqBcy2U_=7{nE*@$Y-)E7J!jw~LBAX=VtF>WJy4J-ZSH1~0T zsZ&}iSKqw(MP6)!;FF}n^LT}0KtabeX`BVXpg5tw|MU|G$aOukeRb3O5Y_BF&ginT zzH86UDKuRDJJmB+Cgl}$&W%cO_W{)w+C-Za=A#d_IiCNp9#<4fum5H)N z3N5_=$NJflERc{VW-(*E=sy;MB*y5-mB71d=+FnPqP2f>|->UF`>dsfn;$_6>Y z?RuMi_?gpLcCK~ZTM_l!t5`BnvA7oto|p99`S5VIL^h<>iPs?V@^WQrm`XeNvCWRD z#&PC9b|&xi`EfJZ1wASbLkg?kmq=x-(=Q--Dxk(=3nT((Wb5uS*o;VEVMWE^QS}L@ zQ?|Aq3MIBZi{*TtTS_5(5gCZn>sWDa7Eu>wIpe&;juyKeCRU7h(? zNdEuw4g|xuWUA-n{Z|eZk~ZM1JS5s1v30#@=a0>CJ-lHFAgT2G-k#yoemMXqRhF*Y-PWxB;dkq|Lhlm9eA{WVm&kq++`yE)7YDXKwU!REPeo_sq4PS@iBbmT$HL z9#R9ekH58G3{IljJPt-R#REqy9q-`&8jCzB4(%OjspH=`Ey@X+7jo&!(;eZ1*s%j zvNnPt5;l&f!M)zz&SP$`S&1l5QFZp=Yo^l&)!6LR#VX}Dy~H{|I3%NRYv8cP1U(A@ zxx(xi6X5ecg*b)alItp!_uy5xLISrBjHMh)ww)nQqEc{_8@5e_a&hO7DE9+XT6N5l z6_Z^go)W)~G*p`xBJu{(7GsZU&7tDV4UzFBvx!$K!ZM>#W*kj$4lSy_48K|&IZ+c! z1Ss#?h_(c)!|+EJkH*%cSuhE@n5$H-uyH=WTlx{LyoJkcN|~h_l*&6Pz>(@)2eMMT z6HOdqT0G7Q>=VUyz;%^g2+MdEoAo9@uL`KTRVfMqAC#-01iuR*A+(_PiQheS$hQ`C zhQUm#!$1kVhdOY4O-bs_a8l?f11`;RA;_HNDU)4v>f)`kjey0iSaIcNUb1rlMI^IV zPc4o^m?8e7&(f2PClAorJ+LCjzXBK%f z=ASm;s@3XRX|rQbEo-n^^-gNkugftiLNna^E@WdtI&i<#4fL2wiXLIiI@=YzXYdUC zs;w5y9PIm3=QE7_xBKdUyK(6HVez^so_3)?^u0BI_v$#n{1>MNlK;c%AxeMTFOH1O zw%2{p(IvRLfs^C1+uqyy(n~C2+d&0CwhwFmD}JBa`Ma-%i~QAB&EI1?jI3?-HGxn4 zlbi&8kIaZrUzNQ{1p*y%I7}P6cab#*^+`Ckk$v|5nV`MwyNKnGU>BVlcl&K0TZB== z63ew3I{mxjPw#e@*1IP~59l8au6gu4av;0@rH@)=XD-{QBNjwn-f=`0KM3fKZ1fSk zTl}V2;&qcJOm!h9>^YsE|4~px?a{ocoOYr(8fB`PV)3W$A@RNK*qz&tvMylPd6QwD zB%UZ(m^f?4B^(=nji%IL3a5viFU9Y4Z1Uk_3}zPwRMG_mzV5!HLBsk2xVJw-l!eOG zz{vzv68!A=Tv-Q%8!GtZTA4KR1u@cg!SRGQ<)2;n_06Ai5@Ob>Typ>1@}Wcif#A)k zLi3@D&bo0!xUaUdT8C^w;}TRtqAHM3Vf%_D7P+WJQ*}x%r_AWk9F){cQRWyLA7Se#~aG(BtotO`(& z(JYh^ISsuT_zaEemN9;_YAIB|*O>B(N8l}|$v9iz^XK3fuL|V*GN(u7bA2TnGKVH6 zQP;hvPwrCS0HOU)yP-No{ke@rI;RP8N|lA>{+tYRf#=j7V24+nDMZ7)s*i6)q71{f zzOtR#6f;zMcb>iy8hVyWiAthF$W{b|@#WQA3PgM4`qRTHfBMCw%(J_Wxph6N44BhX zE_wU0ks`S@ms>3gyTAA;FOUV8ta7O@Oi8nCqCo`4E;!;#`UT8d6@e9uaG`pdb0*sp zy~QKs-eiL-i_9+Wdtd7)gu@{TWo&n;`p>a2V!9j2JQQh$CJ}DGzf$%U=WoW3gdhAB zjhF5$#REJqK<~RI%d9NgRSP1>UrmPa$WnER{Ewf~&#^$?YBfgr5oxihsnk5Wpncqk zPxmA@Y=$jQGVPkf#d8Tvb`&f7s!C9Y&nP*o@z_?&!(6(~Qz1((Ull>dMC8szDB#Ka zXr})ceR%qMh#Ey9W_b^X5_LK2V#dd;UIufJX0A?J3bBywFA#Df#;aNN!bqQ@4Je_2 z)vSFJVmirRgAL+I+0M~pWHQ?e~F=CBvMdDdFUpo_iUEc!lpvrcdWoU6?WkRpJjhjTe zwSCy()}K6q=AWG2FT20%%srpK>dg5Mm$VNgZ3V?G`DZU9EHc^N7l$rO<$jjwD&{IJ zcdhVAu^=qEkxOR}AbXgx4vkD^XFvD!lo&znMVoOx#o-qn zxkGPt;MgZL6>B@~EP9)1cYZ)PCamJyzRdh^6G-Y854%J0HK$+UUE{%|iY?Tc8)r`+ zdnZ`}?iD?8khoFBXF}w{S0G^$Ck2Xlc3K@y##t-avSG+*J_8Y|+(vu~xNV6y#>7!g z$Kz*Ok=liha8VvX%}5(moSbmD^WE_BwkNg)Y%IOJn(7>s8!gYWgMe~;0y<;ZqQDS4 zhmkfL>CmRFd zeaQDtT)(d+b@7CsdQs#`0m9T{`*fGLn0u@OTzVL3^8NE?HnK>In{S}?g)FXZ+*xn~ z`!)w>oFfU&^7EppP#yn?=-I8ek+XH7!%WePb$?NqB1oce)-Y}tO}HA2m!%U&J~jC} zG{s0g1|w!YEB2sImxs8`OV%Mmkw2nJ=)lIcCbed;dtOiEEiHj#cZH*J=3BHX$89Py z|FFqAnQOD6WN%`*Ppbjx>~5$P&1Bb6|DVqHZ=U*DG86CGgl=AWutLA{Ik9$mLMK4?NDzuxpT-^rr3n~N$@$`MdjX1Ir9z_ z+n+@r)ChsCP1iO>B^rYwjL(7`?@hG*!k*F%)n>x@=gi<&qI1=3I?m}z@m7ECP-A*Xb{LQU}nQhsUXoqxohF|bWc;x9y zfqzF$ir;B+0|syNJ=!ZL7m-Y5uiww)TOL_J#}L&k6_V!fFDFXkytE+)hHbxem^tgK z#{zo!uNCj~s<-=BUL|d}OYcpTowZ?wtjdJl{+7Q-9(neR$BXVmc3ft5+!D;&0P{AM zvkJvtgy+$UO3>5-LG}gg{mkJ#w(>pvydigKL7f5&d;CpGmOzEIEus^-J=_t6ypuz?$Fq zLj|qUUYuSM8tU&MpM8v+Eg$G+qx( zZBuxkw}3o>)DoiOsIp7>sJo1(#jSSe5jU^*mX9MsAqtB<*MeFFgn8{o6iWx~D z`&coSkrWc#_p|k2rlcwNi7GIn&76lIS&p6GD8X7@sMKD)?mRJeB>C3)qo?tpT~g`i zLfMYZ9mv5gZ;^LfJs@cv4@$Q1S7=8B@0P7qow#VvZVH$}lMLBm@dK<+=i`{wD6;;m zL13mPn8_}>(aoLYy@wIj0b}u9i=3OW4navKPabLvB14dvI)(Z9bs?6x`Li!13AQEk zeF3V2aYdfQb#U7r-df5`y;}U(1HOgH-pK*=$ ztA49_jNBiaV@}!cYgKYay0T2W9p*b#!mF~!@E&cy$lPV~e>xQ?W*`2hlr>(^mj?I! zBoQ<0!IpDaWZG-OfLUptynsb~^mxL_e_uae-^P|FA5w5~hfRx}P6ghqo``h$e4Fpp z(ohnNxU{8jIDkB*5B}zdmr!gnxee2sG9!>UTb5t-XJm|Z;iK4AI=HN^#-hb|MJWwiMc zQB<7JT;I7fn*V4Bcr5tTepy|%FW+wCHWCUvZW{Y(=@iqCMncHKtTdUW6v6 zsBB(hQR~duS!uHIrbqIa~I-k@6AnNf8U%5qr#@^p>A#qa> zUqWP;wm_Pqv9fdIkr&*+**LOL5CK_oB0~ht>XEuZsKd9Ac>{8|A6v5zs;Jy(`GW5} zWwn7l;c52VU53n^iH0B?(+F^1J;i9a^&%>5rm0Fs$?z`gapX<4Q)g-)xX5ckIRuIT zTc^nZgIEdvo@MfN&an7z`E-;Y^@MNC_|Y~eIviW`WAJxN(Ea$it&>P2(%l@Zt6A7wA})P;DVj>5?( z*b4|2+@%aP(jC^z*vnURNwnzvmJqK?a#+s;E!jn~k$cXh{oSEVb`6#Pk5dSyoneY+bGi%$;m;B^&Naeqj4N8v91O_R})j_Xy`c z&iM|8^h@+^P<7Cqaq;F)mC15hM+m`(m7hWFuQ^wOVXiCLc4-bzzMAy>M#YMBROGzb ziq!)bNw0^tMqK|Fb?+V2bla^9Cm}%Sp%>{LQHm&_lu$(!1Pg+KgrcG#MHJ~IbQGnC zf`Al7K#G7M(n%-^2vS6f)XT zUF%xAvN>+fCyKI?n*9;N#4XzqVd8(}?~I_c|BN&1=6{bfZ9OBpihPR+53Cbi(8I5P zJYmkOAAG)#kzm8?M_kBReo*Cna^!Wzxy@<%3gvi*8SQD;4P-pYJoz~e-R939rOe6s zBL@5OwUIeN_f{HqUgHA5dk88HZ(tB5q^;089qGTY@*9npoo#OF)HP~HE$J$mt-GFp z9LIlXYeBUzA#ssF!-JFUVk47^bur||^wnvFoeIG2yer{n0*roVJ&*29OLsJUQAR(Q z8I@J;kdS)^vvxM8aW>N+juT7*xt4gF z0B`4n)Tt+0_rPd4^sZrwD#38&DpjH~l)@q;34Pn@Bx%uEVjCNLn1pzZ{XR?L8Im{?+e|k8lUE(kBM}x#()i;+%7{&u)`K`bg1?-@i6cC*vY;+cJ^$RBqu@Me;qI2cF|8)bw5bB4en!lo@DMPEL0_raaL`$>}7wcaoX<8u}x!Uu}ZJ!k2}kEg=B z>^xPDpR~u9NDV~%)Q`a@HCZt&Gzr*vQ4_|Ul?Rw{)n)Hm?0%QW`3XLxx^+`P`KW93 z!Hull_m^iXKiyEfd3x*Go3LpH4dQ;nzFy6$#V&a@A7V@MjNGCDcXv(RoAUV?7X9Q5V)&IIY;Gh3f&k1^Pk?g*3n9c8J-J?ZdanA%BLE zIsG5LdYtvu-+guNJMt@;?b%FiScT`Vbhyv2&SFz<5*xC#{Aq0aoe(cGoN-LSwa`uf zCz#9fJg8({aM z*`Ytp@DI_70_tqI<*}>(F$x@jTda6gA?{>!tUCO0yt{tGpg!8dZiL5Ap}56P9{1)1 zJ6DQofT$a4V8>M?8yro!3;sNoL&o-x~!nBvRlMbNjQyQW`kVW zz4)Hk%#95nqPkQ8O)4RRXXW>CnKuk)PGFxEEJewl4md~QOzzGnO!N1=vCt^Y3Aewv zd=S8=W;(frhZZ(WZgzNoi@1^`pUx0IDB8^avQB?YQk653OU`yWjlR(ey7aZ>{;#*S z@^qTkP_*Y^jUUuD=g}!c1M&V)mtLDq&ftK|r627Jf=#^`BL_gHF{y>&#@9{+4@R(u z1q0YcBskxhQGvG&Q-0(zad=X{?5BWb8T|l@oo3;ux>qi(Lf!ik?PRWnXET4`7 zCpyH2EOReyH%9H=g)?yVONYKsMTLRAMz*H0N4v^XQ+~d?z*NC48K-@bv((@$SiB*` ziXQ9SL5Ta37N{`9^g9Ah5y}PyytnL?okC&1tYNfbQ+6XM{8SQJk-|c56~9tpzx75y z|7JBzM8=e2ZLiKkoKJim(pOj6^8Bvymqj@fadtf(?tkZZmc(POsGGF zK9yD+seng_UjCsi=U9Wh_{-o%Dp%L?fhqy<_WJ|Jj^=^tBtlfp@lD6)azq|uDMzib zfTC4O)Sj3jI`4`la`p0Ch?@#3dYkje`TJJI>JGbfP|6TdQ))-de^Wwczs<}vUSxze zzMF?Z9OU*M1Rmy*y08CljWZ_>`U95ezhcYR9)$AR9H+d2-wUHTG6{z@Tc!N#?V)!V zXE@jX8D|t`{uXC47s)F-4Q&1E7qeu#s9I z`OmHtuW359y?JPkqK+^sVQ6Od2*g*Ck3yO#)RFx>k|aF>Wl(SVqI;siksiG7`sLbX zqjMfOw6-{4ck$TJ5kRTI-+w}Gd)Eg2lY@~my0;Gzw> zcm|yLAPHuJnsSh5vhe-&rOz^R)B$c8&?O9zWK`^WMLH`gH!BJ;F{I92FmGs#RlR7q zcc^3`eS})1R|AgVgg9M+f!lQDYH;#yH32A^m4|FVqco#hxopu*Nh)szc8+&*W@k493%;pG(X;BD4vo6;iL9qhn`-D*uT!(rb5^hvSlVKP*78MnytOXUJ zI*=qOJQDuI<*byE7PJ`zs^-OPqeN6CKtQgA_bNU66 z=<|H4(>XK7@9NVu7${O{s&~sNO2%}T;4uJxR4OQ}14%&}Y;o7k{?8wM$O+ z?O&f?9=Or>B5bXjk1zV2O(zXuy?ya9W5?qSX|*5WS=u78f$b^Z8;pPRzT%!DlkVL9 z-sB$;_KU>raC5S`%-lHhggoW^gPa>_Sk@Ka#C1dZ>cpg_{E>w*8vwid!~X_fJ^x9g zL|YrBBx3HDAvYkjUbx ztn}#9%cDG|X{w!1I*}&BPeO{Mm6Oycw~{O>1iQuIIyo-arg#;0-i0!=fdOIBjo*m{ z^ONy(AD*#;iQ@Qh(c>*#g;(-Ss?#-JiLFz=Egr3kcLXaO@Dd>r!{r0*mmi5R!LBV2 zwxj}cb_`B6=rGY!l0~&n&?><0yr$1PGpk8piEI1JLp}z+@96*5@lvdOJg<4%#~SnAl{^aZr6kuze7Hm5haLStjyY^)5~O7e+qZ# zeN8yQlcatQH0e9(&4;SNGAQ5wWw9a=WFlu6iM+-l$KF1{%A}8PI-lV&QW>gvIM2r? zeoWZ7BJLrU(AkyEz2Wn0BEQyHp~RpK@4l|GT9637baVU+C}O1}f>n>)A~!ASAEZ9$>EzF7_^tuR(=Lzt zj5dJ4jZ?$Xe0N&G4D(_LQR95NNy*Cc z85sYU88x5__|WrcnH)9(*Pj2qP=)z5fSo_Tt>Cn8&<8j~NHoB!B)l1vc=Qb>*20&H zj6yJQ2B-mLsE7MgrgnD1qQW11ru}2Vs+ej0pR!pWA=kftaJf0nHSI<*IK>fH8+)>w zz|uQ-rMxkS>v0`Kr{#?_<92eR*4LKfADT|bAt*?Q|f^QtI9A_t0HsmlmUiriwrfKuu;OgB&~)mn3Pqe_@O z8q6QSE)cPv^CkP1AQYS907I5Ma#O47L+PPk-(P*AH{o--`T6SGD*_dXoF3M!v>_46 z_%=ZN$D*%?NSom2TbEjn_yy|m$u);GyXr)4}0 z6gvE8G$s6_d>^C{Q^q}H&r!BhvcrQNzCNz%?>M1{G)L$I&MjtDamQ zJ|#@YFCFN@$1m_5+>1~(YzWD5M7}AZ=3|IR)vi_vm@R-^>*IezocZUw;(z6yJsgSS5;;o^A8FfAo`5p2CwF@KW2jlNJ#C7%0T?PCLVe$j?k0lC2WhHvZnQ>3&%KSa?p z`+ldSIR9$`k6?I!!6j5T3DRK@_(0X4Eg`hX6W@mQFtCTxhv#YJt)PA%VPj&9Nmpzt zL++W0Jih>Xw9Tj$(UV?~>%$oiJ*uiD*oAvADk`39`MvzYXwc&QU$0sI#C!DH=7S|t4u8eT{sC~7dg6dcCwfx z2~+{x`RJX^u-kqSTu~=NeGCtDN--3{HwGzjR;=khEBV-MzS;+JDsZC~3BDcZ3$+(! zSM0=H(g?bD(zKo!QzPDbX6;YQ2n*rRGQg+O6!N40mZ%ZQu;UTp15b^$yC_sD13&WI zfwt8uhKu27@Qz4NikG zQe`gl!A8B&#ll8vwZiu!=`@Tcfc*%@UJHx=RY*mYmw)mSzH;5nk#%91d%kE(;^enG-rIDxU+Qdrck$-O zRIagav(7MO-97!4?)3Uy-MKygE^36W!`nclRIzB02Mxm9IK6hkE_)u6v)~`~9hP_) z-~aE;--jf~@3Z>KX7IG_5#rBT|4_;sQ5U#E`BO4^Utjq!C-^IWmtFX$ucE&G-B(=! z?!Mo91MHP>?+J8?(d~^W(B!_l%hn|t!;Q9_p|$YJP0_ANM@+hwdLvw@prfvVlLz8i zCov6L>&Nwxg7c9E&!QrmguE4LC9AUxCcq#Z1C|f$bC_a#5EyO?+>s?C{jqPSVxAW+ z?=D6d8j0>b`|I(}onz_DY32D~0(X<0_^1PS(X-==&s?X(N=g1-spca82!ylXb zd=i`6G?iBqlrV;w5{mKzuuG(Uu86$~C)x{?zrb0mJ)aILxH|Gq%M=RRDaH?nBHoGV z^xCjj<-1ku`J>s=F=92!+sh^xD^|#Y`cryJo>z^9br2{uV8RDdkrWN!YcZDKLryLH^#bM0 ziEavJo<4xfZdd*8V^c?BM5vMrzRxc;HEMm_5kqBf;@70g-3#f{)M4{2Fao6I?%#Cz z0V=1;(`7pKzV%fhlnNxRl-If5;^FQ1R7| zY}So2wg@yVWWLU93_sMkyDe6G(w8G|$4*%2X(3{#*Cv?0Z)d#tE2eZpY-j#i^cUOp zv)Kmb9{Ez~&BL11`!El)%#2?J8xgO$h(Q_Eu*jl8tP zuo-TL_z>7^;-3$kzWz(l-d}3MjETGdL zsmHj_Py9{}uI+i+bmeT3?;ly`4rUULXZ_C>>XCp#!;)a9Mc=PJ^z_Fy1&#{Rq$;ZE z@V&~rR*JDZ%M;7++IyM;QphMTng+2fT^sU9Ie_g;Vztbk-iB)hrM*yG!!VAX9xt~7V>n~O4H5g@cEIO4=@I|E60iFaEIsF$7BkokQbi#Le*o`T-q zOF)cDi*hn$6?5QJq3-V=s+dqg5z|Z~N@LEb+W^(zqc}GM?6G>c{>>P^a-G{pbgz|!Q-mM5{kH0Y82Y=CzNLM!sW zC)eAwfDAn@FbPSi;M43bZ)|Mf{ry88jO7{*=;X#3z=x~y3eyTImf^ZmDa#=haYGT% zo)FO4@sI+n%(bxtI1$ZcTBnqGA#FLOFcMlO1QWkyQy4(AjwQNP_a%(ZXf^KwQd6w^ zdXDUnmISr|06YKnCML6984Bntd9@jjm8SQi+zOHX?750=2Hgl52PrlNZSR4hndyhv zPihG%4?%FsPl?yD=X$`{tof3X0+u$cb|Ggm0bMbCZsJe)_c ztorcTBkrm&^al2K>;ssuuA!5L^5BKW$4RpE? zv z_c~mEZ)65xnrIWMSF3~Pjry?M_ePG9mn?q|UH%?8tGY5TFRnST)qz}HT_)JZjH;kM zhEU-$pakY9eSEM_h)#vZKl z@XnB*ubbs4y|#??o(;|mkvAe#@~9p~1MpRVQHrSq3ce<-#sO}1Tf?7mZwFs5#% zMCZ~SMxBew8zkq<@B9R?YnlHa$C-cU-_R8YevLs15_D~Gf`0$Uq-x#0)N@|KojT}C*_h?&(s!fC&uvT8>)R5Mz(e9O>~Vn1m&W%{flvOIzfcFULu$>Q z^qwFZo93rWH1pLZ@ANIIIPCTT!vFddDrcFR6NmnH{;m=K&p1hX}%6fyrrisef*zGLzxtgHR@hj$}4FMIfxAuT{M^}?7rpX;O zOPOu|JR?4<0j9%Qbn`PRYRe3qnQ?N<=DK7|tiZ@F7nb#Ljp}ek4MZZ;a-~kA=HuLs zExq~A5(+9p(LQ%(8-$ZUn`oHt)pE86U8Y0DgXpbA&({$VfZc@|%lm)IBXMbS+J`zC z67OXA2{Ugo0nGr*t*^d;7ImQkb1*(=Mmq%y`G1zTuBZa_e#skCb8WN zq9c)Rw+WQp;3X6tD!S$w5>1uhV>Ox!XZt2=7SL0Xgu<^m8j92c*mYR`$9W%$r0s?w zW;!L3(@0B>&GIB)EADIjwq3inZ?$iLRqM-8AIDR5y&)o_181Vy;|`dwN7LZDb|EHH zsGyLXjAn?dJ*sxo{rK^|vG3_y5Vgn!3|jGL%Jqo^E}K`|x1vjw4!mV589dtVxo^s6 zMqegdXusLUuhS}iEqNPmCj!hl|KswMPw%O!wEBH*S&}3sdCD+KBj zS@ZFe82|3g9PZ7-S(QWm8OAeH|2*#_MSnlk42Pq7diFc;tNdcmBm zT0R&6E{24Ziu8hp(oZbq!ssdWM3x(U=DSgLe4_9crQSz8Ki;DV)jZF+iPNzuBMdM} z-W{oTuLz2w`4?Y1?gQbU%@MeUZgr8JLH%(b?(;&7iigz;T9FtGt^*g%(ydTzeb`?W zhhvi5i_0S(@p$vFEVLRj^r(P@c5Avc#X)96&5=Y1T9MmkxaifW3EUv}W6Br`XKqBD zVtF1s74Xb3K#GZncg!Oq1b)QM7-riQ715E!4Gl(1Q$r1ZL)<*1hvS3=cZD*25m1e|`~EaBr`MlJZ@;Uz-Kv*vIwLSVKQ$d72J30&58#ygXvOdmz%Eg>=OoAKHl#Z3J#VAvBO=}m7A$FQ zj1O>PVA-Wk8}9Bi*XWr&&B99E*43Q}meXb`TAAD9hG<2d43H^G|^bpGO6-eCJ=9cDz3(@3rlP ziU@oU2o6^uNarVXIhl8s?B(s4H=YbnuZm1)^4tnY3$#7ZntKeLj_=m4PhH*J^%Mxs zAsFv|Qe*G)AFsCx36w9@^46J36^-|qH`kcEaVaU;7ZEz0FMnm6j)p&_t%WwzF0!aD z`{no${bVa*BQ>;QK4&;KLN{QG|V|H1DV z!QFr7??&qXj59mCe~&XW4{t<(QW;dHzUUbneNsM7Sqx5qZOI6Sqs~j0kfZ}u!jEEp z=#RIP9<~#p24?8PMkA; zv2c)U04MpnR@f^Igg7G0U*uj|EtO=y6LwitBpFO4Jh{CC_n6Sw?rHNImev1|+d3(q zqrXSKAbaY%1&J30YPc{_px|~f)bYx1uOLH2F`XLb?C-fWQeK{14Sw>cmJN0qpDz0= zJiwksD|pNxX!>EikE?^Za{iam#}CzH1D!u#7cy@?o3oqzCfq%sXh&B}@nYgN|8&1w z?Cla(DU$XjY@xp&Jop|2U_W*5zwEpR)H-Iod%18PRiXV})x~?gOHV#(#X)1jY1o{= zch6Rra|CaHm5SdBmKbo}NERcGjC{M!Y5YQ)&8h}^g6WgqCZ4|XzF~EBMzuWZFJ9^) z|DDl1>L2G_mB;XJ=RFhb8-Tp%adOH#$CT?!y7}zPVhWd%N7VDnM zF_VDj6_$a6NcSI$~Ksc~2()sIumQ8OT{!90qk)=^Dva@Bcl=!f^V zkD>~aS!dIbV8Z>}wb`ngjjdzTsP;_d>WRE#JQgY-6ES2M4HFw+k3Bl}gFjT{*0r=5 zRD!D#hW<=YkRgh1(au0#9gFyDV-QJmVS^E>babk`fMCv^<{xK?cok3ioGpb^n@QjexR!PuCyAU2Oe1 zP+S%cQtP6&>>BpSMiGO!FV=kA!KFds?pAcZ{%_M+5%FV&iNCCI=bUPqm!aR{B#$rffDpYOMj&Wz1pzApgMuAQx`Y8$5J9ZE_A-W*-msNT^8vmXq15yRp z!yQp3Sj`|{cVTPAyU+aJ9i-SvF?UZ=eZ|=-gGt6qOdhcwNJ7lWk!YtDUe%^$vFTVN zldOhb44x(Lg(x(*W|&<=03;Qt*+3s=KRHh|+k!}6G}AWk2u0YIgs|B-j7kERZ@*pc zUp%{{s9Qo8lew>zlLVR>7&G!T#;5nD#IJ>5u9~litRv9zwDGpLFhJ1FKO^@m^pxtz zz#MtI*^i>aTAK?(0*j6|K~PKd@p};dref&~CYfMcf&qYCglXTj<-Yzb{UxqS@(vB; zf%Ix3p3TU%yc(5V@cy^_-MLSLw1{c>NmHl?oYlzCvtM5(Iuw?HM&1e6^1dV zdCh#vb+m%bp8Oiujz18$tB&81E70qrG$^hTEY?oRXgx zsv}F0Yp~q5dtqyQ`Si(qBNQn+`Wx8MFgku@q-&ESurr9G>w^0i>X%jZ04=`Nm%9`i z`CwmPXLX*0|M2hp-FoDoaYps|-{XwbL-}rHuBfUOwPBjf8&g&5X>0g+Vtf1hIhXNE zCt6iBWMzT~?l@k=R^Yzh5w8+igWTU?iWJ}R33@-FZ;7iBP<^IGIirajWU=cEi_Gdc zaPq!#(3O)uuhQ0?z{w#m`_A7<;Hjb(Tfx8v+mc7<>U$aMVG*Dfi>$krkHsNeA6$xy zi&W{jp>C~MCPO8PrJ*|-u)A0yoe#2rSE#?utnaM&c|b@C3Y%<{ z0;H*V+)H>la0F>?!!mZp>mKY&eXtw*fgw_`j-6}u0AI~c4hDzEB!XhbZhDOu+(vUg z?kbw5Z&N^QP3|;0rhcfxI3^78IA6S@c#!Y*XM11)#`luoZTgRF!pz~DPyD1xr}ACp zf6>{?|Go6e7We^V{y4Q=kxy&kwlJmCkJKNuDDnFtvwZfVBs~bRGZoH}C31#$2qu$> zpi_BKr5KMMM3liVgD8kWEy#JZdfAk6kYU@;Kmy&lc6{;56NmC!zycpO^L0!FNY-$s zvtc}WVT_tvndACLTa6verci>xMV5x;h+m# zj(xGbqsfi|g%7Ngmoo2(b=9QHOMI^&giN0bK5TO$T0m}3IR%oy5NJ<>Ed?e3sG!s0 z!&(QQSR0b(=*zfEgg7IY&@m(57zSgL02tkHJn_rty6_Kf7*~^Nw6~*^XxN;0tn$1Q z*0e!YaBnk8=NS|4+=_M#s|5BcW6g+R;xU>_$xBTqb2q^5JfdCKrze!YP`1we-lz33 zP6L@ROt_|nsRFItB9t|GbV3Ni%}LJM^%b>)zFmWr9}ujX@cQn6q*TlWT(}F+msP12 z;5G_!gjr`@`h9c6`750+iaWd#l|GxNSMnSsfI5LaSwG8xt^ky$d&hAYR{ynp;Kb$` zph8MWT%@g%jN<973XCNbUa~3b)($-a5(Ya#6FE>e_ffU9j!L8=VDR$b++6EfHRVgq zpseB?9p96OwN&057!d?2DFYbK68_sXs!-bE0cnamZFL?<{<$24B0;X|xSZ{XIKC;k z_M$a+b%)!cTA(*-|3=?ZdT5j5lZ@l|>df2YbT7eqnw1<9WHr{5>}vYtBPJW8^HsIx zh-vq%oiZi~P;aWdxVx1yR#pY^sa52dQv2E?XaHRwd%@sOvz=YmIa@Hwf}EBpPiU3t z5MT=X(rH~SQ=B|h=0oNnedZ9q&qd6Tpj-2@^Q_=V zmlIkhiW|oRR^xd&hDU&2&i{Da+-w`to~WaFRClRc|Ub{ z-jSjIJn!yue?RZezG<5wD!kALNoJ(B4UZGcy_K~5Gdq7CeqzzPsvV)i=0hqIwW8$9 zet-VQ*;Kc3ur;)>=0)er4ZW1?y5C@x&;rqMNlEfh`ou8@$kc;((}^iTNL0`-`j04x zSd;;pMW;bnuLfs`n-|>o#T)k=PULIwah6_=4QCRO^$T@M3-iIk9G5J;mo>Rr-vrUP z!hB*5`2+%zN7cX9WM^02A(BKiU2Ru?TCcpil)QkaGb>)K7Zo0lYT;}sAk>zFBz0_1 z!JOgyaDk=Wx4k>B!k8SrG3aypC;Rs6%W%eQkNA6SFPm$43oF!Z3L=O{GFxDhK&KU& z*)aS@8VaH!Rih9QMjPuXL_!=K0zYf^aIqsu+OLW4Ny^|>N^2GE%s2tU)CsnDnR;X@ znV3!kInLa=j zzzWRiGR>g(HM{DFa<;tT;PrJ;@ZdBzJO#L%ZnQ3$*6E64zPG}(aYw;Mo(-rzLj6v zi==%i+5ZFQmxhmzVFoiUl4-SS6irz8)7x8dM@X^<6$FOxJ6UJ;nyyMeZGQ=8isjCL z-v6?nzDokI3xP}WJ#D9)Lz#zxe-Y`Tut+&I0jXZ}_+GL7DCZ&{=d7z-@d0CQ?oNEK zAdB4{Z#${n@d8VNL4<)c$w1SI_x-sNTdEIlIc1s#uaEM4Z&COGdO#)vn@-M7fA?-C zP?Xlr87Ueu-NX(cdi-D0{PVUbFWL3EVfQ}pfeC!ZpfWBLpXiZCJrU*-IH|gi0iCj$ z5{~Mlsw-{i;#c{vm4y?~>*^s+3OBBK$D?aLJNNfNd;JdWx2xd`3 zHoiQhFjC^a3M=|4$sae*(vxr6S^gl$fgmMj>HHvlN`ib$@uW}7undbMbB@9g?^%iH zf{f9K`-*cqy|^!@r7p%v-HP5S-<1K7{_{J$D!{+8ts1f`3N+UbH)N+o&Faw~(=RijASJQe?Ratxoz_jN3*#eQ2I7p) zVVt?s|IauR`{3_!Cj22U`Pi5MaIva5oo_XJ`?a)}aDQ?$bE<(*U6TdQdUkrJ)xfrZ zsz9E7KVdx}_f1SBxOT1FEi-~^=x7SQ1qRpS24zKnjQE>2&7!^;ffNKG!pVE(ku4Pr ze{y@mhRE&UD2v^?XjGKPf>JP^i*CHi{*AtmT6i9{Wd4HWz#C}bWUzjW(#odNi@JO( zWR%!Sf&q3Hr3UPdGU%yHdXt}Wyb!vFo(NQP8M_vSqCD-X-D6kCCN|Oj)lh*-Vn-WB z^2|pP;_cM_3%zo2(v@3S)BW_ETf-sDUwp3 zn*>ll)B1kkAe!`7ONUc{3tGs3v8hErS2NqRaD+4hl_&A(nWw5yiL#Ow0sQx37$?iQ zmtAx-XM0TZE1#!KR?`8wo9&AI!7NS0k2GjAfL$z+%;QY79j15t$XT@_vL7+I!R)g^ z-X1*lp@q~(s|WZp>^o+dF@EmiRw#A9lk)@52YFJ^HGfH<(|PWkzqaHo-1{+{k-(?G z!E^5Xx6vQRuo=7A+bUO$LpPf11sOMQVq|fj8Wns`gLQ7W-zM8Hd2M>=396=$&F1Ns z5F7q|1HUPD05NI&fP@>&@oy?zDjzqs&mX;ZA~gE9@p-pl%nf1`T@_zO9@suVyP08eN#vhUXU+t@ZbKC#hDK+o8wdz<3jw^;%Bs@kEiddd9LSKl}N-B;iGrr_H>+ae^{ zpR+7U44IU=EAY2o!D`fTh7q871DZ4R&!g$in+~9u;gSuFf+vX5OkII|rTo0FY+sDb zqIzcquXFJnKMN;^3i0(@YJRuzd)yy3Vn2@o2uW6lBR3!ad;wu=4<0BpC!22mEUgpoB#eF52{fnOHGnza;cTPzb9GHas!uY10hM zY=Tw%rtQdZr0U2>|FSfzBPk?S@!DM}X?f6-uBBI8~FJsgVtR^fN&E%aPLF7DXr!2Yl)bz8pJ+}NOK-Vb=%uWXcYS&!SOq_578G_2A!R5L>C$c>%52}3vm z<=<(uF5ba&mCY6u5Wd&nxODH&R7G0KI%)CitgpTzqZKl^nNuOqb`_?fm_v0-rc z?+mWijl0hTOY;-EB%Z-xcgF!%_q}Iu@3_aI5Dm@x3(#IZ1|Fn zy??9Kw{FKv{BN=+f8L&%o!aU%KZkr?dS;`MQS9yS4=Vf>TjuzEZMW3N2#EYT;!n&3 zsrhVZj_nd4HNDHrKHjdU{%PmR$e!M_sQ0axLs<6hGtt?vzck@u;feK7xn7Iu*lob> zr=I^`6=%xPLqp&C7{9EF!s1{Wv3jb1k~EwioaVJ=36}uc4c}eP2Tx?)hR9=L_ z!xhM}q4WdiV+@G5WIo2~(46xOw@rvnl*lR#&PPV!)q2mF+I1C%-^ z6$XfQ%g(%09i!xoa)Y0}<~9PaE|kl92gpHESLDu@IJ%WJ<7*I?lrDb^DICaepiZ6I zhpOpj19lf2Ll+%`<8HySd495-FeKoXc}1{Y!;Ny<%DjWdClT~Ts~Mk5B!G}c0b1S~ z+YY=3!l4)3o1KY_rCXtwurI$Q($gMED5Mhc*8@WaN0+cS&4>6bszyNo6{86)PtOK2 z3IWv??q9!YRvb=0Eo!g5hGIF^J}DQDkqwyk?CJ~0DA~0}vbJM$whTO<$zuz4ghCt4A$VE=VXw* zwK^PlZnkO>3dgrD8Y@7jx3OmBp6d%s<1G@6t-wI<#{GwteS1eFD|{M&$?O|V2eQ7+ zGl58-Ms)lL*I^DU?4)hF8jJpEoEtQ}!tbdHw3#M?jT+G`d9}S1{X4}Y zd$Y`3C3t|EOV((TY~%?U_jw)0;0uX=OFQQ>G_(;Q-0UF#XdBTU! zr3GPuEL!8poy>5-vT+(JTA%NbbM;sL9@6zsU!Au3yRXgwzDn(4hvv1UR_6+cBfTF< z@|JzoX?>Tt0=hpm6te4hiBXl)mu-kT(-I=WQ|ZWq&^|{2BncXT)Ez$G)^vAcg;5Nt z8UcD%`$#f4u{1G-NHdr;6=}V02y8;Ekb0d~9nuflX-Qv4grH;T^dEK(nCEs;S}fVk z>)O2D*K=A7I736P)9pfXq*b&S`};mO*2MsJ7X{B^LC=&bVKE>3Z$d1@vRx$;dT3=> zvlk0`*wYGlf})|(s}m$i7&I(C)#@kAgre=p&U2dwK_U+5Y0=NRg{=Z&CfGO`i5BpZ zDFr-U)@N_O_%j$-(9x)oBjrse^fdSQJEGdmfMPg>kphyqBa$Mu0p$*z zRB>knf`qqxnk zavkbIi1F!8Ux#JyTiI5vkoXw1FeAd{Uw9Vjvq<9VE(vnpT#1gN zuX$juzdm=?3g31P2ZSD*$=N2Y+)w*Q(MLR2R`DQtfi8dg*qoyQhvStMG8O_!79PO_ zQR&K1FbB})3eo|ViY1ifDKAHv*)PpVMCrp{&}gwtiE$iUAnA>f{3&se)P9+-+thFn z+74rOBay_!T5!{B5E&K5M|M;*@P=Ir9OS}5D*^1{UJLXeG#PkZvk={&m?uKBm22i=%1qAB?v96P~RK+wa02N_58zmbzrQ_quS_%DlCGM=N ze(kV0sZsH4c%JWx!htui?Bn8ZiE$2Bjv(5f_#IQ#X{c0+;pfO)9UP0P$QvAy-ohyr z2IYN`Y>-u=M`D~RC3b`;{X2h;68)#IQr`Z}S2I9wnnh27PLJ7CmA!jrul{aEeTHow z#}oG6?`lqYNerV1=Nvz5Ka2bL#S43vMXmPSl610UOT6?a`mV3B*Yv+W+D+qyf}-FM zv>Vp-l=7=kKrw*(tpFjKyT>(Sj?T|^a%bzTXeyI;b`4Qk&A_uE{{}8TIgLH z{U&!MStB-t3A(%ig?GWjx5QKKmM$ZxhqWc{o6J%jv8e%RSSUDQ$}DBwfcg9Bo-BG( zxqy=|G-1A}4LM`L@Ju$RsJRObNBEl3I+=0tozqxz;?I@hNKnlY`%CRtBxrbdvl;zAIPY3T7nel-kLwF`3{dd9F$|Nc zmDXvfH&s~STa)CCcv|+h1G8&*1SWIp4517tC%kf}1FOs$BURQpNB&zZ4Fr(&|F72Y4l8Qv%v7%pj~?)~M^V@XbY&)$Sz zHauPdX372%_lWQx1D?9N*(L3F^;w=e;Dc{bG0dP`%dnLrP}w0nz;vXOz{c4q1|J34 z7s9B{Fi`A29!jL2s>eMDuVGP$U5|mPI=_L0si^feuHh>xP_V*Ka%^1xS zv2YatJ73`i!h3F7SKTx{RH3Y|I~((QHMCO6^)oe9Bs1eRFSbimzV6LnKbkk_#iwb! zY*2`!ajyw?POnFAOphOp-n6feFO_5zCAgldbr2G8%?Aba`LHgegC6>Mxg9j^YyU(o z-Q@K|y}0$;KytEIweU~n)#CzA)+;&Nd-k=*#W!DG7IhzgLAiC0q8&dcNqn+vRjR=| z>Z&U;U7)y=xbuNK>l68bM&jUut@k^1EWpmtua2Jw=@laY_ET5?(>U`#f5rb#zpJ;r z2e7C+A{`52>#B`>F<)Ma>|pvBtK6Ws7>BEnL5t zaYkKu{qJ!`@=fe%IC$};g z>eZ;nBz!Y7%bbB?(YF_wsA6mZJ2-keCVOWTz%E20Km;2;0@`P88FS`2>@Dwq3mqFU zx&OYQ_za6D9rRVQ{;QpzkG4gvWF%*I`p6g_EdQLlruu_&Y8#KW;{%bw1~`2KI@N_oE*BB!;IClJ$RS z>?S|g^0-N*x55)gT9HUQ$?pW?MIBuX(#&-`x6H4qvGAamRYy$vnkic0UZ2&q=rRA} zo0|s+wCWCkUHGh$Ziz(zJ&(KqjazUP=GxIX3EI~$!W5c4eAASgza*15H=elFS8q%H z1JJw8LI_rNl1wN4Q^(mNoVYihHp%7T{T$DoAQKkQ7hQXO3%-T!y!~~XMIv6b)s|24 zdj9K`87*Gr_k_;|XGS*8c-YGoc13l@V3F)ba|T4Pn)LV5eEG{wlOO4bXWuvqgYt6wcXnTfLybD;>gkd% zF8-3a{iH$1?uXYv;I)-dIO1G>gyOuFJMNi|Y(n_K(vruvLKj>Hl3h)RI8AY}Jd>Vt0hpp@{5weYF9j$0m!U3xE zz2h(o_^w9v+1AKOPto4qkjElXGgjOMlF;d(Juzo4=IdVhVtuQ?_zKc2Uxq+yg85}n z3vz;4zkIC?f!Kjun=afOkKHj!u}#u#0Vwz_?l{K z*+Ci4Pv!6Zx}|fwG@}rXhyca+igT%Pklp&#t{sM(dNla9=PJdpvt$BV7nua&)w+@< z3Zacz#i|i``OlrH!x>agLhgxsjo3Gy_{5+^2>mHo6ikYlJza)a2}m8TmA~+!Wy_od zz3*s)qNdOSw<2dcZ9~o)shxgtAftr35B*d{r9S~T7`YJ+@@OB4_~EGcsQ3nn;p@q} z-MdG3@}g*w7%QUQgrw%nhg=gq{N?#EMcWBaX`|r+^tNAfp)OEnF)PY)?GMBn5o=b@ zZDcw{Xn6eeB`=#sSRsik%qvd}Yq75uI<$-Qeha8th!!@WX>0Yz%8KLgowJ}CD2scU zEg8CzJ`9Kr!+h#CE
U4`B?%mS8&b^2Fd>Vc6nz_Aag=ydPv1HWqp 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 a`%V?o1@j*sCY7XH?8^a?Z5|*uG5-TROw=;~ literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/high-05.mpegts b/test/browser/media/hls/high-05.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..68ffef3919a80fa7dc36979e60ff6b2f3cbc68e2 GIT binary patch literal 48128 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 L4%^@_rI`N$4nx3q literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/low-01.mpegts b/test/browser/media/hls/low-01.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..24605d2db1d4bd844cefb9aa674da03348f793e2 GIT binary patch literal 32900 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 o(H<3DQIwUnA}xrPbJdMF2Y+(|P5=M^ literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/low-04.mpegts b/test/browser/media/hls/low-04.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..6da5faa326ee6c69879b2d3bb4c143e9d6e8c07b GIT binary patch literal 29704 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 literal 0 HcmV?d00001 diff --git a/test/browser/media/hls/low-05.mpegts b/test/browser/media/hls/low-05.mpegts new file mode 100644 index 0000000000000000000000000000000000000000..86ec19d39c7e8799b54fc4c74194571d766edf75 GIT binary patch literal 29516 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 sn3Kd!rbbIi*~Ked74b { + if (!condition) + throw new Error(message) + } } }, + on(event, callback) { + if (!listeners.has(event)) + listeners.set(event, new Set()) + listeners.get(event).add(callback) + return art + }, + off(event, callback) { + listeners.get(event)?.delete(callback) + return art + }, + emit(event, ...args) { + for (const callback of [...(listeners.get(event) || [])]) + callback(...args) + return art + }, + notice: {}, + } + let notice = '' + Object.defineProperty(art.notice, 'show', { + get: () => notice, + set: (value) => { + calls.push(['notice', value]) + notice = value + }, + }) + for (const [name, entries] of [['controls', controls], ['setting', settings]]) { + art[name] = { + update(item) { + calls.push([`${name}.update`, item.name]) + entries.set(item.name, item) + }, + remove(nameToRemove) { + calls.push([`${name}.remove`, nameToRemove]) + entries.delete(nameToRemove) + }, + check(item) { calls.push([`${name}.check`, item]) }, + } + } + const hls = { + media: video, + levels: [{ height: 360 }, { height: 720 }, { height: 1080 }], + audioTracks: [{ id: 0, name: 'English' }, { id: 1, lang: 'fr' }], + } + for (const [key, initial] of [['currentLevel', -1], ['audioTrack', 0]]) { + let value = initial + Object.defineProperty(hls, key, { + configurable: true, + get: () => value, + set: (next) => { + calls.push([key, next]) + value = next + }, + }) + } + art.hls = hls + return { art, hls, calls, controls, settings, listeners } +} + +export const bothMenus = () => ({ quality: { control: true, setting: true }, audio: { control: true, setting: true } }) +export const selections = menu => Array.from(menu.selector, item => [item.html, item.value, item.default]) diff --git a/test/hls-control.test.js b/test/hls-control.test.js new file mode 100644 index 000000000..cc301e9ac --- /dev/null +++ b/test/hls-control.test.js @@ -0,0 +1,221 @@ +import assert from 'node:assert/strict' +// eslint-disable-next-line test/no-import-node-test -- The repo uses Node's runner for controlled contracts. +import { test } from 'node:test' +import { bothMenus, hlsHost, hlsImplementations, selections } from './helpers/hls-control.js' + +const implementations = await hlsImplementations() +for (const { name, factory } of implementations) { + test(`${name}: optional factory, synchronous result and deferred core events`, () => { + const { art, controls, calls, listeners } = hlsHost() + const empty = factory()(art) + assert.deepEqual(Object.keys(empty).sort(), ['name', 'update']) + assert.equal(empty.name, 'artplayerPluginHlsControl') + assert.equal(empty.update(), undefined) + assert.equal(calls.length, 0) + assert.equal(listeners.get('ready').has(empty.update), true) + assert.equal(listeners.get('restart').has(empty.update), true) + const plugin = factory(bothMenus())(art) + assert.equal(controls.size, 0) + art.emit('ready') + assert.equal(controls.size, 2) + calls.length = 0 + art.emit('restart', 'next.m3u8') + assert.deepEqual(calls.map(call => call[0]), ['controls.update', 'setting.update', 'controls.update', 'setting.update']) + assert.equal(plugin.update(), undefined) + }) + + test(`${name}: missing or foreign Hls fails before any menu changes`, () => { + const { art, calls, hls } = hlsHost() + const plugin = factory(bothMenus())(art) + for (const invalid of [undefined, null, {}, { media: {} }]) { + art.hls = invalid + assert.throws(() => plugin.update(), { message: 'Cannot find instance of HLS from "art.hls"' }) + assert.equal(calls.length, 0) + } + art.hls = hls + plugin.update() + assert.equal(calls.length, 4) + }) + + test(`${name}: quality and audio retain names, ordering, defaults and UI fields`, () => { + const { art, hls, controls, settings } = hlsHost() + hls.levels = [{ name: 'SD', height: 360 }, { height: 720 }, { name: 'SD', height: 480 }, { height: 1080 }] + hls.audioTracks.push({ id: 2, language: 'de' }, { id: 3, name: 'English' }) + const plugin = factory(bothMenus())(art) + plugin.update() + assert.deepEqual(selections(controls.get('hls-quality')), [['1080P', 3, false], ['720P', 1, false], ['SD', 0, false], ['Auto', -1, true]]) + assert.deepEqual(selections(controls.get('hls-audio')), [['English', 0, true], ['fr', 1, false], ['de', 2, false]]) + for (const [key, title] of [['hls-quality', 'Quality'], ['hls-audio', 'Audio']]) { + const control = controls.get(key) + const setting = settings.get(key) + assert.equal(control.position, 'right') + assert.equal(control.style.padding, '0 10px') + assert.equal(setting.width, 200) + assert.match(setting.icon, / { + for (const [key, field, title] of [['hls-quality', 'currentLevel', 'Quality'], ['hls-audio', 'audioTrack', 'Audio']]) { + const { art, calls, controls, hls } = hlsHost() + factory(bothMenus())(art).update() + const menu = controls.get(key) + const item = menu.selector[1] + calls.length = 0 + assert.equal(menu.onSelect(item), item.html) + assert.equal(hls[field], item.value) + assert.deepEqual(calls, [[field, item.value], ['notice', `${title}: ${item.html}`], ['controls.check', item], ['setting.check', item]]) + if (key === 'hls-quality') { + assert.equal(menu.onSelect(menu.selector.at(-1)), 'Auto') + assert.equal(hls.currentLevel, -1) + } + } + }) + + test(`${name}: getName receives original SDK item and optional map index without binding`, () => { + const { art, hls, controls } = hlsHost() + hls.currentLevel = 1 + const invocations = [] + const option = bothMenus() + option.quality.getName = function (...args) { + invocations.push({ context: this, args }) + return `Level ${args[0].height}` + } + factory(option)(art).update() + assert.equal(invocations.length, 4) + assert.equal(invocations[0].args.length, 1) + assert.equal(invocations[0].args[0], hls.levels[1]) + for (let index = 0; index < 3; index++) { + assert.equal(invocations[index + 1].context, undefined) + assert.equal(invocations[index + 1].args[0], hls.levels[index]) + assert.equal(invocations[index + 1].args[1], index) + } + assert.equal(controls.get('hls-quality').html, 'Level 720') + }) + + test(`${name}: callback failure is synchronous and later update can recover`, () => { + const { art, calls, controls } = hlsHost() + const failure = new Error('consumer callback failure') + const option = bothMenus() + option.audio.getName = () => { + throw failure + } + const plugin = factory(option)(art) + assert.throws(() => plugin.update(), error => error === failure) + assert.deepEqual(calls.map(call => call[1]), ['hls-quality', 'hls-quality']) + assert.equal(controls.has('hls-audio'), false) + delete option.audio.getName + assert.equal(plugin.update(), undefined) + assert.equal(controls.has('hls-audio'), true) + }) + + test(`${name}: rejected SDK selection propagates before notice or checks`, () => { + for (const [key, field] of [['hls-quality', 'currentLevel'], ['hls-audio', 'audioTrack']]) { + const { art, hls, controls, calls } = hlsHost() + factory(bothMenus())(art).update() + const failure = new Error('SDK selection rejected') + const selected = hls[field] + Object.defineProperty(hls, field, { + get: () => selected, + set() { + throw failure + }, + }) + calls.length = 0 + const menu = controls.get(key) + assert.throws(() => menu.onSelect(menu.selector[0]), error => error === failure) + assert.equal(calls.length, 0) + } + }) + + test(`${name}: individual surfaces, translated labels and falsy defaults`, () => { + for (const surface of ['control', 'setting']) { + const { art, controls, settings, calls } = hlsHost() + const options = { quality: { [surface]: true, title: 'Definition', auto: 'Automatic' }, audio: { [surface]: true, title: '', auto: '' } } + factory(options)(art).update() + const active = surface === 'control' ? controls : settings + assert.equal((surface === 'control' ? settings : controls).size, 0) + const menu = active.get('hls-quality') + assert.equal(menu.selector.at(-1).html, 'Automatic') + calls.length = 0 + menu.onSelect(menu.selector[0]) + assert.equal(art.notice.show, 'Definition: 1080P') + assert.deepEqual(calls.map(call => call[0]), ['currentLevel', 'notice', `${surface === 'control' ? 'controls' : 'setting'}.check`]) + active.get('hls-audio').onSelect(active.get('hls-audio').selector[0]) + assert.equal(art.notice.show, 'Audio: English') + } + }) + + test(`${name}: update reads replacement engine and new list indexes`, () => { + const host = hlsHost() + const plugin = factory(bothMenus())(host.art) + plugin.update() + const replacement = hlsHost().hls + replacement.media = host.art.template.$video + replacement.levels = [{ height: 144 }, { height: 240 }] + replacement.currentLevel = 1 + host.art.hls = replacement + host.art.emit('restart') + const menu = host.controls.get('hls-quality') + assert.deepEqual(selections(menu), [['240P', 1, true], ['144P', 0, false], ['Auto', -1, false]]) + menu.onSelect(menu.selector[1]) + assert.equal(replacement.currentLevel, 0) + assert.equal(host.hls.currentLevel, -1) + }) +} + +// Published-only observations freeze bugs, not requirements for the new implementation. +for (const { name, factory } of implementations.filter(item => item.name.startsWith('published-'))) { + test(`${name}: historical empty topology and disabled flags retain stale menus`, () => { + const { art, hls, controls, settings } = hlsHost() + const option = bothMenus() + const plugin = factory(option)(art) + plugin.update() + const old = controls.get('hls-quality') + hls.levels = [] + hls.audioTracks = [] + plugin.update() + assert.equal(controls.get('hls-quality'), old) + assert.equal(settings.size, 2) + hls.levels = [{ height: 240 }] + option.quality.control = false + option.quality.setting = false + plugin.update() + assert.equal(controls.get('hls-quality'), old) + }) + + test(`${name}: historical callbacks still write old engines after replacement and destroy`, () => { + const { art, hls, controls, calls } = hlsHost() + const plugin = factory(bothMenus())(art) + plugin.update() + const old = controls.get('hls-quality') + const replacement = hlsHost().hls + replacement.media = art.template.$video + art.hls = replacement + plugin.update() + old.onSelect(old.selector[0]) + assert.equal(hls.currentLevel, 2) + assert.equal(replacement.currentLevel, -1) + art.emit('destroy') + calls.length = 0 + plugin.update() + assert.equal(calls.length, 4, 'Retained update remains active after core destroy event') + }) + + test(`${name}: historical Auto label follows playing level, duplicate default is lost`, () => { + const { art, hls, controls } = hlsHost() + hls.autoLevelEnabled = true + hls.currentLevel = 1 + const plugin = factory(bothMenus())(art) + plugin.update() + assert.equal(controls.get('hls-quality').html, '720P') + assert.equal(controls.get('hls-quality').selector.at(-1).default, false) + hls.levels = [{ height: 720 }, { height: 720 }] + plugin.update() + assert.equal(controls.get('hls-quality').selector.some(item => item.default), false) + }) +}