Christian Pillsbury and Claude Opus 4.8
e24b2bf7ca
feat(spf): capture EXT-X-PROGRAM-DATE-TIME in the HLS media-playlist parser
...
Surface absolute per-segment program-date-time (epoch seconds) on Segment,
interpolated forward via EXTINF and re-anchored on explicit tags. This is the
cross-track sync anchor for demuxed audio/video — where per-track relative
startTime disagrees, equal PDT identifies the same presentation instant — and
the exact recovery value on a full live-window turnover.
Surfacing only; PDT-anchored placement / the cross-track adjuster is a
follow-up. Adds synthetic unit tests plus sanitized real Mux live snapshots
(TS non-uniform slide; CMAF/LL-HLS demuxed A/V) as fixtures.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 09:58:44 -07:00
Christian Pillsbury and Claude Opus 4.8
c0c9eb348d
feat(spf): live media-playlist reload spike + parser timeline (WIP)
...
POC spike for live HLS at the playlist layer only (no MSE/segments/DOM):
- parser surfaces target-duration / media-sequence / playlist-type / endlist
into a generic Ham.metadata bag (getMediaPlaylistMetadata accessor), with
stable media-sequence-derived segment ids
- parseMediaPlaylist(text, previous) takes a resolved-or-unresolved prior
track and carries the timeline forward across reloads (media-sequence
overlap + actual durations); first load anchors at 0; targetDuration used
only as the no-overlap fallback
- duration -> Infinity for unended live (finite once VOD/ENDLIST)
- streamType on Presentation, derived from PLAYLIST-TYPE alone
- reloadTrack behavior + createLivePlaylistSpikeEngine composition
WIP: startTime/timestampOffset basis and cross-track (A/V) sync are still
under research; PROGRAM-DATE-TIME capture and the cross-track alignment
strategy are not yet implemented.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 09:58:44 -07:00
Santiago Puppo and GitHub
a74b8c0993
refactor: Rename SPF background-looping-video into background-video ( #1731 )
2026-06-24 11:09:20 -03:00
Wesley Luyten and GitHub
0460a48d93
fix(core): upgrade dash.js to 5.2.0 ( #1724 )
2026-06-23 12:59:33 -07:00
23538e3649
feat(spf): text tracks switching ( #1687 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 07:54:51 -07:00
Darius Cepulis and GitHub
d799be1063
feat(site): API reference pages for media elements ( #1342 )
2026-06-19 09:44:54 -07:00
Sam Potts and GitHub
ff694a0dd8
fix(skin): add missing classnames to tailwind menus ( #1712 )
2026-06-19 14:23:24 +10:00
edfec1c93e
revert(core): unmerge i18n stack base ( #1707 )
...
Co-authored-by: Wesley Luyten <me@wesleyluyten.com >
2026-06-18 15:20:35 -07:00
f0f9eed544
refactor(core)!: move media capability predicates to core layer ( #1705 )
...
Co-authored-by: Rahim <rahim.alwer@gmail.com >
2026-06-18 15:00:26 -07:00
accf4bfa34
fix(packages): escape HTML special chars in serializeAttributes to prevent XSS ( #1670 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Wesley Luyten <me@wesleyluyten.com >
2026-06-18 12:23:19 -07:00
9170a5879e
feat(core): add built-in locale packs and lazy loadLocale ( #1590 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-18 12:16:47 -07:00
768bf09da0
feat(core): add i18n foundation with English locale and UI wiring ( #1589 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Wesley Luyten <me@wesleyluyten.com >
2026-06-18 11:55:38 -07:00
9bcdf5ffc2
fix(site): update use-media reference for mediahost architecture ( #1702 )
...
Co-authored-by: Darius Cepulis <dcepulis@mux.com >
2026-06-18 11:14:45 -07:00
Manuel Calleriza and GitHub
67e1bc17c6
docs(react): clarify usePlayer typed vs untyped store access ( #1663 )
2026-06-18 14:46:01 -03:00
Ronald Urbina and GitHub
0b1491c30e
docs(site): add "No Skin" option to installation skin picker ( #1525 )
2026-06-18 12:07:23 -03:00
Ronald Urbina and GitHub
07428519a5
feat(packages): add poster placeholder blur-up pattern ( #1632 )
2026-06-18 12:05:41 -03:00
Wesley Luyten and GitHub
b32b80e55b
refactor(core): rework media config as a plain getter/setter ( #1697 )
2026-06-17 17:58:52 -07:00
Wesley Luyten and GitHub
1b31f3e8d7
feat(core): add vimeo media host and html/react components ( #1667 )
2026-06-18 09:36:31 +10:00
Sam Potts and GitHub
035b509c7a
feat(packages): compound tooltips with label and shortcut parts ( #1494 )
2026-06-18 08:12:16 +10:00
Sam Potts and GitHub
9275f93504
feat(packages): add resolved rendition to auto label ( #1698 )
2026-06-18 07:42:00 +10:00
Sam Potts and GitHub
16ab90987a
feat(packages): add quality menu UI ( #1694 )
2026-06-18 07:20:59 +10:00
Sam Potts and GitHub
74da6821d7
feat(core): add quality selection state ( #1693 )
2026-06-18 07:20:13 +10:00
bce79ec424
feat(spf): capability probing ( #1676 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 11:22:49 -07:00
b89f1e944c
feat(spf): multi cdn failover ( #1671 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 08:20:43 -07:00
Santiago Puppo and GitHub
33873bc4ae
feat(spf): Add maxResolution to SPF Background Video ( #1654 )
2026-06-17 11:36:02 -03:00
Ronald Urbina and GitHub
47aca0f798
fix(core): remove 1-9 digit key seek from slider keyboard handler ( #1690 )
2026-06-16 10:50:16 -03:00
Wesley Luyten and GitHub
67b39fe4bd
feat(core): add media tracks and renditions support ( #1664 )
2026-06-15 07:39:55 +10:00
Wesley Luyten and GitHub
0ffe1a9197
feat(media)!: add Google Cast by default to HLS, DASH media ( #1661 )
2026-06-12 17:34:14 -07:00
00aa6247b8
feat(spf): multi-cdn support ( #1668 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 10:09:16 -07:00
Sam Potts and GitHub
b9e0a75c1b
fix(react): address stale media reference ( #1677 )
2026-06-11 09:37:28 -07:00
Renzo Delfino and GitHub
48a984aecd
fix(core): prevent mobile controls flash on first tap after auto-hide ( #1556 )
2026-06-10 14:39:39 -03:00
00b6f0be1d
feat(packages): add settings menu ( #1615 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 13:54:45 +10:00
Sam Potts and GitHub
62d0524b83
feat(core): lock fullscreen orientation ( #1656 )
2026-06-10 10:32:43 +10:00
Sam Potts and GitHub
3d2225e77e
fix(packages): fix ejected skin slider setup ( #1660 )
2026-06-08 15:07:57 -07:00
d9f9efde88
fix(spf): refactor track switching to rules ( #1658 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 14:48:34 -07:00
057f32573e
feat(spf): multi-track audio + skills building features and behaviors ( #1605 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-06-04 09:53:13 -07:00
Santiago Puppo and GitHub
24a78d253a
refactor(core): airplay button ( #1614 )
2026-06-03 13:54:28 -07:00
Sam Potts and GitHub
7453d538a8
feat(skin): show scrubber preview timestamps ( #1652 )
2026-06-03 19:27:54 +10:00
Sam Potts and GitHub
c5f75166fd
feat(packages): update menu group labels ( #1643 )
2026-06-02 20:26:19 +10:00
Sam Potts and GitHub
2f5e23e100
fix(core): update trigger aria-expanded on close ( #1644 )
2026-06-02 17:07:20 +10:00
Sam Potts and GitHub
e9a619e03a
fix(core): focus selected radio menu items ( #1645 )
2026-06-02 16:40:11 +10:00
Santiago Puppo and GitHub
efc7c23b7b
fix(spf): add emptied listener to track-current-time behavior ( #1634 )
2026-06-01 16:54:58 -03:00
Santiago Puppo and GitHub
3741e8de12
feat(spf): background looping video (phase 1) ( #1602 )
2026-06-01 16:13:26 -03:00
Sam Potts and GitHub
01a2115aab
fix(packages): scope menu data attributes ( #1628 )
2026-05-29 16:26:47 +10:00
Sam Potts and GitHub
e7aa0a6669
feat(packages): constrain popovers to positioning boundary ( #1627 )
2026-05-29 16:26:15 +10:00
93c92ff646
fix(skin): restore overflow on audio skins ( #1623 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-29 10:02:48 +10:00
996239e029
fix(skin): prevent initial pause icon flash ( #1622 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-29 10:02:32 +10:00
1a3cb45b29
feat(spf): basic audio only use case + use-case-composition doc-type + implementation skills ( #1584 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-27 12:48:40 -07:00
Santiago Puppo and GitHub
338020e1d5
feat(packages): airplay button ( #1531 )
2026-05-27 10:22:31 -07:00
Sam Potts and GitHub
760870fdf2
fix(core): disable toggle captions when there are no captions ( #1598 )
2026-05-26 09:49:50 +10:00