Commit Graph

7 Commits

Author SHA1 Message Date
Álvaro Velad Galván 48b553a595 fix(MSF): Fix CMSF catalog parsing (#9710)
It's better use the packaging instead of the mimetype to check the
compatibility
2026-02-13 16:16:22 +01:00
Andy(김규회) d98169bc25 feat(EME): Add retryLicensing() and failureCallback for manual license retry (#9638)
So basically, when a license request fails (eg. network Error, server
down whatever), apps can now retry from scratch by calling
`player.retryLicensing()`. This was tricky to implement because of EME
spec limitations: `generateRequest()` can only be called once per
session. So if it fails, it would be stuck.

So I close the old session and create a brand new one with the same
`initData`

> Will Video element throw an error during this process?

we were worried that closing the session would leave the video without
keys for a brief moment, potentially triggering errors. But in practice,
the transition is fast enough( I added a 0.1s delay for CDM clean up)
and the video element handles it gracefully

> Will new encrypted event fire? If not, will it limit this feature?

The encrypted event only fires when the browser first encounters
encrypted content. When we close and recreate a session, the content is
already loaded, so no new event

Solutions: In `CreateSession()` metadata store `initData` and
`initDataType` in the session metadata when the session is first
created. So when `retryLicensing()`is called, we just grab the stored
data and pass it to `generateRequest()` on the new session. No need to
wait for an `encrypted` event at all.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2026-02-05 14:12:30 +01:00
Álvaro Velad Galván c3b84615a4 feat: Update catalog format to MSF/CMSF v0 and standardize MOQ terminology (#9614)
Implemented MSF/CMSF v0 specifications
- Catalog structure now follows draft-ietf-moq-msf-00
- CMAF packaging follows draft-ietf-moq-cmsf-00

MOQ naming consistency
- Changed "MoQ" → "MOQ"
- Renamed MoQObject interface to MOQObject
2026-01-28 07:39:12 +01:00
Álvaro Velad Galván a9df794849 fix(MSF): Do not re-encapsulate Shaka errors (#9613) 2026-01-27 14:05:13 +01:00
Álvaro Velad Galván 4c945af650 feat(MSF): Add support for custom namespaces via config (#9586) 2026-01-22 14:00:12 +01:00
Álvaro Velad Galván f1de698b97 feat: Add application/mp4 as valid mimetype on MoQ (#9558) 2026-01-14 11:23:11 +01:00
Álvaro Velad Galván ef361ed039 feat: Add MoQT draft-14 + WARP/MSF draft-1 experimental support (#9409)
Spec: https://datatracker.ietf.org/doc/draft-ietf-moq-transport/14/
Spec: https://datatracker.ietf.org/doc/draft-ietf-moq-warp/01/

Note: this is experimental and not included in the default builds

---------

Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2026-01-14 09:27:10 +01:00