Commit Graph

358 Commits

Author SHA1 Message Date
Wojciech Tyczyński b2f6b88fe3 ci: Use python3 explicitly (#9288)
As python v3 is now necessary in our build pipeline, use python3
explicitly in CI and tutorials, as not all OSes symlink `python` to
`python3`.
2025-10-27 13:34:51 +01:00
Álvaro Velad Galván 945c57ab77 feat!: Remove all deprecated things (#9162) 2025-10-07 10:52:13 +02:00
Álvaro Velad Galván e6dfa903ef feat(Ads): Add support for tracking urls (#9144) 2025-09-29 21:27:41 +02:00
Álvaro Velad Galván 61d80f6e59 feat: Add automatic subtitles (#9123)
Internally this uses Web Speech API
https://webaudio.github.io/web-speech-api/ and Translator APIs
https://webmachinelearning.github.io/translation-api/

The feature is experimental and disabled by default since Chrome is the
only browser that currently supports it.

Closes https://github.com/shaka-project/shaka-player/issues/9110

---------

Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
Co-authored-by: Joey Parrish <joeyparrish@google.com>
Co-authored-by: Theodore Abshire <TheodoreAbshire@Gmail.com>
Co-authored-by: Joey Parrish <joeyparrish@users.noreply.github.com>
2025-09-26 13:18:44 +02:00
Wojciech Tyczyński 6d04f7f225 feat(net): Allow request filters to be called multiple times (#9129)
This change allows to execute request filter on every request attempt.
It can be useful i.e. to update credentials when first request fails.

New field `attempt` has been added to `shaka.extern.Request` which
informs which attempt is currently ongoing. This is needed to not do the
unnecessary work multiple times.

HTTP 401 Unauthorized and 403 Forbidden are no longer treated as
immediate critical errors, as tokens can be updated during retry
process.
2025-09-24 11:55:47 +02:00
Álvaro Velad Galván c0b85c7efb feat(UI): Add video type button (#9107)
This button will appear when the loaded stream has two or more video
roles. E.g.: main and sign.
2025-09-18 13:57:21 +02:00
Álvaro Velad Galván dc235fc501 feat: Remove alwaysStreamText config (#9053)
It is no longer necessary since we included NativeTextDisplayer

Original issue:
https://github.com/shaka-project/shaka-player/issues/1332
2025-09-04 14:51:21 +02:00
Álvaro Velad Galván 570fec9d31 feat: Support videoRole in AdaptationSetCriteria (#8945)
Add preferredVideoRole config
`preferredVariantRole` has been renamed to `preferredAudioRole`

Related to https://github.com/shaka-project/shaka-player/issues/8943
2025-07-31 14:38:09 +02:00
Joey Parrish ddda658d39 chore: Update to the latest Closure Compiler (#8925)
- Bump to Java 21 to support the new compiler.
 - Removes externs now included in the compiler.
 - Removes compiler flag no longer supported.
- Adds onkeystatuseschange to MediaKeySession polyfills (now in compiler
externs).
- This new compiler now triggers a warning in the Closure Library, which
will get fixed in a follow-up to update the library.
2025-07-29 10:36:40 -07:00
Joey Parrish 8320fb6937 docs: Update docs and scripts on dependencies (#8924)
- Make Java version explicit (11) in workflows
 - Update/sync required Java version (11) in all docs and scripts
 - Update/sync required Node version (18) in all docs and scripts
 - Update/sync required Python version (3.5) in all docs and scripts
2025-07-28 23:13:53 -07:00
Álvaro Velad Galván 6a1f793715 feat(Ads): Support clickThroughUrl on interstitials ad manager (#8903) 2025-07-22 18:57:43 +02:00
Álvaro Velad Galván 93117d2ace feat: Add enableAudioGroups config (#8792)
Close https://github.com/shaka-project/shaka-player/issues/8684
2025-06-25 12:46:38 +02:00
Álvaro Velad Galván 03686ac58b docs(UI): Add supported shortcuts (#8768)
Co-authored-by: Theodore Abshire <TheodoreAbshire@Gmail.com>
2025-06-19 21:52:43 +02:00
Álvaro Velad Galván a1cb769aa7 feat: Allow switch between UITextDisplayer and NativeTextDisplayer on runtime (#8736)
We prefer NativeTextDisplayer when using PiP and Fullscreen API of the
video element itself. Otherwise we prefer UITextDisplayer
2025-06-12 12:09:05 +02:00
Joey Parrish 7efd589378 docs: Fix typo (#8598) 2025-05-12 09:35:53 -07:00
xiao 724b0b2a71 feat: new TextDisplayer implementation to allow selecting subtitles via native API and controls (#8520)
Close https://github.com/shaka-project/shaka-player/issues/8519
Fixes https://github.com/shaka-project/shaka-player/issues/8475

Introduce `NativeTextDisplayer` as a replacement of
`SimpleTextDisplayer`. But keep them both work.
Is MSE mode, `NativeTextDisplayer` creates `<track>` elements for text
streams. And listens to change events on both ends to keep them in sync.
In SRC mode, `NativeTextDisplayer` would do nothing, the player uses
original TextTracks instead.

Advantages of `NativeTextDisplayer`:
- Allow text track selection using the browser built-in UI
- Allow text track manipulation using native APIs
- Avoid transferring and processing cues in SRC mode

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2025-05-07 12:58:29 +02:00
Álvaro Velad Galván ba56bae473 feat: Add getChaptersAsync method (#8541)
This allows the segmentIndex to be created if it is not already created
and also allows operation with CastProxy.
2025-05-06 07:55:53 +02:00
v-nova-romas 0692ec1d5c test: Add LCEVC SEI tests (#8209)
This PR adds LCEVC SEI tests to Shaka Player. It plays an LCEVC SEI
content for 6 seconds and checks LCEVCdec public APIs to verify that
LCEVC is enabled and LCEVC data was found in SEI.
2025-04-09 11:50:20 +02:00
loicraux 8cd2c019b8 feat(Offline): Allow no timeout when opening IndexedDB database (#8372)
This is the followup to the previous PR #8366 , to allow to disable the
timeout, as per @avelad
[suggestion](https://github.com/shaka-project/shaka-player/pull/8366#issuecomment-2766660785)
to add this in another PR...

---------

Co-authored-by: Loïc Raux <loicraux@gmail.com>
Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2025-04-01 16:01:24 +02:00
Álvaro Velad Galván 5752a21b0f feat(Offline): Make timeout for opening IndexedDB configurable (#8366)
Close https://github.com/shaka-project/shaka-player/issues/8355
2025-04-01 11:47:33 +02:00
Álvaro Velad Galván 09bf1cf3d7 chore(docs): Update screen resolution detection for Tizen (#8360)
Related to https://github.com/shaka-project/shaka-player/issues/8356
2025-03-31 11:52:53 +02:00
Álvaro Velad Galván 36db472d93 feat(net): Add networking config (#8306) 2025-03-21 10:20:38 +01:00
Álvaro Velad Galván c8747ab0b8 feat: Move caption scaling from css to new textDisplayer.fontScaleFactor config (#8242)
Fixes
https://github.com/shaka-project/shaka-player/pull/8215#issuecomment-2711266477
2025-03-12 13:16:48 +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
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
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 324b1212de fix(FairPlay): Install by default shaka.polyfill.PatchedMediaKeysApple on older Safari versions (#8106) 2025-02-19 10:20:56 +01:00
Álvaro Velad Galván eb70461752 docs: Update DRM tutorial with latest features (#8107)
Co-authored-by: Joey Parrish <joeyparrish@users.noreply.github.com>
2025-02-19 06:35:33 +01:00
Álvaro Velad Galván 201f632ed8 docs: Update retry documentation (#8076)
Related to
https://github.com/shaka-project/shaka-player/commit/a30f1da2a2edaa7093676c7d525d6a09f9e75372
2025-02-13 16:31:23 +01:00
Álvaro Velad Galván e344f5d139 feat(Ads): Add double box format ad experience for Custom Overlay Interstitials (#8074) 2025-02-13 13:30:14 +01:00
Álvaro Velad Galván 6bd0afe06d feat(Ads): Add support for L-Shape ad experience (#8051) 2025-02-11 09:04:55 +01:00
Álvaro Velad Galván 046e4aabc0 chore: Update LCEVC decoder to latest version 1.2.0 (#8047) 2025-02-10 13:31:17 +01:00
Wojciech Tyczyński 30f0789c68 docs: Fix design links (#8044)
Regression introduced in #7891
2025-02-10 09:40:30 +01:00
Álvaro Velad Galván f778713e13 feat: Create a new simple API for Audio (#8005)
Close https://github.com/shaka-project/shaka-player/issues/3544

---------

Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2025-02-05 12:16:25 +01:00
Wojciech Tyczyński 0df53d2f9a docs: Improve TextDisplayer documentation (#7919)
Related to #7917
2025-01-22 16:18:30 +01:00
Álvaro Velad Galván e40341c37c fix(Ads): Apply X-PLAYOUT-LIMIT to entire interstitial (#7804)
Fixes https://github.com/shaka-project/shaka-player/issues/7782
2024-12-24 13:38:05 +01:00
Gary Katsevman 88472b3076 feat: add support for multiple robustness levels in drm (#7753)
This changes the `drm.advanced.videoRobustness` and `audioRobustness`
config options from a string to an array of strings. Internally, in the
drm engine, this gets expanded into an array of `DrmInfos` which have
those values as strings.

Best way to review this change is with whitespace turned off in the diff
options.

---------

Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2024-12-23 10:20:24 +01:00
Álvaro Velad Galván 15244793d2 docs: Add FAQ about EXT-X-SESSION-KEY (#7792)
Related to https://github.com/shaka-project/shaka-player/pull/7775
2024-12-23 10:00:11 +01:00
Wojciech Tyczyński 51765e9693 build: Change spellchecking tool and fix spelling mistakes (#7765)
Fixes #7693
2024-12-20 12:27:05 +01:00
Álvaro Velad Galván 6616ff202a feat: Simplify the use of low latency (#7748)
The autoLowLatencyMode config is removed because it's no longer
necessary. Now lowLatencyMode only enable low latency if the stream is
low latency.

A new method is added (configurationForLowLatency) to allow configure
the Low Latency config more easily
2024-12-20 10:27:39 +01:00
Álvaro Velad Galván 775bc4e44c fix(Xbox): Simplify the use of WebView2 (#7743) 2024-12-11 11:16:27 +01:00
Álvaro Velad Galván 5fe303d1b8 docs: Fix missing parameter in "Monetization with Ads" tutorial (#7694) 2024-11-29 11:20:27 +01:00
Álvaro Velad Galván d09cd7ecb2 fix(Ads): Fix unnecessary request when using VAST (#7660)
If the URL does not have an extension, using mimeType allows us to avoid
having to make a HEAD type request
2024-11-25 17:27:58 +01:00
Álvaro Velad Galván 70257ffefe feat(Ads): Add support for overlay interstitials (or non-linear ads) (#7657) 2024-11-25 12:30:33 +01:00
Álvaro Velad Galván a4c4f842e5 docs(Ads): Add new use case to Ads documentation (#7642) 2024-11-22 09:28:35 +01:00
Álvaro Velad Galván 84b64af623 feat: Stop setting playbackRate to 0 to control buffering state when streaming.rebufferingGoal = 0 (#7617)
Close https://github.com/shaka-project/shaka-player/issues/7602
2024-11-20 09:36:22 +01:00
Álvaro Velad Galván 2260aa9cf6 feat: Update usage of minBufferTime according to the DASH spec (#7616)
Related to
https://github.com/shaka-project/shaka-player/issues/7602#issuecomment-2479518970

From 23009-1:

The value of the minimum buffer time does not provide any instructions
to the client on how long
to buffer the media. The value however describes how much buffer a
client should have under
ideal network conditions. As such, MBT is not describing the burstiness
or jitter in the network,
it is describing the burstiness or jitter in the content encoding.
Together with the BW value, it is
a property of the content. Using the "leaky bucket" model, it is the
size of the bucket that makes
    BW true, given the way the content is encoded
2024-11-19 10:47:18 +01:00
Álvaro Velad Galván 3a83e7693f feat: Add new error code for missing EME support (#7596)
Close https://github.com/shaka-project/shaka-player/issues/4495
2024-11-14 18:41:08 +01:00
Álvaro Velad Galván 63ddbc9056 chore(docs): Update FAQ to mention a HLS out of sync on some cases (#7552)
Close https://github.com/shaka-project/shaka-player/issues/7551
2024-11-06 08:51:38 -08:00