Commit Graph

3912 Commits

Author SHA1 Message Date
Álvaro Velad Galván 075713f0e0 fix(Ads): Fix duplicate Ads when playing interstitials through native HLS player (#7527) 2024-10-31 13:18:42 +01:00
Álvaro Velad Galván 597e129bd6 feat: Add preferredTextFormats config (#7523)
Close https://github.com/shaka-project/shaka-player/issues/4650
2024-10-31 08:53:55 +01:00
Wojciech Tyczyński a6cf9cbfd3 feat: Enable AirPlay in MSE (#7431)
Fixes #5022

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-10-31 08:40:23 +01:00
Álvaro Velad Galván 5ee6a4d2f5 perf(Ads): Reduce latency for interstitial to start playing (#7525)
Previously we relied on an event triggered by the video itself which was
launched 4 to 60 times per second, which meant that we had an update (in
the worst case) of 250ms. Now we use a timer that is triggered every
25ms, which considerably reduces the delay.

This is important so as not to show anything from the original ad's
live.
2024-10-31 08:32:00 +01:00
Álvaro Velad Galván 20ab35afb3 chore(Ads): Add starting interstitials log (#7524) 2024-10-30 16:48:03 +01:00
Álvaro Velad Galván 7c6dac55b6 fix(AirPlay): Don't show subtitles on the player when using AirPlay (#7514)
This only happens when using src= mode
2024-10-29 10:38:09 +01:00
Álvaro Velad Galván 6d0ee517a5 fix(MSS): Fix playback of some MSS streams (#7517)
With this change, no default flags are used. It seems that when a sample
has to use the default flags, in Safari, it can cause problems with MSS.
With HLS this does not happen.

Fixes https://github.com/shaka-project/shaka-player/issues/7509
2024-10-29 09:25:19 +01:00
Iragne 7b38ca8b49 feat(HLS): Add the update period for HLS manifest (#7498)
Create the update period for hls parse

Close https://github.com/shaka-project/shaka-player/issues/7505
2024-10-25 08:55:09 -07:00
Álvaro Velad Galván b980f6785c fix(UI): Remove buffering spinner when playing a client side ad (#7507) 2024-10-25 08:40:06 -07:00
Álvaro Velad Galván cf2204200e fix: Reset MSE when we disconnect from Remote Playback (#7506) 2024-10-25 08:39:46 -07:00
Álvaro Velad Galván 0ff61a52b7 fix: Fix support of getAllThumbnails when using shaka.dash.TimelineSegmentIndex (#7508) 2024-10-25 08:38:29 -07:00
Álvaro Velad Galván b04caa3b74 fix: Do not allow MSE operations when using Remote Playback (#7503)
Related to https://github.com/shaka-project/shaka-player/issues/5022
2024-10-25 15:21:15 +02:00
Álvaro Velad Galván e14a8eb6f7 fix: Don't use info from MSE mode when using Remote Playback (#7504)
Related to https://github.com/shaka-project/shaka-player/issues/5022
2024-10-25 13:13:42 +02:00
Álvaro Velad Galván b2b423890c fix(HLS): Ignore DATERANGE with errors instead of fire an error (#7499) 2024-10-25 11:22:17 +02:00
Álvaro Velad Galván 6d9fa2f75d chore: Simplify listener management to be able to use the same basic listeners in MSE and src= (#7501)
Related to https://github.com/shaka-project/shaka-player/issues/5022
2024-10-25 11:11:44 +02:00
Álvaro Velad Galván 30068a1cb5 fix(AirPlay): Prefer Playback Remote API for closeOpenSessions (#7500) 2024-10-25 11:11:33 +02:00
Álvaro Velad Galván 8c62370ec5 fix: Fix reset MSE to last independent segment (#7494) 2024-10-24 20:32:42 +02:00
Álvaro Velad Galván 2183a324d3 chore: Unify getBuffered_ behaviour in MediaSourceEngine to avoid issues (#7496) 2024-10-24 20:29:36 +02:00
Álvaro Velad Galván bc90c87d2a fix: Allow streaming again when we reset MSE (#7495) 2024-10-24 20:29:23 +02:00
Álvaro Velad Galván 576e4a5ea8 fix(Ads): fix pre-roll identification when using src= (#7493) 2024-10-24 20:21:26 +02:00
Álvaro Velad Galván 5e1fc5a297 fix: Fix disable stream when no manifest (#7497) 2024-10-24 20:20:57 +02:00
Álvaro Velad Galván 334a00e1b1 fix(Ads): Limit interstitial duration to actual duration if available when using src= (#7488)
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.

Related to https://github.com/shaka-project/shaka-player/pull/7480
2024-10-24 12:15:52 +02:00
Álvaro Velad Galván fbc6179aa6 feat(Demo): Add new asset with DASH-FairPlay (#7487)
Related to https://github.com/shaka-project/shaka-player/pull/7454

Thanks to @gmcgarry
2024-10-24 11:18:42 +02:00
Álvaro Velad Galván b1d3a3ac87 fix(MSS): Fix timeline repetitions (#7484)
Fixes https://github.com/shaka-project/shaka-player/issues/7483
2024-10-24 10:00:36 +02:00
Gregory McGarry c9f7723d23 feat: Support Fairplay DRM in DASH manifest. (#7454)
Support Fairplay DRM for DASH, specifying the license server in the
manifest using dashif:Laurl.
2024-10-24 09:36:35 +02:00
Álvaro Velad Galván d502e9b689 fix(MSS): Don't allow prefetch segments with self-generated data (#7485) 2024-10-24 09:30:09 +02:00
Á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 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 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
Á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 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
Á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
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
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
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 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 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
Wojciech Tyczyński 6a4e95bfae fix: Reduce calls to EME by ignoring MIME type in MediaKeySystemAccess cache (#7374)
Fixes #7325
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