Commit Graph
3312 Commits
Author SHA1 Message Date
Harvey Zhao b8039ad1f1 refactor(core): CORE-11 split media events and scope reconnect lifetimes 2026-09-11 03:19:52 +08:00
Harvey Zhao 5e31274f1d refactor(core): CORE-10 type playback properties and add compatible controls view 2026-09-11 02:51:55 +08:00
Harvey Zhao 44f4e083a9 refactor(core): CORE-09 isolate source operations and settle cancelled switches 2026-09-11 02:34:26 +08:00
Harvey Zhao 874dac9f22 refactor(core): CORE-08 type plugin registration and guard closed instances 2026-09-11 02:09:36 +08:00
Harvey Zhao f9707bad71 refactor(types): CORE-07 reconcile public declarations and preserve legacy consumers 2026-09-11 01:42:32 +08:00
Harvey Zhao ee859e4804 refactor(core): CORE-06 type media surfaces and playback hosts 2026-09-11 01:18:14 +08:00
Harvey Zhao 97d320bd74 refactor(core): CORE-05 separate typed defaults and resolved options 2026-09-11 01:00:15 +08:00
Harvey Zhao 4eec8112fa refactor(core): CORE-04 scope initialization and make destruction reentrant-safe 2026-09-11 00:43:49 +08:00
Harvey Zhao 3e38dd0d19 refactor(core): CORE-03 add typed resource scopes and cleanup adapters 2026-09-11 00:21:32 +08:00
Harvey Zhao 362c616998 refactor(core): CORE-02 type emitter maps and fix nested once dispatch 2026-09-11 00:03:53 +08:00
Harvey Zhao d3c695024a refactor(core): CORE-01 migrate utility contracts to TypeScript 2026-09-10 23:50:47 +08:00
Harvey Zhao e005e5f249 docs(pilot): PILOT-01 verify chapter migration exit evidence 2026-09-10 23:36:05 +08:00
Harvey Zhao 913215885a docs(testing): ENG-10 consolidate failure classification and reliability rules 2026-09-10 23:31:21 +08:00
Harvey Zhao bab80ff886 fix(types): PKG-CHAPTER-04 preserve CJS ESM and legacy consumer contracts 2026-09-10 23:29:06 +08:00
Harvey Zhao 48660c4e12 refactor(chapter): PKG-CHAPTER-03 split runtime into typed lifecycle and view modules 2026-09-10 23:12:56 +08:00
Harvey Zhao a0286c4e95 test(packages): ENG-07 verify installed tarball contracts and browsers 2026-09-10 23:04:19 +08:00
Harvey Zhao 12b047f9a6 test(chapter): PKG-CHAPTER-02 cover behavior and optional factory types 2026-09-10 22:43:01 +08:00
Harvey Zhao 701749520b docs(chapter): PKG-CHAPTER-01 freeze published behavior contracts 2026-09-10 22:28:24 +08:00
Harvey Zhao 7318d33822 test(browser): ENG-05 add real playback projects and artifact mapping 2026-09-10 22:25:13 +08:00
Harvey Zhao 458bc3215d test: ENG-03 share behavior fixtures across source and releases 2026-09-10 21:55:27 +08:00
Harvey Zhao b53461da1c build: ENG-06 support TS entries and preserve AMD globals 2026-09-10 21:47:10 +08:00
Harvey Zhao 771482426f build(types): ENG-04 add strict projects and legacy compiler checks 2026-09-10 21:21:39 +08:00
Harvey Zhao 09902b8b8c docs(refactor): BASE-08 map package consumer and device validation 2026-09-10 21:11:39 +08:00
Harvey Zhao ed293231dc docs(refactor): BASE-07 track compatibility risks and third-party provenance 2026-09-10 21:07:56 +08:00
Harvey Zhao e01f39ffa0 test(BASE-06): capture performance and teardown resource baselines 2026-09-10 20:48:44 +08:00
Harvey Zhao c7a375e146 test(BASE-05): capture published distribution and type consumers 2026-09-10 20:34:04 +08:00
Harvey Zhao 2b7054d8a5 test(BASE-04): freeze published DOM input and demo baselines 2026-09-10 20:16:58 +08:00
Harvey Zhao 9489392905 test(refactor): [BASE-03] capture media and lifecycle behavior 2026-09-10 19:55:55 +08:00
Harvey Zhao b382ec08f7 test(refactor): [BASE-02] freeze real-browser public API contracts 2026-09-10 19:35:55 +08:00
Harvey Zhao 833cc11674 ci(workspace): [ENG-02] add read-only checks and isolated Pages workflow 2026-09-10 19:22:24 +08:00
Harvey Zhao 9a6cfe5c6b build(workspace): [ENG-PM-01] use pinned Yarn with frozen installs 2026-09-10 19:09:26 +08:00
Harvey Zhao 9d1d5fda3d docs(refactor): [DOC-13] allow in-app browser fallback 2026-09-10 18:58:19 +08:00
Harvey Zhao 3781e6bda1 build(workspace): [ENG-01] pin reproducible Node and npm toolchain 2026-09-10 18:52:58 +08:00
Harvey Zhao 3c759f14c2 test(refactor): [BASE-HARNESS-01] add isolated published API fixture 2026-09-10 18:44:08 +08:00
Harvey Zhao 1d705b3056 test(refactor): [BASE-01] freeze published core and chapter baselines 2026-09-10 18:36:02 +08:00
Harvey Zhao 7a5354e356 docs(refactor): [DOC-12] close execution and release planning gaps 2026-09-10 18:30:08 +08:00
Harvey Zhao 9b9739ab61 docs(refactor): [DOC-11] require next major versions for all packages 2026-09-10 18:25:53 +08:00
Harvey Zhao a9197f59b1 docs(refactor): [DOC-10] plan GitHub CI and release automation 2026-09-10 18:23:31 +08:00
Harvey Zhao 21fd40ec07 docs(refactor): [DOC-09] map existing browser test pages 2026-09-10 18:20:16 +08:00
Harvey Zhao 3af9becff9 docs(refactor): [DOC-08] require browser evidence and release reviews 2026-09-10 18:16:28 +08:00
Harvey Zhao 1fa0a57831 docs(refactor): [DOC-07] improve sequencing and release gates 2026-09-10 18:08:40 +08:00
Harvey Zhao d7b348f3a6 docs(refactor): [DOC-06] authorize dependencies and project scripts 2026-09-10 17:58:40 +08:00
Harvey Zhao 570600d2f6 docs(refactor): [DOC-05] establish refactor docs and per-task commits 2026-09-10 17:56:31 +08:00
糖猫猫andrionzhao 40fcda6a37 feat: batch video upscaling with folder upload, directory save, and result comparison (#1051)
* feat: support batch video upscaling with folder upload and directory save

- Add multi-file selection and entire folder upload (webkitdirectory)
- Support drag & drop of both files and folders via FileSystemEntry API
- Add save directory picker using File System Access API (showDirectoryPicker)
- Process videos sequentially with per-file progress and status tracking
- Add right-side result list with click-to-compare functionality
- Add per-video duration and total batch duration display
- Add retry button for failed items with error detail display
- Remove auto-play on comparison viewer load
- Fix worker error handling: handle "error" command to reject stale promises
- Fix event listener accumulation in video comparison (AbortController)
- Fix XSS risk by escaping HTML in all innerHTML injections
- Fix URL revocation timing in download to prevent large file truncation
- Extract writeToSaveDirectory and truncateName helpers to reduce duplication
- Add Usage Guide panel explaining single/multiple/folder upload options

Files changed:
  docs/upscaler/index.html  (+1110/-181)
  docs/upscaler/upscaler.js (+110)

* fix: prevent auto-play and resource consumption during upscaling

- Set preload="metadata" on preview and comparison video elements
- Explicitly pause preview video after setting src in showVideoPreview
- Remove preview video seek sync from batch processing progress callbacks
  (was causing continuous decode during upscaling, wasting GPU resources)
- Remove preview video seek sync from retry progress callback
- All videos now require manual play; no background resource usage

* fix: improve upscaled video quality with higher bitrate and codec support

- Raise base bitrate from 2.5 Mbps (25e5) to 8 Mbps (8e6) for standard and
  firefox processors, preventing quality loss when source videos have high
  bitrates (e.g. 720p @ 16.7 Mbps was producing 1440p @ 10 Mbps, smaller
  than the original file)
- Double the bitrate for mediabunny processor (X.n1 * 2) to account for the
  4x pixel increase from 2x upscaling
- Add H.264 Level 5.1 (avc1.640033) and Level 5.2 (avc1.640034) codecs to
  the fallback lists, since Level 4.0 (avc1.640028, ~24.6 Mbps) cannot
  support the higher bitrates for 1440p+ outputs
- Add latencyMode: "quality" to VideoEncoder configs for both standard and
  firefox processors, prioritizing encoding quality over latency (suitable
  for offline processing)

* feat: add video data comparison panel for original vs upscaled metrics

- Add a comparison data table below the file info bar showing 6 metrics:
  Resolution, File Size, Duration, Est. Bitrate, Pixels, Process Time
- Display per-metric change percentage with color-coded indicators:
  green (↑) for improvements, red (↓) for regressions, gray for neutral
- Estimated bitrate calculated from file size × 8 / video duration
- Table renders after both original and upscaled video metadata loads
- Auto-hide panel on reset

* fix: make video data comparison panel full-width and responsive

- Move comparison data table from inside the left column to the full-width
  area below the left/right layout, so it is no longer constrained by the
  comparison viewer column width
- Remove table-fixed colgroup and overflow-x-auto that caused horizontal
  scrolling on smaller screens
- Table now uses w-full auto-layout, displaying all 4 columns (Metric,
  Original, Upscaled, Change) without requiring horizontal scrolling

---------

Co-authored-by: rionzhao <rionzhao@tencent.com>
2026-09-10 17:19:38 +08:00
Harvey Zhao bb82f899ff Merge pull request #1061 from Mister-Hope/feat/dashjs-v5
feat(artplayer-plugin-dash-control)!: support dash.js v5
2026-09-10 17:19:00 +08:00
Harvey Zhao 59d3c9f50c fix(dash-control): select stable representation IDs 2026-09-10 17:17:54 +08:00
Harvey Zhao 37cbb6f600 Merge pull request #1058 from acaliskol/fix/unhandled-play-rejection
fix: silence unhandled play() rejections from internal callers
2026-09-10 17:06:52 +08:00
Harvey Zhao 72cf3551e2 fix: align promise helper types and test playback rejections 2026-09-10 17:03:07 +08:00
Mr.Hope cb69e4ad66 feat(artplayer-plugin-dash-control)!: support dash.js v5
- replace removed v4 APIs with their v5 equivalents:
  getRepresentationsByType / getCurrentRepresentationForType /
  setRepresentationForTypeByIndex
- bump dash.js CDN references from 4.5.2 to 5.2.1 (modern/umd build)
- rebuild dist, docs/compiled and docs/uncompiled artifacts
- regenerate vitepress docs
2026-09-10 15:58:17 +08:00
Harvey Zhao 42c4ca735d Update version.js 2026-08-31 16:59:25 +08:00