Commit Graph

28 Commits

Author SHA1 Message Date
Álvaro Velad Galván 0a2ff0fe5f chore: Improve device type and browser engine detection (#9727) 2026-02-18 13:38:08 +01:00
Álvaro Velad Galván 02f579fe22 feat: Add HDR and screen size detection on Titan OS (#9700) 2026-02-12 13:33:54 +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
Álvaro Velad Galván ceb01dcd57 fix(WebOS): Script-errors on WebOS when detecting HDR support (#9604)
Fixes https://github.com/shaka-project/shaka-player/issues/9602
2026-01-26 12:16:44 +01:00
Álvaro Velad Galván 71af24f82b feat: Only disallow SourceBuffer.changeType on PlayReady when using Edge browser (#9603)
More info in
https://chromium-review.googlesource.com/c/chromium/src/+/4577759 and
https://issues.chromium.org/issues/40261162

According to the source code and empirical testing, SMOOTH is supported
with clear content and Widevine, but not with PlayReady.
2026-01-26 12:12:53 +01:00
Matthias Van Parijs 7d857b5664 fix: Disable smooth codec switching for Hisense VIDAA (#9601)
Ran a multi codec test and transitioning from AAC to AC3 fails silently
on Hisense VIDAA (there's no audio), despite `changeType` indicating
else wise.

We should disable SMOOTH for this device, similar to Tizen and webOS.
2026-01-26 10:15:24 +01:00
Álvaro Velad Galván b1a7e7bb64 feat: Disable remote usage on TV, CONSOLE and CAST devices (#9375) 2025-11-07 16:48:16 +01:00
Vasanthavanan Devarajan eed85737fe fix(Xbox): Enable little-endian PlayReady key IDs to resolve DRM error (#9348)
Fixes https://github.com/shaka-project/shaka-player/issues/9347
2025-11-04 13:53:39 +01:00
Wojciech Tyczyński 578c087d42 fix(webOS): Disable smooth codec switch on webOS (#9273)
During my tests I wasn't able to find a webOS TV which could handle
smooth codec switching properly. Let's disable it on all platform,
similar to what we've done on Tizen back in the day.
2025-10-23 16:45:26 +02:00
Wojciech Tyczyński 8e67e0bafc chore: Simplify codec switch check (#9274)
Move all logic related to smooth switch check to device API.
2025-10-23 16:45:02 +02:00
Subhan Ahmed 329049864a fix(Xbox): Implement requiresClearAndEncryptedInitSegments method for xbox (#9254)
### Summary
When playing a live HLS stream on Xbox, I was running into the following
error as soon as the playhead hit a discontinuity:

```
CHUNK_DEMUXER_ERROR_APPEND_FAILED: Sample encryption info is not available.
```

I noticed that [this
fix](https://github.com/shaka-project/shaka-player/pull/6719) was added
a while back to address this exact issue. A few months ago, [another
PR](https://github.com/shaka-project/shaka-player/pull/8210) was
submitted to abstract the feature detection logic, which I believe
unfortunately caused a regression.

The `requiresClearAndEncryptedInitSegments` helper was implemented in
both the Abstract Device and the Default Browser, but it looks like it
wasn't implemented in the Xbox class. This resulted in
`requiresClearAndEncryptedInitSegments` always returning false on that
platform (defaulting to the Abstract Device class's implementation,
which returns `false`).

This made the following logic (that fixed the
CHUNK_DEMUXER_ERROR_APPEND_FAILED error) fail:
```
if (device.requiresClearAndEncryptedInitSegments()) {
  const doubleInitSegment = new Uint8Array(initSegment.byteLength +
    modifiedInitSegment.byteLength);
  doubleInitSegment.set(modifiedInitSegment);
  doubleInitSegment.set(initSegment, modifiedInitSegment.byteLength);
  return doubleInitSegment;
}
```

### Fix
Overriding this function in the Xbox class fixes the problem. 

### Result
Playback now proceeds through HLS discontinuities on Xbox without
CHUNK_DEMUXER_ERROR_APPEND_FAILED.
2025-10-22 10:24:10 +02:00
Álvaro Velad Galván 1e0dceee8f fix: Fix HDR detection on WebOS on compiled builds (#9185)
Fixes https://github.com/shaka-project/shaka-player/issues/9184
2025-10-09 15:16:48 +02:00
Gary Katsevman 729cea8fc4 feat: Change dvvC box to free box for Dolby Vision workarounds (#9101)
This is based on
https://professionalsupport.dolby.com/s/article/Guidelines-to-developers-building-DASH-HLS-player-apps-for-LG-WebOS-Chromecast-and-other-Chromium-based-app-development-platforms?language=en_US
2025-09-17 10:21:12 +02:00
Agajan J. b6dd9b69fa fix: Add Orange STB Back To requiresEncryptionInfoInAllInitSegments (#8966)
Classifies Orange STB as a Webkit STB device and returns true for
`requiresEncryptionInfoInAllInitSegments`

Fixes #8965
2025-08-08 10:34:44 -07:00
Álvaro Velad Galván b87bf9d4b9 fix: Fix default value of defaultAudioRobustnessForWidevine and defaultVideoRobustnessForWidevine on Android (#8896)
Fixes https://github.com/shaka-project/shaka-player/issues/8801
2025-07-21 18:23:30 +02:00
Álvaro Velad Galván bf26c3fb4b feat(DASH): Remove multiTypeVariantsAllowed config and add support for it on all browsers (#8858) 2025-07-15 09:26:04 +02:00
Joey Parrish 43408646e4 fix: Fix Tizen 3 default cross-boundary strategy (#8850)
The default was not ported correctly in #8210. This fixes it to its
previous (and documented) default value.
2025-07-07 14:01:27 -07:00
Wojciech Tyczyński b0fde65500 chore: Move wait for encrypted event check to device API (#8833)
This info should be abstract to DRM Engine.
2025-07-03 11:51:02 +02:00
Álvaro Velad Galván 83604c3037 chore: Move eme-encryption-scheme-polyfill to the Shaka Player repo (#8818)
We want to apply several optimizations to MCap and Shaka management,
which makes everything easier if the code is in this repo.
2025-07-01 13:24:28 +02:00
Joey Parrish 7c1e31d4e6 chore: Add trailing commas to all record types (#8820)
Now that jsdoc supports this, it will make future diffs cleaner. See
#8819 and #1236.
2025-06-30 13:36:04 -07:00
Álvaro Velad Galván 5b27f0f7d3 fix: Fix Apple Vision Pro (Vision OS) detection and other VR devices detection (#8805) 2025-06-26 10:39:28 +02:00
Agajan J. 62e55d4b1e fix: Another Sony Bravia TV Playready Failure (#8791)
Fixes https://github.com/shaka-project/shaka-player/issues/8790
There is another Sony TV model (called Bluefin) that also requires
little endianness conversion. Future proofed Sony tv detection to
include all the G models.
2025-06-24 09:36:20 +02:00
David HM Morgan e303024390 fix: Fix 4k stream support within browser env on Tizen (#8764) 2025-06-18 16:01:34 +02:00
Álvaro Velad Galván 3506c4f4b3 fix: Fix Apple Vision Pro detection (#8732) 2025-06-11 13:54:52 +02:00
Álvaro Velad Galván 1c4a20681c fix: Fix bad assert on DeviceFactory (#8705) 2025-06-05 21:34:46 +02:00
Álvaro Velad Galván ff1ef7c262 feat: Add HDR detection in Tizen and WebOS (#8680)
Close #8441

---------

Co-authored-by: Wojciech Tyczyński <tykus160@gmail.com>
2025-06-04 12:34:59 +02:00
Álvaro Velad Galván 642cecfc0e fix: Fix PlayReady support on Chromium Windows (#8683)
Related to https://github.com/shaka-project/shaka-player/pull/8682
2025-06-04 12:34:07 +02:00
Wojciech Tyczyński 970d7756ea feat: Add Device API (#8210)
The goal is to simplify and abstract feature logic detection. Currently
lots of places depend on various calls to `shaka.util.Platform` and
mainteinance of this is hard & not easy to read.

By introducing device API ideally rest of the player logic would look
into device features instead of directly checking platform. Additionally
we can more easily cache needed values, so we won't have to parse user
agent several times anymore.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2025-06-02 13:46:40 +02:00