Commit Graph

2134 Commits

Author SHA1 Message Date
Álvaro Velad Galván 600c87158a test: Add DASH ClearKey integration test (#6736)
Related to https://github.com/shaka-project/shaka-player/issues/6710
2024-06-03 11:05:37 +02:00
Álvaro Velad Galván 2ec64442e2 feat(HLS): Add support for EXT-X-DATERANGE (#6718)
Closes https://github.com/shaka-project/shaka-player/issues/3523
2024-06-03 10:10:39 +02:00
Joey Parrish 89c8361ee0 test: Fix exception calling setVolume() in ads test (#6731)
MockAdManager did not define setVolume() in this one test, causing the
test to throw an exception. This exception got swallowed and did not
fail the test, but was noticed in the JS console during a Karma debug
run.
2024-05-31 16:44:32 -07:00
Joey Parrish 8d680e56b4 feat: Add segment URIs to segment-related errors (#6714)
This makes it more feasible to debug and fix transmuxer bugs or other segment append failures.

Closes #6712
2024-05-31 09:41:45 -07:00
theodab 1cfb53e648 fix(preload): Copy net filters to preload manager (#6709)
Some assets might rely on networking engine filters (request and
response filters) to properly download their assets. However, the
preload manager's need to use a fresh networking engine also caused it
to not use any filters set on the player already. This changes the
process of setting up a preload manager, to make it copy over any
filters defined on the player's networking engine.

Fixes #6698
2024-05-30 12:45:12 +02:00
Álvaro Velad Galván 082f897701 feat(HLS): Build closed captions metadata on-the-fly (#6700)
Closes https://github.com/shaka-project/shaka-player/issues/1826

Also fixes variable substitution when using `getMediaPlaylistBasicInfo_`
2024-05-30 11:02:01 +02:00
Álvaro Velad Galván 6a5cbef007 test: Update screenshots (#6706)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-30 08:28:05 +02:00
Wojciech Tyczyński 9e26166c40 fix: patch setServerCertificate() on older Tizens & webOS (#6696)
We've tried to enable setting server certificates to optimize playback
start, but turned out that with our widevine certificate shaka was
throwing 6004 error. The issue is not reproducible starting from Tizen
5.5. The same certificate was working properly also on Chrome.
2024-05-29 11:07:17 +02:00
Álvaro Velad Galván 9060ab0a34 feat(DASH): Parse and use target latency (#6683)
Related to https://github.com/shaka-project/shaka-player/pull/6193
Thanks to @gkatsev
2024-05-29 09:45:09 +02:00
Dave Nicholas d38aabf04d feat(DASH): Add MPD Patch support (#5247)
Closes https://github.com/shaka-project/shaka-player/issues/2228

---------

Co-authored-by: Wojciech Tyczyński <wojciech.tyczynski@sky.uk>
2024-05-29 08:11:28 +02:00
Wojciech Tyczyński c541515995 fix: Ban smooth codec switching on Tizen 5 & 6 (#6686)
My recent tests on using smooth codec switch on Tizen 6.0 unfortunately
failed. Ban this platform together with Tizen 5.
2024-05-28 12:34:37 +02:00
Álvaro Velad Galván 00c5c1da16 fix(Cast): Incorrect detection of MediaCapabilities on Chromecast (#6656)
Fixes https://github.com/shaka-project/shaka-player/issues/5776
2024-05-28 09:03:55 +02:00
Wojciech Tyczyński e0eeb5b77d feat: add config to clear decodingInfo cache on unload (#6678)
On PlayStation, cached `MediaKeySystemAccess` objects may corrupt after
several playbacks, and they are not able anymore to properly create
`MediaKeys` objects. To prevent it, clear the cache after each playback.
Make it configurable via `streaming.clearDecodingCache`.
2024-05-27 14:10:33 +02:00
Álvaro Velad Galván 3b90bec7e4 test: Update player_external test to allow test all Demo assets (#6661) 2024-05-24 19:00:04 +02:00
Álvaro Velad Galván 6a8dbf7686 test: Consolidate probeSupport in one place (#6667) 2024-05-24 11:00:07 +02:00
Álvaro Velad Galván 894c2f94b9 test: Load IMA globally in one place once (#6666) 2024-05-24 10:45:59 +02:00
Álvaro Velad Galván 329d42ad56 feat: Parse colorGamut and use it in MCap (#6663) 2024-05-24 08:59:06 +02:00
Álvaro Velad Galván e7b893b74e feat: Add config for add headers to license requests (#6650)
Co-authored-by: Joey Parrish <joeyparrish@google.com>
2024-05-23 09:45:25 +02:00
Álvaro Velad Galván 520930c665 feat(Ads): Support CS on devices that don't support multiple media elements (#6575)
Closes https://github.com/shaka-project/shaka-player/issues/2792
2024-05-23 09:25:33 +02:00
Álvaro Velad Galván dda713aa71 feat: Optionally force HTTP content URIs (#6649)
This may be necessary on older devices where not all certificates are
present.
2024-05-23 04:16:18 +02:00
Joey Parrish c48e4351e7 test: Flatten test environment for Chromecast (#6640)
Chromecast WebDriver Server and Karma both used iframes, which caused
complications when testing on Chromecast. The test environment couldn't
directly access `cast.__platform__` APIs, and more recently stopped
being able to access EME due to presumed mistakes in the platform's
implementation of iframe permission policies.

This resolves the issue by removing iframes at both levels.

- Flatten Karma's environment using "useIframe: false" and "runInParent: true"
- Remove test flag --single-run; not supported in combination with Karma's "useIframe: false" option
- Add a test boot file to force closure to use dynamic script tags instead of document.write; required with Karma's "useIframe: false" option
 - Adjust screenshot tests not to assume an iframe host
 - Fix compatibilty between Tizen and Karma's useIframe:false
- https://github.com/joeyparrish/karma/commit/32e87357a0ca4bf5d3de6d78d80dae2d065fd407
- https://github.com/joeyparrish/karma/commit/f2132cc2cf72f9408fbce2a20b5a21999f1e9416
2024-05-22 16:59:56 -07:00
Joey Parrish 7ab0691502 test: Bypass log settings for support dump (#6654)
Karma creates a dump() function on the context window that we can use to
log something to the console without respect for the normal
captureConsole setting. Use this for the output of probeSupport(), so we
always have it in CI logs.
2024-05-22 16:58:06 -07:00
Joey Parrish 26c3f648bc test: Log support map on test startup (#6638)
When running tests with logging enabled, the logs will now always
contain a full map of media features supported on this platform.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-05-21 17:49:40 +02:00
Álvaro Velad Galván 82c5149375 feat(DASH): Add MPD Chaining support (#6641)
Close https://github.com/shaka-project/shaka-player/issues/3926
2024-05-21 09:57:16 +02:00
Joey Parrish ec4bc1ddeb test: Fix Chromecast testing in lab (#6643)
These changes are necessary for compatibility with Chromecast WebDriver Server v2.

 - Fix a bug in Karma's flat environment support (joeyparrish/karma@9875e98)
 - Add a test boot file to load CAF on Chromecast devices; required by Chromecast WebDriver Server v2's redirect mode (flat environment at that level)
 - Also load this cast-boot file in support.html
 - Rename/reorganize Cast-related externs, which were messy even before the addition of CAF
 - Remove proxy-cast-platform.js; no longer needed as we move to flatten the test environment
 - Ignore error events with "null" error; these appear on Linux Chromecasts, only since including CAF
 - Ignore error events that are actually strings; these appear on Linux Chromecasts, only since including CAF
 - Disable Fuchsia in the lab until autoplay issues can be resolved
2024-05-20 15:14:49 -07:00
Álvaro Velad Galván 0a68e934fd feat(Preload): Add detachAndSavePreload method (#6630) 2024-05-20 09:13:57 +02:00
Álvaro Velad Galván 0d5648b4ab test: Fix flaky test on Tizen (#6633) 2024-05-17 16:32:05 -07:00
Álvaro Velad Galván 907e6bab28 feat: Add getNonDefaultConfiguration (#6620) 2024-05-17 09:25:49 +02:00
Álvaro Velad Galván 02c5b4388d test: Fix PlayReady test in Chromecast (#6621) 2024-05-17 08:34:48 +02:00
Álvaro Velad Galván 1cdbbe0f30 feat: Set maxDisabledTime to 1 by default for low latency streaming (#6617) 2024-05-15 19:45:17 +02:00
Joey Parrish f4bcb355cd test: Add multiperiod test case mirroring partner bug (#6614)
A partner bug we are investigating involves content not being played at
4K when it could be. This test (which passes) helped us eliminate a
theory that our period-flattener was the cause.
2024-05-15 00:55:45 -07:00
Álvaro Velad Galván 0a4c9d1973 fix: Fix Opus support in Safari (#6607)
In Safari:

```
> MediaSource.isTypeSupported('audio/mp4;codecs=Opus')
< true
> MediaSource.isTypeSupported('audio/mp4;codecs=opus')
< false
> MediaSource.isTypeSupported('audio/webm; codecs="Opus"')
< false
> MediaSource.isTypeSupported('audio/webm; codecs="opus"')
< true
```
2024-05-14 17:46:39 +02:00
Álvaro Velad Galván 87de6e01a5 test: Use MCap on StreamUtils tests (#6604)
This prevents any tests from being skipped in Safari.
2024-05-14 12:22:22 +02:00
Álvaro Velad Galván 0206e5af8e feat: Add a new setting to allow remove based on channels count (#6600)
Close https://github.com/shaka-project/shaka-player/issues/6491
2024-05-14 10:28:06 +02:00
Álvaro Velad Galván 0d858b451c test: Use drmIt for HLS SAMPLE-AES test (#6594) 2024-05-14 09:07:05 +02:00
Álvaro Velad Galván 33007098a2 test: Remove bad condition on extracts ID3 metadata from AAC when transmuxing (#6595)
All browsers support transmusing to audio/mp4 with AAC, so this
condition is wrong.
2024-05-14 09:06:51 +02:00
Álvaro Velad Galván d1688964c0 test: Fix MSS VoD PlayReady test (#6596) 2024-05-14 09:06:38 +02:00
Álvaro Velad Galván 1429763c97 feat(Ads): Implement skip ad functionality in Media Tailor (#6598) 2024-05-14 09:06:25 +02:00
Joey Parrish 671a943336 test: Fix test decode errors by updating test assets (#6581)
The Axinom v6 test vectors we used were failing to decode on ChromecastHub.  This upgrades those test segments to Axinom's latest test vectors (v10).

Box offsets and content keys have been updated accordingly.

This also adds the additional error logging that helped to identify the decoding failure.
2024-05-11 00:37:23 -07:00
Joey Parrish 04d816c076 test: Fix test failure waiting for passed time (#6580)
In some rare cases, particularly on Fuchsia-based Chromecasts at the moment, I am seeing test failures where the test is waiting for a time that has already passed. It appears that the `timeupdate` events may be missed in some cases. The `currentTime` appears to be less than the target at the last `timeupdate` event, then the time progresses internally, then a buffering state is hit and no new `timeupdate` events fire. So the Waiter class should use a timer for this as it does for many other types of waits.
2024-05-11 00:13:43 -07:00
Joey Parrish ddabe93eaf test: Fix Fuchsia background-video errors (#6579)
In some cases, Fuchsia Chromecast tests will fail with the error: "The
play() request was interrupted because video-only background media was
paused to save power."

This resolves the issue by ensuring tests run un-muted on that platform,
based on this Chrome code, which indicates the "paused to save power"
logic does not activate when sound is playing:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/media/web_media_player_impl.cc;l=3535;drc=d23075f3

This also fixes two places in our tests where the `createVideoElement()`
was bypassed. This should always be used, because it is a central place
to apply workarounds such as this.
2024-05-10 23:21:37 -07:00
Joey Parrish 91daf87781 test: Skip offline DRM tests on Android (#6573)
The offline DRM tests have begun failing on Android at a rate of 80% or
more. This was eventually determined to be related to
https://crbug.com/1108158 and the timeout workaround in DrmEngine.

When close() hangs and we time out and move on, we leave sessions open
that consume hardware resources at the OEMCrypto level in Android. This
eventually leads to failures like `Failed to execute 'createMediaKeys'
on 'MediaKeySystemAccess': MediaDrmBridge creation failed`. Logs from
`adb logcat` show that 17 sessions are open when this fails, which
likely means our lab device has a limit of 16 open sessions.

Initially, delays between these offline DRM test cases were found to be
an effective workaround, but full test runs showed this to be
ineffective after all.

The only recourse, until Chrome and Widevine fix their bug, is to skip
these tests on Android.
2024-05-10 07:36:39 +02:00
Álvaro Velad Galván 43f275bcad test: Use MCap in test conditions (#6567) 2024-05-10 03:30:49 +02:00
Joey Parrish 5da5de2800 feat: Expose the maximum hardware resolution through probeSupport() (#6569)
This makes it easier to debug hardware resolution issues through the
support page, which can now show hardware resolution. To show the
support page on Chromecast devices, use chromecast-webdriver-cli.
2024-05-09 10:43:37 -07:00
Joey Parrish 975235beb1 ci: Add additional lab Chromecast devices (#6563)
Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-05-09 12:01:22 +02:00
Álvaro Velad Galván 8830ab71f2 test: Improve waitUntilPlayheadReaches function (#6565) 2024-05-09 11:47:51 +02:00
Joey Parrish 9c1e621c7a test: Fix test environment access to cast.__platform__ (#6553)
This shim requires the latest version of the Chromecast WebDriver Server's receiver app, which can receive messages and proxy async access to `cast.__platform__`.
2024-05-08 14:15:09 -07:00
Álvaro Velad Galván ed939872e1 feat: Add response URI to BAD_HTTP_STATUS error (#6561)
Closes https://github.com/shaka-project/shaka-player/issues/2969
2024-05-08 20:17:36 +02:00
Álvaro Velad Galván 309d7d4c79 test: Improve tests speed (#6557)
This change reduces the duration of the tests by approximately 3
minutes.
2024-05-08 20:09:27 +02:00
Álvaro Velad Galván 8232c600ce fix: Re-add setting playbackRate to 0 to control buffering state (#6546)
Fixes https://github.com/shaka-project/shaka-player/issues/6527
Fixes https://github.com/shaka-project/shaka-player/issues/6355
This reverts commit
https://github.com/shaka-project/shaka-player/commit/6156dced6bddc5e2cd0cc52071295cff63cadfcd.
2024-05-08 11:16:40 +02:00