Commit Graph

6730 Commits

Author SHA1 Message Date
Álvaro Velad Galván de4bb9e8a8 fix(UI): Allow configure close menu delay time (#8235)
Fixes https://github.com/shaka-project/shaka-player/issues/8224
v4.13.9-main v4.12.18-main
2025-03-12 09:50:27 +01:00
Gary Katsevman 3c789eca42 docs: update drm robustness docs (#8247)
This change was prompted by #8239 as it was missed during the original
PR https://github.com/shaka-project/shaka-player/pull/7753
2025-03-12 08:35:51 +01:00
Álvaro Velad Galván 88fa16744d fix(HLS): Detect spatial audio when using Dolby AC-4 (#8223) 2025-03-11 18:14:37 +01:00
Álvaro Velad Galván 6e9e5a06ea feat(UI): Add halfequirectangular (180) VR support (#8238) 2025-03-11 18:14:26 +01:00
Joey Parrish e5c6de4616 test: Replace failing Axinom mixed-encryption asset (#8244)
The Axinom servers stopped serving licenses for this asset. This
replaces the Axinom version with one that is built on our own test
content.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2025-03-11 11:18:38 +01:00
Álvaro Velad Galván 8739820648 fix(UI): Close context menu when hide the UI (#8234)
Related to https://github.com/shaka-project/shaka-player/issues/8224
2025-03-11 08:22:42 +01:00
Álvaro Velad Galván 4be4dbd6e6 fix(UI): Allow use hideUI on mobile devices (#8233)
Related to
https://github.com/shaka-project/shaka-player/issues/8224#issuecomment-2707172649
2025-03-11 08:17:37 +01:00
Álvaro Velad Galván 13a1340a4f fix: Only dispatch spatialvideoinfo and nospatialvideoinfo for video streams (#8236) 2025-03-11 06:30:20 +01:00
Álvaro Velad Galván 79ad771627 fix(UI): Fix bad behavior when we are on muted status and we turn volume up (#8231)
Fixes https://github.com/shaka-project/shaka-player/issues/8226
2025-03-11 06:29:56 +01:00
Álvaro Velad Galván e6722160f4 perf(UI): Improve VR performance (#8237)
The requestVideoFrameCallback API is used if available.
2025-03-11 06:29:34 +01:00
Álvaro Velad Galván 78ea4eeade fix(UI): Don't sort playback rates (#8230)
Fixes https://github.com/shaka-project/shaka-player/issues/8227
2025-03-11 06:24:31 +01:00
Matthias b9c6345192 fix: Text tracks disappear when crossing a boundary in RESET mode. (#8240)
Text track handling is not managed by MSE but by ourselves, thus we do
not need to discard text references.

As we do not reset the text engine alongside MSE, text tracks would
simply disappear when crossing a boundary and MSE was reset.
2025-03-10 18:29:44 +01:00
MarianoFacundoArch c8d93a60c7 fix(UI): Improve seekOnTaps behavior on tap and scroll (#8225)
Related to https://github.com/shaka-project/shaka-player/issues/8199
2025-03-10 16:02:56 +01:00
Matthias 369916489e feat: Add config to allow reset MSE on cross boundary (#8156)
There's devices out there that are not compliant with the MSE spec. Such
as halting MSE when a secondary init segment is appended (webOS 3), or
failing to transition from a plain to encrypted init segment (Tizen
2017). While we initially prefer content workarounds, it's a time
consuming and trial & error process. For some devices it might not be
worth investing time into finding a proper workaround due to low usage.
We're giving people an alternative by resetting MSE when needed
(configurable). dash.js offers somewhat similar behavior
[here](https://github.com/Dash-Industry-Forum/dash.js/blob/a656ec709e7f92f76b392bf196ee9883da7928ce/src/streaming/controllers/StreamController.js#L672),
where MSE is reset before applying an encrypted init segment.

This PR introduces `crossBoundaryStrategy` in `StreamingConfiguration`.
It can be configured as following:

- KEEP - we're keeping MSE active, this is the default and the current
behavior.
- RESET - we'll always reset MSE when it crosses a boundary.
- RESET_TO_ENCRYPTED - we reset MSE when it crosses an encrypted
boundary, and we keep MSE afterwards. Additionally, we're not going to
reset when we're crossing a plain to plain boundary.

Each initSegmentReference now holds an `encrypted` and `boundaryEnd`
value. When configured with a different value than KEEP,
`StreamingEngine` will be instructed to fetch and append segment
references up until the boundary of the currently applied init segment.

We detect whether we're at a boundary in a few ways:

- Listening to the HTML5 MediaElement's `waiting` event, this'll
indicate that we do not have enough buffer to advance. If we're pretty
close to the boundary, we assume we're at the boundary.
- Due to subtle differences in the segment alignments, waiting wasn't
reliable. When close to a boundary, a timer is fired with the assumption
that "we'll reach the boundary at soon". I've set the threshold to 1
second, when playhead is further than the threshold, we'll skip checking
whether an MSE reset is due.

The implementation relies on the added properties in the init segment
reference, and the concept of a "Period" is avoided in StreamingEngine
to ensure it's compatible with HLS too.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2025-03-07 10:45:31 +01:00
Matthias b8519f1529 fix: When standard load, do not wait for pending license requests to finish. (#8219)
Fixes https://github.com/shaka-project/shaka-player/issues/8214
2025-03-07 10:34:48 +01:00
Álvaro Velad Galván 84c73f8825 chore: Remove unnecessary code (#8220) 2025-03-06 18:07:47 +01:00
David HM Morgan 18695c6c23 feat: Text font scaling customisation ability (#8215)
With reference to #8025, this is a partial proposal to see if this style
of extensible customisation could be favourable to the shaka-player
community:

Proposal for some accessibility options whereby an App builder can
customise subtitle/caption size, with the potential of an App offering
accessibility options for text size.

This style could be used for other text styling attributes in a similar
way, but this is just the first step.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2025-03-06 13:44:49 +01:00
Álvaro Velad Galván c2ce68fba8 feat: Move shaka.util.FairPlayUtils to shaka.drm.FairPlay (#8217) 2025-03-06 12:43:49 +01:00
Álvaro Velad Galván 9ba31325ea chore: Move isMediaKeysPolyfilled to DrmUtils (#8216) 2025-03-05 16:03:48 +01:00
Álvaro Velad Galván ece9becbfe chore: Remove older version of Chrome in layout tests (#8208)
The current version is 133, so it is safe to make this change.
v4.13.8-main v4.12.17-main
2025-03-04 14:13:20 +01:00
Álvaro Velad Galván 04658d17f7 fix(HLS): Only apply compensation if the difference is greater than 150ms (#8207)
Fixes https://github.com/shaka-project/shaka-player/issues/8200
2025-03-04 13:18:56 +01:00
Álvaro Velad Galván db43a18216 fix(UI): Allow play/pause when seekOnTaps is enabled (#8206)
Fixes https://github.com/shaka-project/shaka-player/issues/8199
2025-03-04 12:26:07 +01:00
Álvaro Velad Galván 051da08adc fix(UI): Update UI in order to support AC-4 (#8205) 2025-03-04 11:59:51 +01:00
Álvaro Velad Galván 3086df0bb2 chore(Demo): Add new Dolby asset (#8204) 2025-03-04 11:47:11 +01:00
Wojciech Tyczyński 235fbea2a9 perf: Region timeline improvements (#8203)
- Only run filter timer if we have any region cached
- use map for faster lookup
2025-03-04 11:42:49 +01:00
Joshua Hull 31b32d3d24 feat(FairPlay): Add support for Mux (#8201)
This adds support for FairPlay DRM license requests for Mux.io

Close https://github.com/shaka-project/shaka-player/issues/8202
2025-03-04 11:26:36 +01:00
Álvaro Velad Galván 61d44c903f fix: Clear some caches when install/uninstall PatchedMediaKeysApple (#8198)
Related to https://github.com/shaka-project/shaka-player/issues/8190
2025-03-03 16:00:50 +01:00
Álvaro Velad Galván 2d0995f58b fix: Fix codec selection (#8197)
Fixes ccbbb01e55 that broken codec
selection on
https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd
2025-03-03 14:55:51 +01:00
Wojciech Tyczyński 0e6e85fd08 chore: Remove not existing file from conformance (#8196) 2025-03-03 14:13:51 +01:00
Álvaro Velad Galván 5fc0fecd16 feat(UI): Close submenu or context menu on option click (#8193)
Close https://github.com/shaka-project/shaka-player/issues/8192
v4.13.7-main v4.12.16-main
2025-03-03 08:25:06 +01:00
Álvaro Velad Galván be12a7f132 build: Move EBML parser to dash to improve the build size (#8189) 2025-02-28 15:14:39 +01:00
Álvaro Velad Galván 4e05551986 feat: Allow preload text tracks and expose the preloaded variant and text tracks (#8187) 2025-02-28 15:14:25 +01:00
Wojciech Tyczyński bcf159d62a fix: Prevent race condition when seeking backwards during load (#8188) 2025-02-28 15:06:18 +01:00
Álvaro Velad Galván 870a3f06b9 perf: Pause PlayheadObserverManager operations on pause event (#8183) 2025-02-28 11:31:44 +01:00
Álvaro Velad Galván 3ff0e287f9 fix(UI): Fix weird behaviour when volume was 0, and we unmute (#8186)
Fixes https://github.com/shaka-project/shaka-player/issues/8184
2025-02-28 10:57:28 +01:00
Álvaro Velad Galván 5debddcf4d chore: Add encrypted flag to init segments (#8182) 2025-02-27 14:10:32 +01:00
Wojciech Tyczyński 22ed2beae8 test: Add integration test for mixed clear+encrypted content (#8160)
Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2025-02-27 14:07:20 +01:00
Álvaro Velad Galván 6c01f18f6d fix: Fix seek to initial live position on slow devices (#8181)
Fixes https://github.com/shaka-project/shaka-player/issues/8175
2025-02-27 12:29:48 +01:00
Álvaro Velad Galván 97f2255abc fix(UI): Use touchend to show the controls (#8180)
Fixes https://github.com/shaka-project/shaka-player/issues/8164
2025-02-27 12:26:49 +01:00
Álvaro Velad Galván 34c3b72f33 chore(Demo): Simplify low latency assets config (#8178) 2025-02-27 07:29:47 +01:00
Álvaro Velad Galván 62310cc424 chore(Demo): Add new FairPlay asset from Axinom (#8177) 2025-02-27 07:29:27 +01:00
Álvaro Velad Galván eda85d6607 test: Fix crash of Firefox on Windows (#8173)
Fixes 9aea3587ef as it should only occur
with ClearKey
v4.13.6-main v4.12.15-main
2025-02-26 15:53:35 +01:00
Álvaro Velad Galván 6ffc30210e fix: Remove timeout for decodingInfo in some platforms and increase the timeout (#8172) 2025-02-26 15:37:27 +01:00
Álvaro Velad Galván bfc4c49ba0 chore: Update karma-local-wd-launcher (#8171) 2025-02-26 14:31:12 +01:00
Álvaro Velad Galván c94b247372 ci: Enable Widevine on Firefox (#8170) 2025-02-26 14:18:16 +01:00
Álvaro Velad Galván 389f45c215 feat: Add LCEVC dual track rendering (#8168) 2025-02-26 12:43:24 +01:00
David Pfister b26dd1f777 fix: Fit template check template info (#8162)
`TimelineSegmentIndex` `fitTimeline` doesn't check if `templateInfo` is
null. This means it errors in this case when it tries to access the
`timeline` property. It now exits early if it's null
2025-02-26 08:05:29 +01:00
Joey Parrish 844345a894 chore: Update maintained branches (#8161)
The next Cast Application Framework release will target Shaka Player
v4.13.

This version of CAF isn't out yet, but we will no longer maintain v4.9,
which is getting increasingly complex to do.
2025-02-26 08:04:52 +01:00
Álvaro Velad Galván 9872d01bb3 docs: Update Roadmap (#8158) 2025-02-25 18:52:30 +01:00
Álvaro Velad Galván 65ad917d82 chore: Create a new method appendDependency in MediaSourceEngine (#8157)
This simplifies the integration of LCEVC Dual Track.
2025-02-25 12:36:14 +01:00