Commit Graph

6330 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 67cbe9915d chore: Test Widevine Experiment (#7627)
Related to https://github.com/shaka-project/shaka-player/issues/7613
2024-11-19 18:36:35 +01:00
Wojciech Tyczyński d407d159c6 fix: Abort operations only once (#7624) 2024-11-19 14:43:32 +01:00
Wojciech Tyczyński 63c0be4ab4 chore: Convert IAbortableOperation to ES6 (#7623) 2024-11-19 13:08:34 +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 7401adf912 fix(Ads): Disable interstitials when playing an interstitials (#7621) 2024-11-19 11:17:13 +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
theodab f277f2c8af fix: Silence aborted errors from PreloadManager. (#7619)
Closes #7618
2024-11-19 01:15:23 -08:00
Wojciech Tyczyński 0db5813bbe feat: Add downloadcompleted event description (#7615)
Missing piece of #7609
2024-11-18 11:36:46 +01:00
Wojciech Tyczyński cd6aae745f fix: Disable smooth codec switch on Tizen 8 (#7614)
It seems all Tizen versions do not support smooth codec switch for now.

Additionally I removed webOS versions listed here, as they don't have
`SourceBuffer.changeType()` API anyway. They're available since Chrome
70, but webOS 5 uses Chrome 68.
And rephrased docs a bit.
2024-11-18 10:48:45 +01:00
vlazh 13186bd403 feat: Add 'downloadcompleted' event (#7609)
Closes #7608
v4.12.1-main v4.11.13-main
2024-11-18 08:41:24 +01:00
vlazh 0fc5316c5a fix: Calculate timeToFirstByte before fire the event 'downloadheadersreceived' (#7605)
Fixes #7604
2024-11-15 15:43:37 +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 997515a114 ci: Switch to use macos-latest (#7592)
Closes https://github.com/shaka-project/shaka-player/issues/6508
2024-11-14 18:41:23 +01:00
Álvaro Velad Galván 3a83e7693f feat: Add new error code for missing EME support (#7596)
Close https://github.com/shaka-project/shaka-player/issues/4495
2024-11-14 18:41:08 +01:00
Álvaro Velad Galván c1e26eafe6 fix(Ads): Fix VAST_INVALID_XML error code (#7593) 2024-11-14 12:57:36 +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 10659c5db8 fix(Ads): Prevent playing the same ad twice (#7585) 2024-11-13 18:12:30 +01:00
Álvaro Velad Galván a4d0fc8a57 fix(Ads): Always fire CUEPOINTS_CHANGED when not using multi video elements (#7584)
This is necessary because in our UI when reusing the same video element
the unloading event is launched and we clear the cuepoints with that
event.
2024-11-13 18:12:01 +01:00
Álvaro Velad Galván 16580ea6f8 fix(Ads): Always set endTime for MPD Alternate (#7583) 2024-11-13 18:11:39 +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
Álvaro Velad Galván 70c2fdae89 fix(UI): Use trickPlay method to control the playback rate (#7580)
This change allows the AbrManager to be correctly informed of the new
rate. See:
https://github.com/shaka-project/shaka-player/blob/main/lib/player.js#L4681
2024-11-13 18:01:48 +01:00
Álvaro Velad Galván 89267cc2c2 fix: Disable live sync when the stream is paused (#7579)
Fixes https://github.com/shaka-project/shaka-player/issues/7577
2024-11-13 18:01:27 +01:00
Álvaro Velad Galván f41c65d830 fix: Allow the user to disable subtitles while paused (#7578)
Fixes https://github.com/shaka-project/shaka-player/issues/7576
2024-11-13 17:55:44 +01:00
Álvaro Velad Galván b473a08088 chore(Demo): Change manifest.dash.clockSyncUri in the Demo (#7575)
When testing from different parts of the world, the Akamai server always
has a better response time, so it is changed to this one by default.
2024-11-13 17:55:07 +01:00
Álvaro Velad Galván bd2c9a7f4b fix: Prefer SimpleTextDisplayer on iOS (#7569)
Fixes https://github.com/shaka-project/shaka-player/issues/7568
2024-11-13 17:54:38 +01:00
Joey Parrish ef9ba4f095 ci: Fix auto-branch job (#7586)
This uses very explicit ref names for both source and destination, to
fix this error during branch creation:

>   TAG=v4.12.0
>   BRANCH=$(echo "$TAG" | sed -e 's/\.0$/.x/')
>   git push origin HEAD:"$BRANCH"
>
> error: The destination you provided is not a full refname (i.e.,
> starting with "refs/"). We tried to guess what you meant by:
>
> - Looking for a ref that matches 'v4.12.x' on the remote side.
> - Checking if the <src> being pushed ('HEAD')
>   is a ref in "refs/{heads,tags}/". If so we add a corresponding
>   refs/{heads,tags}/ prefix on the remote side.
>
> Neither worked, so we gave up. You must fully qualify the ref.
> hint: The <src> part of the refspec is a commit object.
> hint: Did you mean to create a new branch by pushing to
> hint: 'HEAD:refs/heads/v4.12.x'?
> error: failed to push some refs to
'https://github.com/shaka-project/shaka-player'
> Error: Process completed with exit code 1.
2024-11-13 08:50:01 -08:00
Shaka Bot c0d473fae3 chore(main): release 4.12.0 (#7257) v4.12.0 2024-11-13 10:51:57 +01:00
Joey Parrish aafb522b78 ci: Fix status reporting on PRs (#7574)
To report commit status on a PR, the head commit must be used, not the
merge of that head back into the target (e.g. into main).

I would prefer to make status reporting special, so that we can run
tests and other operations against the merge (for more realistic results
and to avoid test failures that only show up after a merge). But this is
the quickest way for me to fix this critical feedback.
2024-11-13 08:18:40 +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.
v4.9.31-main
2024-11-12 14:25:32 -08:00
Álvaro Velad Galván 5eb5b3901f docs: Update docs for v4.12 release (#7567) 2024-11-12 09:14:05 -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.
v4.11.12-main v4.10.26-main
2024-11-12 09:59:50 +01:00
has992 3f9dec2342 fix(DASH): Exclude text segments when calculating max segment size (#7564)
This PR excludes the use of text segments when calculating the max
segment size.
This is due to Shaka using the max value between the buffer behind and
max segment size.
The max segment size of text segments can be a lot larger than video
segments.
This can cause the buffer behind to be extremely large and is a
particular problem for low
powered devices, which have memory constraints.

---------

Co-authored-by: Joey Parrish <joeyparrish@users.noreply.github.com>
2024-11-12 09:43:28 +01:00
Álvaro Velad Galván a020b1982b fix: Do not reuse the same tsParser for different contentType (#7563)
Fixes https://github.com/shaka-project/shaka-player/issues/7399

This PR resolves issue
https://github.com/shaka-project/shaka-player/issues/7399 which has the
same pid for audio and video, but they are different segments.
2024-11-11 15:55:45 +01:00
Álvaro Velad Galván 5315218484 ci: Add timeouts to avoid hangs on "Build and Test" workflow (#7561) 2024-11-08 10:47:43 +01:00
Álvaro Velad Galván 8dae6e4e40 fix(UI): Fix "Live" label in some languages (#7560) 2024-11-08 10:47:31 +01:00
Álvaro Velad Galván 781a27df80 fix(WebVTT): Fix display italic subtitles with end align (#7559)
Fixes https://github.com/shaka-project/shaka-player/issues/7553
2024-11-07 19:35:33 +01:00
Álvaro Velad Galván 42bf0ca7d9 ci: Test Opera against macos-latest (#7558) 2024-11-07 19:35:23 +01:00
Joey Parrish c4695a48f7 chore: Re-enable Shaka Player History live stream (#7545)
The Shaka Player History live stream is available again, now with AV1!

The stream loops over the history of Shaka Player commits, and the loop gets longer every time a PR is merged.

Brought to you by:
 - https://github.com/shaka-project/shaka-streamer
 - https://github.com/shaka-project/shaka-packager
 - https://github.com/FFmpeg/FFmpeg
 - https://github.com/acaudwell/Gource
 - https://github.com/shaka-project/shaka-player-history
2024-11-06 08:54:25 -08:00
Álvaro Velad Galván 63ddbc9056 chore(docs): Update FAQ to mention a HLS out of sync on some cases (#7552)
Close https://github.com/shaka-project/shaka-player/issues/7551
2024-11-06 08:51:38 -08:00
Álvaro Velad Galván 5e722fd6cb chore(Demo): Update Demo bug template (#7554) 2024-11-06 08:51:11 -08:00
Álvaro Velad Galván fd6c322320 fix(Ads): Allow play interstitials using single video element when use native HLS (#7550) 2024-11-06 15:06:12 +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
Álvaro Velad Galván 3bd0978da0 feat(UI): Allow configure the fullscreen mode in VisionOS (#7540)
With this config we will use the fullscreen API of the video element
itself if it is available in Vision OS. This is useful to be able to
access 3D experiences that are only allowed with the fullscreen of the
video element itself.
2024-11-06 11:06:29 +01:00
Álvaro Velad Galván 84ae80675a fix(Ads): Allow play interstitials on iOS fullscreen (#7538) 2024-11-06 10:28:20 +01:00
Joey Parrish 5dea918350 ci: Fix workflow events (#7544)
This was found by auditing workflows based on research published here:

https://github.com/joeyparrish/workflow-cheat-sheet

The research was prompted by a workflow bug in Shaka Streamer
2024-11-05 22:05:11 -08:00