mirror of
https://github.com/shaka-project/shaka-player.git
synced 2026-06-14 15:56:38 +03:00
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>
This commit is contained in:
committed by
GitHub
parent
8230cddecd
commit
5dbb2987ff
@@ -56,6 +56,7 @@ for the up-to-date list of maintained branches of Shaka Player.
|
||||
|Playstation 4⁷| - | - | - | - | - | - | - | - |**Y**|
|
||||
|Playstation 5⁷| - | - | - | - | - | - | - | - |**Y**|
|
||||
|Titan OS⁷ | - | - | - | - | - | - | - | - |**Y**|
|
||||
|TiVo OS⁷ | - | - | - | - | - | - | - | - |**Y**|
|
||||
|
||||
NOTES:
|
||||
- ²: The latest stable Chromecast firmware is tested. Both sender and receiver
|
||||
@@ -254,6 +255,7 @@ Note: This module is experimental and is only included in the experimental build
|
||||
|Playstation 5⁷| - |untested⁷| - | - |untested⁷ |
|
||||
|Huawei⁷ | - | - | - |untested⁷|untested⁷ |
|
||||
|Titan OS⁷ |untested⁷ |untested⁷| - | - |untested⁷ |
|
||||
|TiVo OS⁷ |untested⁷ |untested⁷| - | - |untested⁷ |
|
||||
|
||||
Other DRM systems should work out of the box if they are interoperable and
|
||||
compliant to the EME spec.
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
+../../lib/device/hisense.js
|
||||
+../../lib/device/playstation.js
|
||||
+../../lib/device/titan_os.js
|
||||
+../../lib/device/tivo_os.js
|
||||
+../../lib/device/tizen.js
|
||||
+../../lib/device/vizio.js
|
||||
+../../lib/device/webkit_stb.js
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
/*! @license
|
||||
* Shaka Player
|
||||
* Copyright 2026 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
goog.provide('shaka.device.TiVoOS');
|
||||
|
||||
goog.require('shaka.device.AbstractDevice');
|
||||
goog.require('shaka.device.DeviceFactory');
|
||||
goog.require('shaka.device.IDevice');
|
||||
|
||||
|
||||
/**
|
||||
* @final
|
||||
*/
|
||||
shaka.device.TiVoOS = class extends shaka.device.AbstractDevice {
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
getVersion() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
getDeviceName() {
|
||||
return 'TiVoOS';
|
||||
}
|
||||
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
getDeviceType() {
|
||||
return shaka.device.IDevice.DeviceType.TV;
|
||||
}
|
||||
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
getBrowserEngine() {
|
||||
return shaka.device.IDevice.BrowserEngine.CHROMIUM;
|
||||
}
|
||||
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
supportsSmoothCodecSwitching(keySystem) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the current platform is TiVoOS.
|
||||
* @return {boolean}
|
||||
* @private
|
||||
*/
|
||||
static isTiVoOS_() {
|
||||
return navigator.userAgent.includes('TiVoOS');
|
||||
}
|
||||
};
|
||||
|
||||
if (shaka.device.TiVoOS.isTiVoOS_()) {
|
||||
shaka.device.DeviceFactory.registerDeviceFactory(
|
||||
() => new shaka.device.TiVoOS());
|
||||
}
|
||||
Reference in New Issue
Block a user