avbridge 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,50 @@ All notable changes to **avbridge.js** are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project
|
|
5
5
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [2.7.0]
|
|
8
|
+
|
|
9
|
+
Cross-browser confidence release. A Playwright-based test tier now
|
|
10
|
+
validates that avbridge picks the right strategy on each major browser
|
|
11
|
+
engine. No runtime code changes — the release is tooling, fixtures, and
|
|
12
|
+
a new testing discipline.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **Cross-browser test tier (Playwright).** New `tests/browser/` directory
|
|
17
|
+
with the matrix run via `npm run test:browser` across Chromium, Firefox,
|
|
18
|
+
and WebKit. Initial slice — `fixtures.spec.ts` — validates that `probe()`
|
|
19
|
+
and `classify()` produce the expected output for each fixture on each
|
|
20
|
+
browser (15 tests, ~11s). Per-browser expectations live in
|
|
21
|
+
`tests/browser/_expectations.ts` so evolving browser codec support is
|
|
22
|
+
a one-file change. Playwright's `webServer` config auto-starts Vite;
|
|
23
|
+
the five existing Puppeteer scripts are unchanged and continue to
|
|
24
|
+
cover Chromium-only scenarios. `npm run test:browser:ui` for the
|
|
25
|
+
interactive trace viewer.
|
|
26
|
+
- New test harness page at `demo/tests-harness.html` that exposes the
|
|
27
|
+
avbridge API on `window` for `page.evaluate()`-style tests. Only served
|
|
28
|
+
in dev mode; not shipped in production builds.
|
|
29
|
+
- New fixture: `bbb-hevc-aac.mkv` (generated via `npm run fixtures`) for
|
|
30
|
+
exercising the HEVC strategy boundary across browsers.
|
|
31
|
+
- `docs/dev/TESTING.md` — documents the new Tier 4 alongside the
|
|
32
|
+
existing three tiers, with scope guidance (what belongs in `fixtures`,
|
|
33
|
+
`playback`, and `contract` spec files).
|
|
34
|
+
|
|
35
|
+
### Findings worth surfacing
|
|
36
|
+
|
|
37
|
+
- `classify()` is deliberately **browser-independent** for most codec
|
|
38
|
+
paths. Per-browser divergence surfaces at runtime via escalation, not
|
|
39
|
+
at classification. The test-tier split reflects this architecture:
|
|
40
|
+
`fixtures.spec.ts` for the deterministic decision, `playback.spec.ts`
|
|
41
|
+
(planned v2.7.1) for runtime escalation behavior.
|
|
42
|
+
|
|
43
|
+
### Coming in follow-ups
|
|
44
|
+
|
|
45
|
+
- **v2.7.1** — `playback.spec.ts`. Bootstrap → play → destroy per
|
|
46
|
+
fixture per browser. Catches runtime escalation (e.g. Firefox
|
|
47
|
+
escalating HEVC MKV from remux → fallback when MSE rejects hevc1.*).
|
|
48
|
+
- **v2.7.2** — `contract.spec.ts`. HTMLMediaElement event + property
|
|
49
|
+
parity across strategies and browsers.
|
|
50
|
+
|
|
7
51
|
## [2.6.0]
|
|
8
52
|
|
|
9
53
|
`<avbridge-player>` polish release. Four targeted ergonomics upgrades.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "avbridge",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "Play and convert arbitrary video files in the browser. Native, remux, hybrid, fallback, and transcode — one API.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Keishi Hattori",
|
|
@@ -92,6 +92,11 @@
|
|
|
92
92
|
"test:element": "node scripts/element-test.mjs",
|
|
93
93
|
"test:player-controls": "node scripts/player-controls-test.mjs",
|
|
94
94
|
"test:url-streaming": "node scripts/url-streaming-test.mjs",
|
|
95
|
+
"test:browser": "playwright test",
|
|
96
|
+
"test:browser:chromium": "playwright test --project=chromium",
|
|
97
|
+
"test:browser:firefox": "playwright test --project=firefox",
|
|
98
|
+
"test:browser:webkit": "playwright test --project=webkit",
|
|
99
|
+
"test:browser:ui": "playwright test --ui",
|
|
95
100
|
"fixtures": "node scripts/generate-fixtures.mjs",
|
|
96
101
|
"audit:bundle": "node scripts/bundle-audit.mjs"
|
|
97
102
|
},
|
|
@@ -104,6 +109,7 @@
|
|
|
104
109
|
"@libav.js/types": "^6.8.8"
|
|
105
110
|
},
|
|
106
111
|
"devDependencies": {
|
|
112
|
+
"@playwright/test": "^1.59.1",
|
|
107
113
|
"@types/node": "^20.11.0",
|
|
108
114
|
"jsdom": "^24.0.0",
|
|
109
115
|
"puppeteer": "^24.40.0",
|