Commit Graph

2278 Commits

Author SHA1 Message Date
Á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
Álvaro Velad Galván f8e3aa4b61 fix(DASH): Clear usedPeriodIds when period is removed from the manifest (#7305)
Issue https://github.com/shaka-project/shaka-player/issues/6239
2024-09-13 15:42:23 +02:00
Álvaro Velad Galván d559366168 perf(DASH): Delete old matchedStreams (#7301)
Issue: https://github.com/shaka-project/shaka-player/issues/6239
2024-09-13 11:48:41 +02:00
Álvaro Velad Galván e7229fbc18 fix(DASH): Allow mixing SegmentTemplate-SegmentTimeline with SegmentTemplate-numbering (#7286)
Fixes https://github.com/shaka-project/shaka-player/issues/7192
2024-09-12 09:45:29 +02:00
theodab c9998f9281 fix(DASH): Evict empty indexes in MetaSegmentIndex (#7272)
Issue #6239

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-09-11 11:03:47 +02:00
Wojciech Tyczyński c541b1c9b4 fix(DASH): Use presentationTimeOffset in EventStream (#7282)
Fixes #7277
2024-09-11 11:03:33 +02:00
Álvaro Velad Galván a88be00653 fix(DASH): Avoid adding originalId when it is not necessary (#7281)
Issue https://github.com/shaka-project/shaka-player/issues/6239
2024-09-11 09:44:02 +02:00
David HM Morgan fdf68d1994 fix(TTML): Fix absence of conversion of alpha (transparency) from 0-255 -> 0-1 (#7280)
Fixes #7279
2024-09-10 15:50:46 +02:00
Álvaro Velad Galván 3590aeea3d feat(UI): Use the lang= attribute to help screen-readers recognize localized labels (#7267)
Close https://github.com/shaka-project/shaka-player/issues/1860
2024-09-09 08:53:13 +02:00
Álvaro Velad Galván bb78f9f630 test: Fix flaky test in Tizen (#7268) 2024-09-06 17:26:42 +02:00
Álvaro Velad Galván 17d5cb3c86 chore: Raise screenshot threshold for native text (#7265)
The screenshots with native text rendering don't always trigger our
threshold even when they should. That's because the native text tends to
be much smaller. Therefore the matching threshold should be higher to
make these smaller regions of text more sensitive to change.

This raises the threshold from 95% (still used for DOM-based) to 97% for
native text. I believe this could have caught some of the changes that I
only caught later with manual review of screenshots.

Original author: @joeyparrish Thanks!
2024-09-06 02:57:48 +02:00
Álvaro Velad Galván d5ed8edaf5 feat(DASH): Disable xlink processing by default (#7264)
Since xlink processing is slow and very few streams use it, it is best
to disable this functionality by default to improve performance
especially on STB or SmartTV devices.
2024-09-05 12:05:43 +02:00
Álvaro Velad Galván 7b07614532 feat: Add manifest.disableIFrames config (#7255) 2024-09-04 16:14:13 +02:00
Álvaro Velad Galván 3f7915ba09 chore: Update some native screenshots (#7250) 2024-09-03 15:48:25 +02:00
Álvaro Velad Galván 464b317fba test: Update SAMPLE-AES test asset (#7246)
It appears that playing a DRM muted audio-only asset fails on some
platforms.
Switching from an audio asset to a video asset.

Fixes https://github.com/shaka-project/shaka-player/issues/7152
2024-09-03 08:55:15 +02:00
Álvaro Velad Galván 67859c987c feat(HLS): Add I-Frame playlist support (#7230) 2024-08-30 08:35:24 +02:00
Wojciech Tyczyński cd2fc715dc fix(DASH): Use proper namespace when mapping TXml node to Element (#7240) 2024-08-29 15:23:20 +02:00
Álvaro Velad Galván cb5aae47c0 feat(DASH): Support trick-mode per resolution (#7224) 2024-08-28 14:59:40 +02:00
Wojciech Tyczyński b2502fd0a0 fix(DASH): Fix MPD Patch when SegmentTemplate is shared between Representations (#7218)
Fixes #7214
2024-08-28 13:29:10 +02:00
Julian Domingo 7ba7e618d0 fix: Correct the behavior to defer closeSegmentIndex() calls during updates (#7217)
Resolves the issues reported by
https://github.com/shaka-project/shaka-player/pull/7213, which correctly
fixes https://github.com/shaka-project/shaka-player/issues/7156.

The latest comment
https://github.com/shaka-project/shaka-player/issues/7156#issuecomment-2311341269
goes further into detail on the problems of the initial PR.
2024-08-27 21:04:50 -07:00
Álvaro Velad Galván cdbbe232b1 fix: Fix support for Dolby Vision based in VVC (#7212)
Info from
https://dolby.my.salesforce.com/sfc/p/#700000009YuG/a/4u000000l6G4/4R18riPaaW3gxpVx7XwyQLdEITLFjB.w.Si0LoQR5j8
2024-08-26 22:53:14 +02:00
Joey Parrish 2d2bddd7f1 fix: Revert change that caused stalls with "cannot find endTime" (#7213)
Reverts shaka-project/shaka-player#7157 ("fix: Defer
`closeSegmentIndex()` for old streams during ABR switches when segment
fetches are ongoing")

A regression was reported in video-dev.org Slack, and they narrowed it
down to this PR. Playing
https://d24rwxnt7vw9qb.cloudfront.net/v1/dash/e6d234965645b411ad572802b6c9d5a10799c9c1/All_Reference_Streams/4577dca5f8a44756875ab5cc913cd1f1/index.mpd
with this PR, reportedly:

> playback stops rendering with a warning "cannot find segment endTime"
just a few seconds prior to the rendering alt.

This was initially observed on Samsung TVs, but then later on LG and
even in Chrome.
2024-08-26 10:08:51 -07:00
Álvaro Velad Galván abdabb05b6 fix(HLS): Calculate the delay based on the sum of the segment lengths (#7209)
Fixes https://github.com/shaka-project/shaka-player/issues/7206
2024-08-26 15:00:26 +02:00
Álvaro Velad Galván 28523a3564 feat: Add video codec preference array at same resolution and bitrate (#7204) 2024-08-26 12:10:22 +02:00
Álvaro Velad Galván 8ca1b74198 fix: Fix normalized codec for VVC (#7201) 2024-08-23 18:18:55 +02:00