Commit Graph

2302 Commits

Author SHA1 Message Date
Álvaro Velad Galván 9e2b15ead4 fix(HLS): Fix subtitle timing (#7625)
Simplifies subtitle management for sequence mode and segments mode 
Runs subtitle tests in segments mode as well (Tizen 3.0)

Fixes: https://github.com/shaka-project/shaka-player/issues/7447
2024-11-19 18:36:49 +01:00
Álvaro Velad Galván 72f6e4926d test: Simplification of "HlsParser supports text discontinuity" (#7622) 2024-11-19 12:02:53 +01:00
Álvaro Velad Galván 7f88879f02 test: Fix Tizen HLS interstitial test (#7620) 2024-11-19 11:16:40 +01:00
Álvaro Velad Galván 2260aa9cf6 feat: Update usage of minBufferTime according to the DASH spec (#7616)
Related to
https://github.com/shaka-project/shaka-player/issues/7602#issuecomment-2479518970

From 23009-1:

The value of the minimum buffer time does not provide any instructions
to the client on how long
to buffer the media. The value however describes how much buffer a
client should have under
ideal network conditions. As such, MBT is not describing the burstiness
or jitter in the network,
it is describing the burstiness or jitter in the content encoding.
Together with the BW value, it is
a property of the content. Using the "leaky bucket" model, it is the
size of the bucket that makes
    BW true, given the way the content is encoded
2024-11-19 10:47:18 +01:00
vlazh 13186bd403 feat: Add 'downloadcompleted' event (#7609)
Closes #7608
2024-11-18 08:41:24 +01:00
Álvaro Velad Galván d8a14b0a45 fix(DASH): Fix playback after DASH period eviction (#7603)
Fixes https://github.com/shaka-project/shaka-player/issues/7516 in a
simpler way

Reverts
https://github.com/shaka-project/shaka-player/commit/5eff0384d04e22a971336c90aae0a83db2a451d5
Reverts
https://github.com/shaka-project/shaka-player/commit/037193c2d601e02c8611a4527dcb04d32adbbd27
2024-11-15 13:23:40 +01:00
Álvaro Velad Galván 8b3dd8bd90 test: Update hls interstitial asset to avoid issues with the ad (#7582) 2024-11-14 10:05:19 +01:00
ncocaign 037193c2d6 test: Add unit tests for DASH period eviction (#7589)
Add test related to https://github.com/shaka-project/shaka-player/commit/5eff0384d04e22a971336c90aae0a83db2a451d5
Fixes https://github.com/shaka-project/shaka-player/issues/7516
2024-11-13 13:42:09 -08:00
ncocaign 5eff0384d0 fix(DASH): Fix playback after DASH period eviction (#7519)
With this change, closeSegmentIndex() of all streams of a removed period
are defered in StreamingEngine.onUpdate_()

Fixes #7516
2024-11-13 19:14:15 +01:00
Álvaro Velad Galván ac5dac7c36 test: Update mpd alternate asset to avoid gaps and issues with the ad (#7581) 2024-11-13 18:02:50 +01:00
Joey Parrish 11a7b926e8 feat: Add config to ignore hardware resolution (#7572)
For some niche cases where content is only available at resolutions
beyond the device's native resolution, and you are confident it can be
decoded and downscaled, this flag can allow playback when it would
otherwise fail.
2024-11-12 14:25:32 -08:00
Álvaro Velad Galván cb66f471a2 perf: Improve performance when parsing EMSG (#7557)
With the change, we reuse MediaSource's MP4 parsing code to avoid
parsing everything twice.
It will also help with the implementation of
https://github.com/shaka-project/shaka-player/issues/7556 in the future.
2024-11-12 09:59:50 +01:00
Álvaro Velad Galván 5024184363 feat: Enable audio groups by default (#7549)
This fixes the audio selection in Shaka Player History live stream

Related to https://github.com/shaka-project/shaka-player/pull/5620
2024-11-06 13:20:30 +01:00
Álvaro Velad Galván 5c2b83277a chore: Simplify and remove optional parameters in AdaptationSetCriteria to avoid future problems (#7548) 2024-11-06 11:09:29 +01:00
theodab 2ad1eff39e feat(preload): Wait for prefetches when preloading (#7533)
Previously, the PreloadManager would consider a preload "finished" after a few major files like the manifest had been preloaded. It would start prefetching some segments, but wouldn't wait on it to notify the developer.
This PR changes the PreloadManager so that
PreloadManager.waitForFinish won't return until the prefetched segments have finished loading.
Because of that, this also better surfaces errors thrown during segment prefetching, when preloading.

Issue #7520
2024-11-05 04:13:02 -08:00
Álvaro Velad Galván 3c6b87dbb7 test: Enable AC-3 and EC-3 in Edge Windows (#7536) 2024-11-04 13:20:39 +01:00
Álvaro Velad Galván 1497148eee fix(UI): Disable fullscreen button conditionally when playing ads (#7534)
Only disable fullscreen button when the devices doesn't support the
standard Fullscreen API and playing an ad that use another media element

Fixes https://github.com/shaka-project/shaka-player/issues/6133
2024-11-04 12:54:35 +01:00
Joey Parrish d7400fe28d test: Disable failing transmuxer test (#7530)
This is generating too much noise, and we do not yet know how to fix it.

Issue #7462
2024-11-01 09:37:00 -07: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
Á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 8c62370ec5 fix: Fix reset MSE to last independent segment (#7494) 2024-10-24 20:32:42 +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 4e6e37c0ce feat(UI): Add close button to statistics panel (#7482) 2024-10-23 21:31:36 +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 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.
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
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
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
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
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
Wojciech Tyczyński 1749315d33 test: Fix lingering timer test leak (#7402) 2024-10-07 19:07:50 +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
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
theodab b9ba66f211 fix(preload): Set manifest before initializing DRM (#7359)
Previously, there were situations where, when handling `trackschanged` events, the manifest would not yet have been
copied from the preload manager to the player. This would prevent developers from properly handling those events.

This PR changes the order of operations slightly, such that the manifest is copied over earlier.
2024-09-24 23:27:13 -07:00
Álvaro Velad Galván fc4893d538 feat: Remove streaming.parsePrftBox config (#7358)
The site code is changed to use a parser that is always used and thus we
avoid having a configuration that is not necessary.
2024-09-24 20:30:32 +02:00
/zɒ̃ge/ c15ca1dd18 fix: Active track state on variantchanged and adaptation events (#7350)
This change ensures that the active states of tracks for
"variantchanged" and "adaptation" events are accurate.
2024-09-23 16:15:32 +02:00
Iragne e02367cc1e fix(dash): live to vod transition seek start (#7347)
Fixes https://github.com/shaka-project/shaka-player/issues/7346

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-09-23 08:44:49 +02:00
Álvaro Velad Galván e2413ed5f2 feat(HLS): Make dummy streams for tags representing muxed audio (#7343)
Close https://github.com/shaka-project/shaka-player/issues/5836
2024-09-20 23:58:56 +02:00
Joey Parrish d994f7185e chore: Improve logging around test setup failures (#7344)
If we fail certain actions during test setup, we should log those
unconditionally through Karma's dump() function, and not just when
browser console logs are enabled with --enable-logging.

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-09-20 11:15:20 -07:00
Joey Parrish cc3dc1de31 test: Fix uncaught errors while testing on Cast (#7345)
We get strange uncaught errors sometimes on Cast devices. These are
unreadable "script error" events that have nothing to do with our tests
(see https://sentry.io/answers/script-error/), and we intend to ignore
them.

However, our existing logic to ignore those is not sufficient, because
in addition to our own error handler (via
window.addEventListener("error")), Jasmine has its own unconditional
error handler (via window.onerror).

To take complete control over how these are handled, we need to remove
Jasmine's handler.

Jasmine's handler is installed at the top of its execute() function, so
our top-level beforeAll() is the best place to remove it.
2024-09-20 09:34:08 +02:00
Joey Parrish e297339cb3 test: Don't fail tests when cast property can't be deleted (#7342)
On some real Cast devices, you can't delete window.cast. This is fine,
and shouldn't cause the test to fail. If this happens, skip the test
instead. The test, which mocks everything including the platform
detection and the Cast API, is still valid on platforms where we can get
away with those mocks.
2024-09-19 08:10:14 +02:00
Iragne 330e4876f2 fix(Tizen): Adding gapPadding to gap manager to solve Tizen issue (#7331)
Default value for Tizen set to 2 and can be configurable Solving issue
associated to gapManager not able to pass the GAP on Tizen

Fixes https://github.com/shaka-project/shaka-player/issues/7124
2024-09-18 12:35:09 +02:00
Álvaro Velad Galván 3a146c2ee6 fix: Fix external image track mime type (#7333) 2024-09-18 08:02:44 +02:00
Álvaro Velad Galván 013b3c7f22 feat(Offline): Allow store external thumbnails (#7322)
Related to https://github.com/shaka-project/shaka-player/issues/2016
2024-09-17 09:44:53 +02:00