Commit Graph

6235 Commits

Author SHA1 Message Date
Álvaro Velad Galván ad9f2ac039 fix(Ads): Limit interstitial duration to actual duration if available (#7480)
Currently, if the interstitial lasts 30 and we have a stream that lasts
31 seconds, we would go back to live after the interstitial, but with 1
extra second of latency. This PR solves this by limiting the play range
to 30.
2024-10-23 21:31:51 +02:00
Álvaro Velad Galván 4e6e37c0ce feat(UI): Add close button to statistics panel (#7482) 2024-10-23 21:31:36 +02:00
Álvaro Velad Galván 3107de3678 feat(Ads): New HLS interstitial DATERANGE attributes for Skip Button (#7467)
Close: https://github.com/shaka-project/shaka-player/issues/7466
2024-10-23 20:23:33 +02:00
Álvaro Velad Galván ba369584bd fix(UI): Don't enable StatisticsButton when create overflow menu (#7481) 2024-10-23 20:19:00 +02:00
Álvaro Velad Galván 2394ec2b49 fix(Ads): Disable interstitials when using AirPlay (#7479) 2024-10-23 20:17:20 +02:00
Álvaro Velad Galván 2b56dcdc08 fix: Fix metadata timing when using TS (#7478)
Fixes https://github.com/shaka-project/shaka-player/issues/7473
2024-10-23 20:13:02 +02:00
Wojciech Tyczyński fac9d8472d fix: Fix Windows detection (#7476)
Fix Windows detection on platforms which do not implement
`userAgentData` & disable explicitly one workaround on Xbox (as Xbox is
also Windows).
2024-10-23 12:58:48 +02:00
theodab 615aa8e8ec chore: Update issue template to mention geo-blocks (#7474) 2024-10-23 11:49:19 +02:00
Álvaro Velad Galván 7d8510b461 fix(Ads): Don't load useless segments when using playoutLimit on interstitial ads (#7469) 2024-10-23 08:12:26 +02:00
Álvaro Velad Galván 25e7620029 fix(Ads): Allow preload and remove old interstitials when playing a interstitial (#7465) 2024-10-23 08:11:58 +02:00
Álvaro Velad Galván 333857923e fix(UI): Hidden cursor correctly (#7464)
Fixes https://github.com/shaka-project/shaka-player/issues/7394
2024-10-23 08:11:33 +02:00
Joey Parrish 2d334407f0 docs: Add a section to the UI tutorial (#7472)
This fixes minor formatting and adds a section with links to a real
example of Shaka UI usage with some unique features.
2024-10-23 08:11:20 +02:00
Álvaro Velad Galván 322ea6b616 fix: Fix select HLG tracks when using AUTO hdr level (#7470)
Fixes https://github.com/shaka-project/shaka-player/issues/7468
2024-10-23 08:10:39 +02:00
Joey Parrish afe7d37f3e ci: Do not cancel other Selenium jobs (#7463)
When we have two jobs queued for FirefoxWindows, for example, we want
one of them to wait, not cancel each other. The only time you would
cancel one is if the other is from the same branch/PR after an update.
Right now, only the browser name is used in the key, so we should never
cancel another job with the same key.

This fix lets us start tests for multiple release PRs at once.
v4.11.9-main v4.10.23-main
2024-10-21 11:23:47 -07:00
Álvaro Velad Galván 9de2aac6c6 chore: Remove IMA tests (#7461)
Since our tests already test VAST and VMAP this is no longer necessary,
and the tests were disabled because the IMA library is buggy in Tizen.
On the other hand, removing the IMA load reduces the test loading time.
v4.9.30-main
2024-10-21 18:54:31 +02:00
Álvaro Velad Galván 04a39aa6cc chore: Clean up code (#7459) 2024-10-21 09:38:49 -07:00
Álvaro Velad Galván 6088c1db1a fix(DRM): Fix persistent licenses not working for online playback (#7457)
Fixes https://github.com/shaka-project/shaka-player/issues/7429
2024-10-21 15:50:28 +02:00
Álvaro Velad Galván 6e62cfa004 fix(UI): Hidden cursor correctly when no touch screen (#7458)
Fixes https://github.com/shaka-project/shaka-player/issues/7394
2024-10-21 14:13:53 +02:00
Gregory McGarry 669b7b3829 fix: calculations of channel count for DASH AudioChannelConfiguration elements. (#7421)
Fix tag:dolby.com,2014:dash:audio_channel_configuration:2011 scheme to
correctly handle bits that represent channel pairs according to document
at
[dolby.com](https://ott.dolby.com/OnDelKits/DDP/Dolby_Digital_Plus_Online_Delivery_Kit_v1.5/Documentation/Content_Creation/SDM/help_files/topics/ddp_mpeg_dash_c_mpd_auchlconfig.html)

Add tag:dolby.com,2015:dash:audio_channel_configuration:2015 scheme
according to ETSI TS 103 190-2 v1.2.1, Annex G.3

Test stream is available here:
[manifest.mpd](https://content.media24.link/ac4_512/manifest.mpd)
2024-10-21 09:23:57 +02:00
Joey Parrish d81c9cb369 test: Deduplicate platform support check (#7450)
This deduplicates a platform support check that was run in
player_integration.js, and declares the pre-existing central support map
in an extern so we can clean up its use.

This stops a DRM integration test from timing out on FirefoxWindows. It
still gets skipped, though, due to a failing Widevine check, so there
will be follow-on work for that.

Issue #7449
2024-10-21 09:21:56 +02:00
Joey Parrish 072fe75e69 test: Fix DOM autosetup test flake (#7448)
The promise for DOM auto setup tests doesn't guarantee that load() is
complete, only that we started it. So checking video duration causes
flake, in particular on slow devices like Tizen. Instead, check for the
player to have an asset URI.
2024-10-21 09:05:16 +02:00
Álvaro Velad Galván e883fedd69 feat(UI): Added Mute button to context menu and overflow menu (#7439)
Close https://github.com/shaka-project/shaka-player/issues/7407
2024-10-18 18:36:51 +02:00
Álvaro Velad Galván 85282ceb48 fix(UI): Fix the position of save video frame in the overflow menu (#7438)
This change is necessary because the remote playback button is not in
the initial list, and this causes it to be positioned in last place when
we do not want this to happen.
2024-10-18 18:23:11 +02:00
Álvaro Velad Galván 263c6a6a0f fix(UI): Disable save frame when using remote playback (#7433) v4.11.8-main v4.10.22-main 2024-10-18 12:39:58 +02:00
Iragne d454514a1f fix: Seek delay for Cast Nest hub (#7423)
Fuchsia devices need more time to seek. 1 second is not enough and 3 look a correct value
related to this
https://github.com/shaka-project/shaka-player/issues/7424
2024-10-18 11:43:26 +02:00
Álvaro Velad Galván ec5186cdc0 docs: Update roadmap (#7432) 2024-10-18 11:42:35 +02:00
Joey Parrish 0f2ee89df9 fix(UI): Fix auto-load with source tags (#7430)
In 4425dca2, we broke auto-loading content with `<source>` tags or
`src=` in the UI, such that we tried to load content before we had
attached a video element. That was almost a year ago. Oops!

This also adds an appropriate unit test.
2024-10-18 10:00:15 +02:00
Iragne 2d14dd5480 fix(DASH): Live to vod transition (#7404)
The PR is solving playback error in a Multi period manifest when the
start time is not 0.
Additionally, solving the error code 3015 due to the clear of the buffer
during the playback.
Fixes https://github.com/shaka-project/shaka-player/issues/7401
2024-10-15 12:49:38 +02:00
Iragne 051a8c5edd fix(DASH): Live DASH allows segment overlap in the updated manifest for first new segments (#7405)
fix(DASH): Live DASH allows segment overlap in the updated manifest for
first new segments to avoid creating GAP with ms inaccurate manifest vs
Segment duration and start time

Fixes https://github.com/shaka-project/shaka-player/issues/7397
2024-10-15 12:49:17 +02:00
Wojciech Tyczyński 445b0ce67f feat: Use source tags instead of src attribute (#7406)
Needed for #5022 

This PR does not enable AirPlay on MSE yet, but moves shaka from using
`src` attribute to `source` tags. With this change we will be able to
enable it more easily, as `src` and `source` should not be used
together.
2024-10-15 12:47:10 +02:00
Iragne ce38dd980e fix: Export getFetchedPlaybackInfo (#7418)
Fixes #7416
2024-10-11 09:54:01 -07:00
Wojciech Tyczyński c90d5ff82a fix: Disable smooth codec switch if changeType is unavailable (#7414) 2024-10-11 14:58:23 +02:00
Wojciech Tyczyński 7268a2b64d fix(PS4/5): Disable smooth codec switch on PS4/5 (#7413)
Recent tests have shown that although `SourceBuffer.changeType()` exists on PS5, calling it when switching between AAC and EC3 always throws an exception. Disable smooth codec switch on that platform together with PS4.
2024-10-11 04:45:34 -07:00
Wojciech Tyczyński 16753e75ec test: Disable codec switch smooth test if changeType() is unavailable (#7410)
Previously we were disabling tests only by using
`supportsSmoothCodecSwitching()` method, but it checks only user agent
and not API existence.
2024-10-10 08:05:04 -07:00
Aliaksandr Trush 51d00b8f08 feat(i18n): Add Belarusian translation (#7409) 2024-10-10 08:04:07 -07:00
dependabot[bot] 6dc0e6f6bb build(deps): bump cookie and socket.io (#7411) 2024-10-10 07:59:48 -07:00
Wojciech Tyczyński e7f78258ee fix: Fire PRFT event every time (#7408)
Always raise prft events so consumers can have access to the wall clock
time.
2024-10-10 08:33:07 +02:00
Wojciech Tyczyński 072f46c702 fix(docs): Add mising description of PRFT event (#7403) 2024-10-09 10:43:18 +02:00
Wojciech Tyczyński 1749315d33 test: Fix lingering timer test leak (#7402) 2024-10-07 19:07:50 +02:00
Wojciech Tyczyński 7f8b4c8267 chore: Remove duplicated code in MediaSourceEngine (#7393) 2024-10-03 13:08:56 -07:00
Wojciech Tyczyński 96da45a182 fix(UI): Restore missing AirPlay button (#7389) 2024-10-03 10:15:46 +02:00
/zɒ̃ge/ 694539a284 test: Add test case for exclude TIMEOUT errors when disabling streams (#7387)
Relates to #7368, #7369
2024-09-26 17:49:07 -07:00
Wojciech Tyczyński 6a4e95bfae fix: Reduce calls to EME by ignoring MIME type in MediaKeySystemAccess cache (#7374)
Fixes #7325
v4.11.7-main v4.10.21-main v4.9.29-main v4.9.2-caf2-main
2024-09-26 11:28:07 -07:00
Joey Parrish 67826acbe7 fix: Exclude TIMEOUT errors when disabling streams (#7369)
In #7368, we get stuck in a loop loading forever. This regression was
introduced in v4.4.0 and affects all v4.4, v4.5, v4.6, v4.7, and v4.8
releases, as well as v4.9.0-28, v4.9.2-caf1, v4.10.0-20, and v4.11.0-6.

The loop is composed of these elements:

1. an error that triggers disabling a stream
2. an error that doesn't resolve itself over time
3. an error that is slow enough to trigger that the first streams get
re-enabled
4. VOD content that doesn't change while we sit in the loop
5. enough streams to avoid exhausting them during the cycle

Only `TIMEOUT` errors can trigger this bug AFAICT, so we should exclude
those from the logic to disable streams. Note also that live streaming
already retries indefinitely by default, and that normal ABR logic will
change streams for us if we timeout due to a lack of bandwidth.

Disabling streams on `TIMEOUT` was suggested initially in #4764, but was
not a requirement of the OP. It was added out of caution in #4769, but
not really vetted. Because it was not ever explicitly needed, excluding
it is not a regression.

Closes #7368
2024-09-26 11:26:36 -07:00
Joey Parrish 1db012dafb test: Fix secondary error thrown from unhandled errors (#7381)
In #7345, we disabled Jasmine's global error handler. However, jasmine
still tries to call this. So instead of replacing it with null, replace
it with a stub.

Also add comments about why we are able to do this and still handle
global errors in our own way.
2024-09-26 11:02:48 -07:00
Wojciech Tyczyński c54831500d fix(preload): Resolve manifest promise sooner (#7380)
Resolve manifest promise a bit sooner to ensure `player.getManifest()`
returns correct value on `manifestparsed` event.
2024-09-26 12:53:30 +02:00
Álvaro Velad Galván e71dca2146 fix(UI): Don't try to add MediaSessionHandler for PiP when it's not available (#7376) v4.11.6-main v4.10.20-main 2024-09-25 17:01:22 +02:00
Álvaro Velad Galván 6884721b0e fix(UI): Fix mediaSession metadata update on Firefox (#7375) 2024-09-25 16:47:46 +02:00
Álvaro Velad Galván 53b704f688 fix(Ads): Release interstitials timer correctly (#7373)
Fixes https://github.com/shaka-project/shaka-player/issues/7372
2024-09-25 10:30:55 +02:00
Álvaro Velad Galván 630af7f690 ci: Test PR on Opera (#7366) 2024-09-25 09:26:51 +02:00