Commit Graph

5536 Commits

Author SHA1 Message Date
theodab 03633e47bb feat(text): Add time context to modifyCueCallback (#6252) 2024-02-20 00:37:33 -08:00
Justin Swaney bb712c0283 fix: Fix detection of flac support on Safari (#6250)
When constructing the MediaDecodingConfigurations to query media capabilities in `stream_utils.js`, the spelling of "fLaC" should not change to "flac" on Safari. This is because on Safari the query will return `supported: false` for "flac" but `supported: true` for "fLaC".

This change allows manifests with "fLaC" codecs to work properly on Safari when using MSE / Managed Media Source.

Fixes #6249
2024-02-15 17:17:07 -08:00
Casey Occhialini 5a025fbccd feat: add includeKeys to CMCD config to allow filtering of CMCD data (#6248)
This PR adds the ability to filter/limit the amount of data transmitted
when CMCD is enabled. It matches the functionality provided in
[`dash.js`](https://github.com/Dash-Industry-Forum/dash.js/blob/9e3da3cb35da71d339444158db359bfec63035a0/src/core/Settings.js#L712-L713)
and
[`hls.js`](https://github.com/video-dev/hls.js/blob/dfb384dc765f400ea3d401b790cfc4d53a44410f/src/config.ts#L70-L75)
and addresses concernes raised by video providers: https://github.com/cta-wave/common-media-client-data/issues/122
2024-02-15 13:54:25 -08:00
Álvaro Velad Galván 948660b359 fix: don't double wrap URIs for HLS key requests (#6246)
The `constructSegmentUris` util already returns an array, so the call to `makeRequest` was being made with an array of arrays. This wasn't causing errors for requests that use the `fetch` plugin, since `fetch` will stringify the first argument if it's an array. But the data URI plugin expects to receive a string and calls `.split()` on it, so keys using data URIs throw an error if the URI is wrapped in an array.

Thanks to https://github.com/shaka-project/shaka-player/pull/6243 and @andrew0
2024-02-14 09:06:57 -08:00
theodab fd57e7f48a fix(preload): Fix timing of call to stopQueuingLatePhaseQueuedOperations (#6238)
This method should be called after the load is successful, not if the
load fails.
This also adds a new test that ensures that onKeyStatus_ messages work
correctly, as a regression test.
This was exposed by the test failures, but was not the cause of them.

Issue #6225
2024-02-12 11:56:09 -08:00
Julian Domingo 93d616e954 feat: add an option specifying when source buffer removals happen (#6242)
Increases the default required removal duration from `0.01` => `1.0`.

Closes #6240.
2024-02-12 10:00:44 -08:00
Joey Parrish 83c02b8a5c test: Fix seek range test flake on Safari (#6237)
Closes #6227
2024-02-08 09:35:21 -08:00
Joey Parrish 4dc8401dd4 test: Fix flaky test for BufferingObserver (#6235)
This adds a mock for Date.now. Any test using Date needs to have Date
mocked to avoid flake.

Closes #6226
2024-02-08 09:34:56 -08:00
theodab 36b7367ebd fix(preload): Only start preload if manager exists (#6222)
Also fixes how demo cards handle src= preloads.
2024-02-06 12:27:11 -08:00
Joey Parrish 33a8c5760c ci: Fix Edge launcher for local testing and GitHub CI (#6221)
This updated version of karma-local-wd-launcher incorporates
https://github.com/shaka-project/karma-local-wd-launcher/pull/65 to
supply a path to the Edge binary on all platforms. This fixes local
testing and GitHub CI testing of Edge.

Though the tests run once more, there are still some test failures that
need to be dealt with.
2024-02-06 12:24:14 -08:00
Joey Parrish 59451e6cb3 ci: Restore Edge on Windows in the lab (#6220)
By specifying the binary path and also merging
https://github.com/shaka-project/shaka-lab/pull/47, we are able to
restore Edge on Windows in the lab.
2024-02-06 10:53:05 -08:00
Joey Parrish 5b7d7b2316 ci: Temporarily disable Edge on Windows in the lab (#6216)
shaka-lab-hub reports:

```
/wd/hub/session java.io.IOException:
org.openqa.grid.common.exception.GridException:
Cannot extract a capabilities from the request:
```

Generally, there should be a request object after this, but here it is
blank. It's not clear why or how this could be. There are no errors from
shaka-lab-node on Windows.
2024-02-06 10:17:08 -08:00
theodab 489b11a959 feat: Add preload system to player (#5897)
Adds a new player method, preload. This asynchronous method creates a PreloadManager object, which
will preload data for the given manifest, and which can be passed to the load method (in place of an asset URI)
in order to apply that preloaded data. This will allow for lower load latency; if you can predict what asset will
be loaded ahead of time (say, by preloading things the user is hovering their mouse over in a menu),
you can load the manifest before the user presses the load button.
Note that PreloadManagers are only meant to be used by the player instance that created them.

Closes #880

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
v4.7.9-main v4.6.13-main
2024-02-02 00:27:29 -08:00
Gary Katsevman 8fc292bc28 feat: vod dynamic playback rate buffer control (#6172)
Dynamically update playback rate to keep the buffer full.

Related to https://github.com/shaka-project/shaka-player/issues/6131
2024-02-02 08:53:21 +01:00
Álvaro Velad Galván 278c7bc8cf feat: Detect maximum HW resolution automatically on some platforms (#6180) 2024-02-01 19:47:53 +01:00
Wojciech Tyczyński 62ab04895a fix: Fix gitpkg.now.sh dependencies (#6211)
gitpkg.now.sh dependencies started to have broken SHA for some reason which breaks CI infrastructure here & in our fork.
2024-02-01 09:24:13 -08:00
Álvaro Velad Galván 67164483f3 docs: Add specific doc on UI localization strategies (#6203)
Closes https://github.com/shaka-project/shaka-player/issues/3464
2024-02-01 17:49:51 +01:00
Álvaro Velad Galván fc38aeebe3 feat!: Prefer MSE HLS over native HLS in Apple platform when not encrypted (#6188)
Our HLS implementation is stable and robust enough that we can enable it
by default.
2024-02-01 09:45:16 +01:00
Álvaro Velad Galván 32f8dc5cf4 revert: Add chapter titles and dividers on the seek bar (#6208)
re-open: https://github.com/shaka-project/shaka-player/issues/3597
2024-02-01 08:36:53 +01:00
Joey Parrish 62be6da72b docs: Add missing license details after tXml import (#6206) 2024-01-31 13:22:40 -08:00
Álvaro Velad Galván 202f3082fd feat: Add disableTextPrefetch config (#6197) 2024-01-31 19:35:48 +01:00
Álvaro Velad Galván d9388378e7 fix: Fix DRM workaround for Xbox with Dolby Vision boxes (#6201) 2024-01-31 19:35:35 +01:00
Álvaro Velad Galván cac1fd0f7f fix: Prevent license requests for unplayable variants (#6204)
Fixes https://github.com/shaka-project/shaka-player/issues/3429
2024-01-31 19:35:22 +01:00
Álvaro Velad Galván acf1977887 test: Fix some tests in Safari 17 (#6202) 2024-01-31 19:35:06 +01:00
Álvaro Velad Galván b508d482c6 fix: Fix SegmentPrefetch in some cases (#6199) 2024-01-31 19:34:52 +01:00
Dave Nicholas a1c1620f09 feat: Escape html codes when getting node contents (#6198)
It would appear that the previous `textContent` api transformed html
entities. This PR provides feature parity with the DOMParser approach.
2024-01-31 15:12:16 +01:00
Casey Occhialini 78c12a6265 fix(CMCD): allow session id to be configured (#6192) 2024-01-31 10:21:01 +01:00
Álvaro Velad Galván 844c208d14 fix(Demo): Fix MSS assets (#6194) 2024-01-31 09:56:00 +01:00
Álvaro Velad Galván 47602c6f5e feat!: Remove com.adobe.primetime keysystem (#6189)
`com.adobe.primetime` is not implemented in any browser and no one has
reported any problems in the 8 years of Shaka Player.
2024-01-30 20:02:44 +01:00
Álvaro Velad Galván 038e894e82 feat(CMCD): Add support to rtp parameter (#6184) 2024-01-30 20:02:30 +01:00
Álvaro Velad Galván 0d9efc2831 docs: Add Hisense information to README (#6186) 2024-01-30 20:02:14 +01:00
Álvaro Velad Galván 60fd7fd09c test: Fix some tests in Safari 17 (#6190) 2024-01-30 20:02:02 +01:00
Iragne a3320707b9 fix(DASH): Update dash manifest when minimumUpdatePeriod = 0 (#6187)
Fixes https://github.com/shaka-project/shaka-player/issues/6185
2024-01-30 15:57:02 +01:00
Álvaro Velad Galván 8c93425b2e docs: Update roadmap for 5.0 (#6183) 2024-01-30 13:11:15 +01:00
Álvaro Velad Galván 3537dc0a68 fix(CMCD): Allow reconfigure session ID (#6177) v4.7.8-main v4.6.12-main 2024-01-30 08:53:46 +01:00
Álvaro Velad Galván 8a9f17d48b feat(CMCD): Add support to dl, nrr and nor parameters (#6171) 2024-01-29 18:57:26 +01:00
Álvaro Velad Galván 5b141eb76a fix(Ads): Fix initial ads configuration (#6176)
Related to https://github.com/shaka-project/shaka-player/issues/6169
2024-01-29 18:39:34 +01:00
Álvaro Velad Galván 33b40cfcce fix(CMCD): Fix CMCD for some mimetypes in src= (#6178) 2024-01-29 18:09:52 +01:00
Gary Katsevman a8ab0c824b feat: prefetch audio languages. (#6139)
Closes #6128
2024-01-29 08:35:17 +01:00
Álvaro Velad Galván eb1fef888b fix: Fix wrong aspect ratio in transmuxed videos (#6170)
Fixes https://github.com/shaka-project/shaka-player/issues/6168
2024-01-26 18:39:10 +01:00
Mathieu Côté 08cc34a532 fix: AC-3 audio codec support on Tizen (#6166)
Fixes https://github.com/shaka-project/shaka-player/issues/6160
2024-01-26 15:29:25 +01:00
Dave Nicholas 335eab08ba feat(WebVTT): Handle badly formed VTT (#6147)
Handle remove chevrons that appear as part of the inner text of the
element to avoid parse failure.
2024-01-26 13:01:51 +01:00
theodab bd944d15db feat(text): Add MediaSource.modifyCueCallback (#6167)
This callback gives developers a chance to modify cues after they are
parsed but before they are appended.
2024-01-25 23:36:48 -08:00
Álvaro Velad Galván 658386bf93 fix(HLS): Set the bandwidth correctly for audio/video-only variants (#6165) 2024-01-25 18:41:23 +01:00
Álvaro Velad Galván 07ebdb1d2c fix: player Dropping Variant (better codec available) when it should not (#6163)
Fixes https://github.com/shaka-project/shaka-player/issues/6162
2024-01-25 18:41:08 +01:00
Gary Katsevman 65981e2aae feat: add a live sync panic mode (#6149)
This PR introduces a live sync panic mode
(`streaming.liveSyncPanicMode`) which sets the player into the
`streaming.liveSyncMinPlaybackRate` while we're within the
`streaming.liveSyncPanicThreshold`. This should help reduce the change
of subsequent rebuffering events by moving further away from the live
edge.

Related to #6131.
2024-01-25 10:33:57 +01:00
Álvaro Velad Galván 701ec9bece fix(HLS): Fix VVC codec selection in HLS (#6156) 2024-01-24 20:15:14 +01:00
Álvaro Velad Galván 151b29c3c7 feat: Parse vpcC and av1C boxes (#6157) 2024-01-24 18:26:01 +01:00
Álvaro Velad Galván 8d6ad7ed64 feat(HLS): Add support for SUPPLEMENTAL-CODECS (#6155) 2024-01-24 18:25:44 +01:00
Álvaro Velad Galván c100053532 feat: Add support for Dolby Vision based on AVC and AV1 (#6154) 2024-01-24 18:15:18 +01:00