Commit Graph

3399 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
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
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>
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
Á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
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 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 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
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 3537dc0a68 fix(CMCD): Allow reconfigure session ID (#6177) 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
Álvaro Velad Galván 4e47acda0c fix: Fix detection of spatial rendering support in Cast (#6138)
See https://developers.google.com/cast/docs/media#audio_passthrough
2024-01-24 07:39:34 +01:00
Álvaro Velad Galván 5acc773364 fix(offline): Fix store persistent licenses with drm info in the pssh (#6143)
Fixes https://github.com/shaka-project/shaka-player/issues/6141
2024-01-24 07:38:50 +01:00
Álvaro Velad Galván b8520ed977 feat: Parse avcC, hvcC and dvcC boxes (#6146) 2024-01-23 19:49:51 +01:00
Álvaro Velad Galván e1cd031625 fix: Allow by default variants without pssh in the manifest (#6144)
Fixes https://github.com/shaka-project/shaka-player/issues/5176
2024-01-23 19:49:38 +01:00
Dave Nicholas ee600c4fd5 feat(WebVTT): Remove un-needed VTT payload normalisation (#6145)
The tXml parser gracefully handles this now, so it is no longer needed.
2024-01-23 16:53:50 +01:00
Álvaro Velad Galván df8dbb9caa fix: Fix nalu parsing in TS (#6137)
Fixes https://github.com/shaka-project/shaka-player/issues/6136
2024-01-22 18:03:36 +01:00
Dave Nicholas 7116a34ec2 feat!: Remove DOM Parser (#6063)
## Background: 
The native DOM Parser can perform poorly on some older devices, this
approach is faster on newer devices but is considerably better on older
devices.
This PR replaces the usage of the DOM Parser for DASH, MSS, VTT and
TTML.

The draw back of this approach that it does not include any validation
at the cost of better performance.
2024-01-22 08:39:06 +01:00
Álvaro Velad Galván 938de98f84 chore: Add warning on unsupported kind in addTextTrackAsync (#6126) 2024-01-19 07:25:24 +01:00
Álvaro Velad Galván 48626f2ae0 fix: Change quality only when adding the last partial segment and it is fast switching (#6114) 2024-01-18 08:31:06 +01:00
Álvaro Velad Galván e692d68ecf fix: Reject Opus encrypted on Firefox Android (#6115)
Fixes https://github.com/shaka-project/shaka-player/issues/6111
2024-01-18 08:10:34 +01:00
Álvaro Velad Galván 4823dfefea fix: Include text bandwidth in stats (#6109) 2024-01-18 07:28:06 +01:00
Álvaro Velad Galván 1671a3e98c fix(HLS): Avoid duplicate AES request when using the same info (#6118) 2024-01-17 18:21:40 +01:00
Álvaro Velad Galván af12b0b3f0 fix(DASH): Fix PERIOD_FLATTENING_FAILED on fastswitching streams (#6113) 2024-01-17 09:01:39 +01:00