Commit Graph

644 Commits

Author SHA1 Message Date
Aditya Mishra 415ebdc52e feat(UI): Add live subtitle style preview on hover (#10077) 2026-05-12 13:24:17 +02:00
Joey Parrish 018ff49d23 chore: Add a note about default locales (#10068) 2026-05-06 09:40:43 -07:00
Álvaro Velad Galván f9d7f1fc2c feat(MSF): Add LoC support (#10035)
Spec: https://datatracker.ietf.org/doc/draft-ietf-moq-loc/02/

Supported codecs: AAC, Opus, AVC, HEVC

Close https://github.com/shaka-project/shaka-player/issues/10017
2026-05-06 09:40:59 +02:00
Álvaro Velad Galván 90a737961f feat(MSF): Add MoQT draft-16 support (#9966)
A new config is added to config the version: 'auto', 'draft-14',
'draft-16'

---------

Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2026-04-15 12:34:33 +02:00
Álvaro Velad Galván 406729873b chore: Add shaka.util.VideoFrameCallbackHandler helper (#9950)
It encapsulates and simplifies the use of requestVideoFrameCallback and
cancelVideoFrameCallback

---------

Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2026-04-09 14:28:40 +02:00
Álvaro Velad Galván 2db061d654 perf(MSF): Reduce live latency to one segment (#9947)
Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2026-04-09 14:01:11 +02:00
Wojciech Tyczyński e2cf6a1724 chore: Replace PublicPromise with Promise.withResolvers (#9925)
Stop using `shaka.util.PublicPromise` and replace it with modern
`Promise.withResolvers()` API, that is [widely implemented
already](https://caniuse.com/wf-promise-withresolvers).

Polyfill is already included by Closure Compiler:
https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/js/es6/promise/withResolvers.js

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2026-04-07 16:11:29 +02:00
Álvaro Velad Galván 0522d0b1dc feat(MSF): Make subscribe filter type configurable (#9941) 2026-04-07 10:47:23 +02:00
Wojciech Tyczyński 2d2228bbd8 chore: Remove DelayedTick (#9927)
DelayedTick in reality was used directly only in StreamingEngine for no
particular reason. Move this functionality directly to Timer class.
2026-04-02 18:45:26 +02:00
Matthias Van Parijs 5dbb2987ff feat: Add basic support for TiVo OS (#9758)
I got in touch with some people at TiVo OS and they're willing to help
out with proper device support.

This is a draft as we'll have to figure out the details (eg; max
resolution probing, HDR capabilities) along the way.

Caveats

- Earlier versions of BMW run on Linux, with user agent "Mozilla/5.0
(X11; Linux aarch64) AppleWebKit/573.36 (KHTML, like Gecko)
Chrome/126.1.0.0.0 Safari/537.36 BMW/156", which is TiVo under the hood.
Current implementation wouldn't match this but there's a few config
variables that need to be adjusted (eg; CrossBoundaryStrategy RESET).
- I have yet to check if newer BMW's (run on Android) contain TiVoOS in
their user agent.
- TiVo is a new player in the TV market, they ship their OS with various
vendors. I shall yet have to receive proper info of what runs where.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2026-03-31 09:59:01 +02:00
splint-disk-8i a479fd397d docs: fix typos in README, build helpers, and style guide (#9873)
Fix a few minor typos and grammar issues across docs and build scripts:

- Fix incorrect alt text in README.md (Kinetoscope -> Shaka Player)
- Fix grammar in shakaBuildHelpers.py docstring (handling -> handled)
- Fix verb tense in docs/style.md (recommended -> recommend)
2026-03-22 10:51:14 -07:00
Ivan e687a6c774 perf(Transmuxer): replace identical object literals with named constants (#9852)
In TS Transmuxer, Replaces 9 identical inline Mp4SampleFlags object
literals across 7 stream info methods with 3 named constants
(AUDIO_SAMPLE_FLAGS_, VIDEO_KEYFRAME_FLAGS_, VIDEO_NON_KEYFRAME_FLAGS_)

- Reduces duplication and improves readability — each constant makes the
shared object payload referenced
- As a side benefit, eliminates per-frame object allocations during
transmuxing, reducing GC pressure on low-end devices like Tizen/LG etc.
2026-03-20 12:48:19 +01:00
Álvaro Velad Galván c92c3bddba feat(DASH): Add json format support (#9788)
This initial support is complete but not efficient, as it involves
conversion to XML and normal processing. It should only be used for
testing purposes. Improved support will be added in the future.

Tested with https://github.com/Dash-Industry-Forum/dash-json-schema

Note: This is only added to the experimental build.
2026-03-09 09:52:06 +01:00
Álvaro Velad Galván 102da5264e build: Change default name build on build.py (#9780)
Right now the build +@complete is called experimental in all.py
2026-03-02 11:32:10 -08:00
Joey Parrish f6c99d463c fix(ci): Update release for trusted publishing (#9768)
This handles trusted publishing for Shaka Player.

In addition, it makes a check in shakaBuildHelpers a little broader to
accommodate forked package names (like @joeyparrish/shaka-player-staging
that I have been using to test the workflow updates from my fork).

Issue #9132
2026-02-27 10:38:35 -08:00
Álvaro Velad Galván 51d8c0f63f build: Support ES5/ES2021 dual builds (#9755)
Results:

| File | ES5 | ES2021 | Diff |
| ------------------------------ | ---------------------- |
---------------------- | -------------------------- |
| Compiled Debug | 1502.9 KiB (344.0 KiB) | 1235.9 KiB (302.9 KiB) |
**-267.0 KiB (-41.1 KiB)** |
| Compiled | 755.8 KiB (244.8 KiB) | 653.7 KiB (217.4 KiB) | **-102.1
KiB (-27.4 KiB)** |
| DASH Debug | 1101.3 KiB (257.6 KiB) | 906.8 KiB (227.3 KiB) | **-194.5
KiB (-30.3 KiB)** |
| DASH | 521.0 KiB (172.5 KiB) | 448.8 KiB (152.9 KiB) | **-72.2 KiB
(-19.6 KiB)** |
| HLS Debug | 1137.9 KiB (263.6 KiB) | 938.2 KiB (232.8 KiB) | **-199.7
KiB (-30.8 KiB)** |
| HLS | 559.3 KiB (184.1 KiB) | 484.1 KiB (163.5 KiB) | **-75.2 KiB
(-20.6 KiB)** |
| UI Debug | 1825.6 KiB (411.9 KiB) | 1527.5 KiB (366.4 KiB) | **-298.1
KiB (-45.5 KiB)** |
| UI | 966.8 KiB (302.3 KiB) | 855.5 KiB (271.9 KiB) | **-111.3 KiB
(-30.4 KiB)** |
| Experimental Debug | 1886.5 KiB (424.9 KiB) | 1572.3 KiB (377.0 KiB) |
**-314.2 KiB (-47.9 KiB)** |
| Experimental | 993.1 KiB (310.0 KiB) | 875.1 KiB (278.0 KiB) |
**-118.0 KiB (-32.0 KiB)** |

Since the number of builds has doubled, the option to compile in
parallel has now been added to optimize time.
2026-02-25 10:23:48 +01:00
Álvaro Velad Galván 123d665e39 feat: Add basic support to Titan OS (#9696)
User Agent info: https://docs.titanos.tv/user-agents
2026-02-11 12:43:41 +01:00
Joey Parrish 8db8d7a4b0 fix(ci): Fix Firefox tests running on Windows (#9670)
Since Firefox in the range 145 to 147 (we jumped from 144 to 147),
running tests in a Windows background service now requires an explicit
flag for headless mode. This fixes the configuration for Selenium.
2026-02-04 15:32:29 -08:00
Álvaro Velad Galván 514246c8de feat(UI)!: Remove airplay button (#9654)
`airplay` button uses WebKit's proprietary API. In newer versions, this
has been replaced by the RemotePlayback API, which is available in
`remote` button.

More info: https://caniuse.com/mdn-api_remoteplayback

---------

Co-authored-by: Theodore Abshire <TheodoreAbshire@Gmail.com>
2026-02-04 11:28:17 +01:00
Álvaro Velad Galván 3fd73ce941 feat(UI)!: Add bigButtons config and remove addBigPlayButton config (#9636)
- The following buttons are registered: play_pause, mute, fullscreen,
rewind, fast_forward, picture_in_picture, remote, loop, skip_next,
skip_previous
- SmallPlayButton and BigPlayButton are removed
- The following buttons are used by default on mobile: skip_previous,
play_pause, skip_next
2026-02-02 09:56:43 +01:00
Álvaro Velad Galván 6d306d4a77 build: Add shaka namespace types to generated externs (#9596)
Issue https://github.com/shaka-project/shaka-player/issues/6762
2026-01-28 07:39:37 +01:00
Álvaro Velad Galván d452350d57 feat!: Remove shaka.util.XmlUtils (#9616)
It is removed because there is no longer any dependency on it anywhere
in the code.
2026-01-27 17:52:00 +01:00
Álvaro Velad Galván 1908b2755f build: conditionally force rebuild based on existing build_state.json (#9597)
Close https://github.com/shaka-project/shaka-player/issues/759
2026-01-27 10:23:14 +01:00
Albin Larsson 969483bb3a build: generate localizations before gendeps (#9590)
`gendeps.py` is documented in build/readme.md as "required to use the
uncompiled library", which to me sounds like it should work standalone
if you just want to build and test the demo?
https://github.com/shaka-project/shaka-player/blob/main/build/README.md?plain=1#L12

If you check out the repo fresh or remove dist and run
`./build/gendeps.py` it will fail because it depends on locales.js to be
built.

(also, trying to run `./build/generateLocalizations.py` before
`./build/gendeps.py` will fail too if you don't `mkdir -p dist` first.

I might need some guidance here about whether to add a locales CLI
argument. "build/check.py" already runs without this and will generate
locales.js with the default locales, which seems reasonable for this
command.

But it seems error prone to me to both be able to specify locales and to
use date based conditional checks if locales should be rebuilt, because
locales.js can be more recent but generated with different locales.
2026-01-22 08:57:06 -08:00
Albin Larsson 83cb273c22 build: improve no changes detected log (#9575)
The "No changes detected" warning applies per output file, but the file
wasn't included in the log, which was confusing to me. In addition to
that, many of the builds depends on locales.js, so the log message got
duplicated several times because of that when you build `./build/all.py`

This PR adds module level caching for build/compiler to avoid repetition
and tries to make the log more informative.

It uses the output file basename, which seems like a safe assumption
currently since the dist output structure is flat. But if this is a deal
breaker maybe we can print the full path or the relative path from the
shaka repo root instead.

This is the log for the most extreme case (`./build/all.py` directly
after another build) before the PR:

```
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Generating Closure dependencies...
[INFO] Linting JavaScript...
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Linting CSS...
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Linting HTML...
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Checking that the build files are complete...
[INFO] Checking for spelling mistakes in js files...
CSpell: Files checked: 578, Issues found: 0 in 0 files.
[INFO] Checking for spelling mistakes in md files...
CSpell: Files checked: 49, Issues found: 0 in 0 files.
[INFO] Checking for spelling mistakes in py files...
CSpell: Files checked: 16, Issues found: 0 in 0 files.
[INFO] Checking the tests for type errors...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Building the docs...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (experimental, debug)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (ui, debug)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (compiled, debug)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (dash, debug)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (hls, debug)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the demo app (debug)...
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the receiver app (debug)...
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (experimental, release)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (ui, release)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (compiled, release)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (dash, release)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the library (hls, release)...
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the demo app (release)...
[WARNING] No changes detected, skipping. Use --force to override.
[INFO] Compiling the receiver app (release)...
[WARNING] No changes detected, skipping. Use --force to override.
```

With this PR it will print this instead:

```
[WARNING] Detected output files that do not need to be rebuilt. Use --force to override.
[INFO] Skipping locales.js (already built)
[INFO] Generating Closure dependencies...
[INFO] Linting JavaScript...
[INFO] Skipping .lintstamp (already built)
[INFO] Linting CSS...
[INFO] Skipping .csslintstamp (already built)
[INFO] Linting HTML...
[INFO] Skipping .htmllintstamp (already built)
[INFO] Checking that the build files are complete...
[INFO] Checking for spelling mistakes in js files...
CSpell: Files checked: 578, Issues found: 0 in 0 files.
[INFO] Checking for spelling mistakes in md files...
CSpell: Files checked: 49, Issues found: 0 in 0 files.
[INFO] Checking for spelling mistakes in py files...
CSpell: Files checked: 16, Issues found: 0 in 0 files.
[INFO] Checking the tests for type errors...
[INFO] Skipping .testcheckstamp (already built)
[INFO] Building the docs...
[INFO] Skipping index.html (already built)
[INFO] Skipping controls.css (already built)
[INFO] Skipping demo.css (already built)
[INFO] Compiling the library (experimental, debug)...
[INFO] Skipping shaka-player.experimental.debug.js (already built)
[INFO] Skipping shaka-player.experimental.debug.externs.js (already built)
[INFO] Skipping shaka-player.experimental.debug.d.ts (already built)
[INFO] Compiling the library (ui, debug)...
[INFO] Skipping shaka-player.ui.debug.js (already built)
[INFO] Skipping shaka-player.ui.debug.externs.js (already built)
[INFO] Skipping shaka-player.ui.debug.d.ts (already built)
[INFO] Compiling the library (compiled, debug)...
[INFO] Skipping shaka-player.compiled.debug.js (already built)
[INFO] Skipping shaka-player.compiled.debug.externs.js (already built)
[INFO] Skipping shaka-player.compiled.debug.d.ts (already built)
[INFO] Compiling the library (dash, debug)...
[INFO] Skipping shaka-player.dash.debug.js (already built)
[INFO] Skipping shaka-player.dash.debug.externs.js (already built)
[INFO] Skipping shaka-player.dash.debug.d.ts (already built)
[INFO] Compiling the library (hls, debug)...
[INFO] Skipping shaka-player.hls.debug.js (already built)
[INFO] Skipping shaka-player.hls.debug.externs.js (already built)
[INFO] Skipping shaka-player.hls.debug.d.ts (already built)
[INFO] Compiling the demo app (debug)...
[INFO] Skipping demo.compiled.debug.js (already built)
[INFO] Compiling the receiver app (debug)...
[INFO] Skipping receiver.compiled.debug.js (already built)
[INFO] Compiling the library (experimental, release)...
[INFO] Skipping shaka-player.experimental.js (already built)
[INFO] Skipping shaka-player.experimental.externs.js (already built)
[INFO] Skipping shaka-player.experimental.d.ts (already built)
[INFO] Compiling the library (ui, release)...
[INFO] Skipping shaka-player.ui.js (already built)
[INFO] Skipping shaka-player.ui.externs.js (already built)
[INFO] Skipping shaka-player.ui.d.ts (already built)
[INFO] Compiling the library (compiled, release)...
[INFO] Skipping shaka-player.compiled.js (already built)
[INFO] Skipping shaka-player.compiled.externs.js (already built)
[INFO] Skipping shaka-player.compiled.d.ts (already built)
[INFO] Compiling the library (dash, release)...
[INFO] Skipping shaka-player.dash.js (already built)
[INFO] Skipping shaka-player.dash.externs.js (already built)
[INFO] Skipping shaka-player.dash.d.ts (already built)
[INFO] Compiling the library (hls, release)...
[INFO] Skipping shaka-player.hls.js (already built)
[INFO] Skipping shaka-player.hls.externs.js (already built)
[INFO] Skipping shaka-player.hls.d.ts (already built)
[INFO] Compiling the demo app (release)...
[INFO] Skipping demo.compiled.js (already built)
[INFO] Compiling the receiver app (release)...
[INFO] Skipping receiver.compiled.js (already built)
```
2026-01-22 08:31:02 -08:00
Albin Larsson 9db29725bd build: print stderr if closure compiler errors (#9570)
Prevents swallowing the error details (mainly happens if you use an old
java version).

Before:
<img width="1592" height="948" alt="image"
src="https://github.com/user-attachments/assets/c899a7b0-15ca-4952-84af-a9612941c357"
/>


After:
<img width="2458" height="1176" alt="image"
src="https://github.com/user-attachments/assets/38eeb459-c37d-4f17-9563-666cc32a8e70"
/>

`execute_get_output` and `execute_get_code` in shakaBuildHelpers.py has
the same problem with swallowing the error, but they are used for other
commands and I didn't replicate any issues with them.
2026-01-22 08:29:49 -08: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
Andy(김규회) 05b09728c7 perf: Use Map.getOrInsert/getOrInsertComputed native methods (#9546)
Added polyfills for `Map.getOrInsert()` and
`Map.getOrInsertComputed()` from the TC39 upsert proposal and refactor
the codebase to use them.
These methods replace the common "check if key exists, then set default"
pattern with a single atomic operation. This improves code readability
and eliminates redundant map lookups throughout the player.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2026-01-13 10:57:25 +01:00
Álvaro Velad Galván 6ba19b2af4 feat(UI): Add subtitle size button (#9530) 2025-12-19 14:09:20 +01:00
Álvaro Velad Galván c6e6082bc2 feat: Allow override subtitle position (#9522)
Close https://github.com/shaka-project/shaka-player/issues/9521

---------

Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2025-12-19 13:38:33 +01:00
Matthias Van Parijs 73ee27bf17 feat!: Remove autoShowText and simplify initial text track selection (#9435)
This is the first step in a series of efforts to simplify how we handle
text tracks internally.

The purpose of `autoShowText` has always felt a bit unclear. It was
originally added because Shaka wasn't flexible enough when choosing an
initial text track. I don't think we should try to handle every possible
scenario for initial text track selection. Instead, we should respect
`config.preferredTextLanguage` and let the application decide if it
needs more granular control. Apps can already do this easily with
`getTextTracks()` and `selectTextTrack(track)`.

Ultimately, I'd like to move toward a simpler API where either a text
track is selected or none is. If nothing is selected, we shouldn't
stream any text at all.

See https://github.com/shaka-project/shaka-player/issues/9301 for extra
context.
2025-12-12 09:41:15 +01:00
absidue 8434e556f4 build: Correct various TypeScript return types from any to void (#9495)
The Closure compiler infers that methods without an explicit `@return`
annotation return `undefined` but Clutz uses `any` instead, which means
that in the TypeScript defintions shipped with shaka-player all of those
methods ruturn `any`. These changes add an extra step to the externs
generation script that adds explicit `@return {undefined}` annotations
to methods without returns. This fixes it for about 180 methods (varies
depending on the build type), all manually written externs or classes
that implement or extend from the manually written externs will still
use `any`.
2025-12-12 09:40:14 +01:00
Álvaro Velad Galván 1c696e40ac build: Replace esprima by @babel/parser (#9493)
Close https://github.com/shaka-project/shaka-player/issues/8056
2025-12-11 14:59:58 +01:00
Álvaro Velad Galván ff72abc4f5 feat(UI)!: Improve Media Session management (#9483)
Fixes https://github.com/shaka-project/shaka-player/issues/9478
2025-12-10 11:56:03 +01:00
Álvaro Velad Galván 215404911f perf: Prefer Uint8Array's {to,from}{Base64,Hex} methods (#9472)
Close: https://github.com/shaka-project/shaka-player/issues/9469
2025-12-05 09:21:09 +01:00
Álvaro Velad Galván ad64dbac6a feat(UI): Add copy video frame button (#9384) 2025-11-12 15:32:41 +01:00
Álvaro Velad Galván c920ecd4fa chore: Move createSegmentRequest to shaka.net.NetworkingUtils (#9363) 2025-11-05 21:05:49 +01:00
Álvaro Velad Galván 4bc2518e29 feat!: Remove LRC, SBV, SSA support (#9330)
Related to https://github.com/shaka-project/shaka-player/issues/9321
2025-11-04 20:07:02 +01:00
Álvaro Velad Galván e85b648ef0 feat!: Remove MSS support (#9329)
Related to https://github.com/shaka-project/shaka-player/issues/9321
2025-11-04 20:06:44 +01:00
Álvaro Velad Galván 03685137d8 build: Remove polyfills for the UI on non-UI builds (#9325) 2025-10-31 12:56:22 +01:00
Álvaro Velad Galván 02a2bb54d0 feat(Cast): Support getCurrentAd while casting (#9306) 2025-10-28 13:25:57 +01:00
Álvaro Velad Galván 879f927db3 feat(UI): Support ad events when casting (#9280) 2025-10-24 14:59:11 +02:00
Álvaro Velad Galván 4aca6e2356 ci: Re-enable ChromecastGTV (#9278) 2025-10-24 13:22:13 +02:00
Álvaro Velad Galván 5cd93ef38e build: Export by default Shaka in the definitions (#9243) 2025-10-20 13:19:24 +02:00
Álvaro Velad Galván f2a9871b5e build: Fix illegal multiple extends occurs in the generated definitions (#9238)
Fixes https://github.com/shaka-project/shaka-player/issues/9002
2025-10-17 13:39:20 +02:00
Joey Parrish 8f5770cc43 fix(build): Fix build compat with mac homebrew java (#9225)
Homebrew builds of openjdk include a version like "25" instead of
"25.0.0". This fixes the parser that extracts this version number in our
build scripts.
2025-10-15 10:52:23 -07:00
Álvaro Velad Galván 179f7e89ca feat(UI): Allow show the content title (#9206) 2025-10-14 16:08:38 +02:00
Álvaro Velad Galván 3ccae4826f chore(Ads): Create shaka.ads.AbstractAd class to remove duplicate code (#9190) 2025-10-10 17:44:56 +02:00
Álvaro Velad Galván 840ca96571 feat(Ads): Add basic SVTA2053-2 support (#9172)
Spec: https://www.svta.org/product/svta2053-2/

A new admanager has been created to manage this.

The new admanager works with SSAI and SGAI.

This new ad manager essentially manages ad tracking, but it's also
possible to have all ad events and disable tracking via configuration.
2025-10-09 13:27:34 +02:00
Álvaro Velad Galván 945c57ab77 feat!: Remove all deprecated things (#9162) 2025-10-07 10:52:13 +02:00