Commit Graph

1132 Commits

Author SHA1 Message Date
Wojciech Tyczyński fac9d8472d fix: Fix Windows detection (#7476)
Fix Windows detection on platforms which do not implement
`userAgentData` & disable explicitly one workaround on Xbox (as Xbox is
also Windows).
2024-10-23 12:58:48 +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 c90d5ff82a fix: Disable smooth codec switch if changeType is unavailable (#7414) 2024-10-11 14:58:23 +02:00
Wojciech Tyczyński 7268a2b64d fix(PS4/5): Disable smooth codec switch on PS4/5 (#7413)
Recent tests have shown that although `SourceBuffer.changeType()` exists on PS5, calling it when switching between AAC and EC3 always throws an exception. Disable smooth codec switch on that platform together with PS4.
2024-10-11 04:45:34 -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
Álvaro Velad Galván fe2ea80ad4 fix(DASH): Release period combiner info correctly (#7364) 2024-09-24 16:37:07 +02:00
Wojciech Tyczyński e5fadabca2 fix: Do not recognize Sky Q as Apple device (#7357) 2024-09-24 09:43:56 +02:00
Agajan J. 58f666ba7a fix: Disable Encryption Scheme Polyfil On Some Devices (#7355)
Fixes https://github.com/shaka-project/shaka-player/issues/7354
These platforms don't support `encryptionScheme`, so there is no need to
install this polyfil.
2024-09-24 07:17:36 +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
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
Wojciech Tyczyński 873bb2441a fix(DASH): Clone closedCaptions map in PeriodCombiner output stream (#7309)
Fixes #7303
2024-09-13 13:58:02 -07:00
Wojciech Tyczyński a4dfb09a4a revert: Revert "perf(DASH): Do not check is index instance of MetaSegmentIndex (#7295)" (#7307)
This reverts commit a32043864a.

MetaSegmentIndex may be closed during an async operation and we must
take this into account.

BEGIN_COMMIT_OVERRIDE
chore: Ignore this in the changelog; it was reverted
END_COMMIT_OVERRIDE
2024-09-13 16:57:35 +02:00
Álvaro Velad Galván 4ab3dea8c1 perf(DASH): Delete old matchedStreams when using trickmodeVideo (#7306) 2024-09-13 15:52:12 +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 7ceffc0db7 perf: Only use tXml parent when necessary (#7304)
Issue https://github.com/shaka-project/shaka-player/issues/6239
2024-09-13 13:49:39 +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
Wojciech Tyczyński a32043864a perf(DASH): Do not check is index instance of MetaSegmentIndex (#7295)
It should always be MetaSegmentIndex, so handle it via assertion instead
of an `if()`. This way we will satisfy compiler, avoid unnecessary
`if()` check and potentially find errors quicker thanks to assertion.
2024-09-12 17:46:26 +02:00
Wojciech Tyczyński 173a814e5b perf(DASH): Create segment indexes only on new periods (#7294)
Old references to segment index are already stored in meta segment
index, so there's no reason to recreate them.
2024-09-12 14:24:47 +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
Álvaro Velad Galván 64e45c96ba feat(Ads): Add config to allow disable interstitials (#7271) 2024-09-06 17:27:01 +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 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
Wojciech Tyczyński ebab340d9a fix(DASH): Fix creation of multiperiod trickmode streams (#7229) 2024-08-29 09:04:50 +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
Álvaro Velad Galván 88426487a7 feat(CMCD): Implement new streaming format from CMCDv2 (#7216)
This aligns Shaka's implementation with what Apple's native player will
return when CMCD is enabled, see:
https://developer.apple.com/streaming/Whats-new-HLS.pdf
2024-08-27 16:10:51 +02: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
Á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
Wojciech Tyczyński fd5b09c1bf feat: Dispatch MediaSourceRecovered event (#7198)
It allows to inform clients media source recovery happened.
2024-08-23 14:09:03 +02:00
Wojciech Tyczyński bd06fe7a3d fix(DASH): Fix EventStream Elements creation (#7194)
Related to #7148 
Does not create parent elements anymore to reduce memory consumption.
Starts to use `createElementNS()` so created elements will keep proper
cases for tag names and they won't be anymore of type `HTMLElement`, but
`Element`, which should be more lightweight and suitable for our needs.
2024-08-23 14:08:50 +02:00
Wojciech Tyczyński 65e66813aa fix(net): Remove AbortController polyfill (#7149)
`AbortController` polyfill attaches to the global object and it messes up with feature detection for projects that are using shaka. As it is not able to properly abort ongoing requests, it doesn't give much value.
2024-08-21 08:51:44 -07:00
Iragne 0f2cea42ee fix(DASH): Patch manifest Adaptationset indexing, @n=<Numbering> and @t=<time> (#7131)
Fixes https://github.com/shaka-project/shaka-player/issues/7128
2024-08-20 15:02:52 +02:00
Álvaro Velad Galván d63c44afba fix: Add more info in getVariantTracks for muxed streams (#7181) 2024-08-20 11:26:57 +02:00
Mathieu Massicotte, CEP d93a019454 fix(Xbox): Support screen resolution detection on Xbox when using WebView2 (#7144)
Resolves #7141
2024-08-08 11:50:19 -07:00
Wojciech Tyczyński 388050cbd2 fix(HLS): Expose tilesLayout properly for live (#7123)
If any segment gets evicted in live scenario, `segmentIndex.get(0)` will return `null`. Due to that, image tracks have `tilesLayout` set to `null` if we call `player.getImageTracks()` after segments have been evicted.
Additionally to main fix, I've replaced all other appearances of `segmentIndex.get(0)` with `segmentIndex.earliestReference()` to prevent similar bugs.
2024-08-02 23:10:50 -07:00
Wojciech Tyczyński 2c399e0f9f fix(Xbox): Override Dolby Vision codecs (#7115)
On Xbox One, Media Source claims it's not able to play Dolby Vision codecs. However, when it's created using their AVC/HEVC equivalent, it plays fine DV content.
2024-08-01 18:45:29 -07:00
Wojciech Tyczyński d36ff6553c feat(net): Add minimum bytes for progress events (#7117)
By limiting progress events to only ones with minimal chunk size, we might end up with feeding better default ABR implementation, which should result in more accurate adaptation in case of network throttle.
2024-07-31 05:34:13 -07:00
Álvaro Velad Galván 6425b91320 feat(ABR): Add preferNetworkInformationBandwidth config (#7090) 2024-07-23 13:54:10 +02:00
Álvaro Velad Galván a5adb39713 feat(DASH): Support Annex I: Flexible Insertion of URL Parameters (#7086)
Resolves https://github.com/shaka-project/shaka-player/issues/6472
2024-07-23 08:49:22 +02:00
Álvaro Velad Galván c62c5b5131 fix: Only check encryptionScheme when is not null and not empty string (#7079)
Fixes https://github.com/shaka-project/shaka-player/issues/7057
2024-07-20 07:23:55 +02:00
Wojciech Tyczyński 38c691beb5 fix(DASH): Fix period combining when roles are equal (#7065)
When roles exist and are equal between tracks and periods, period
combiner matches based on that instead of looking for other
similarities. This PR addresses it & adds regression test.
2024-07-19 08:52:09 +02:00
Álvaro Velad Galván c59922bae5 feat(Ads): Add basic VAST support without IMA (#7052)
This only includes playback, no tracking is sent.
2024-07-17 11:00:43 +02:00
theodab 90668c20e0 fix(ttml): Handle escaped special characters. (#7047)
Fixes #7044
2024-07-16 10:34:22 +02:00
Will Harris 29ed0a84f2 fix(DASH): Prioritize highest bandwidth in PeriodCombiner (#7045)
Resolves https://github.com/shaka-project/shaka-player/issues/7026
Resolves https://github.com/shaka-project/shaka-player/issues/3816
2024-07-16 08:26:21 +02:00
Wojciech Tyczyński 0669d2433e fix(PeriodCombiner): Use normalized codec to remove duplicates (#7032) 2024-07-12 16:18:06 +02:00
Álvaro Velad Galván 64430edb23 fix(HLS): Fix filtering video/audio streams without bandwidth (#7008)
Fixes https://github.com/shaka-project/shaka-player/issues/7007
2024-07-10 09:14:25 +02:00
theodab dcc60f9ea9 fix: Disable seek retry cooldown on most platforms (#7010)
Previously, we added a 1 second "cooldown" period between attempts to
perform a corrective seek.
This was for the benefit of old v1 Chromecasts, which found the process
of seeking so slow that they would sometimes get stuck in an infinite
loop trying to start a presentation.
However, that cooldown period was causing issues in some situations
during seeking, so this PR removes the restriction on everything but
pre-Android Chromecast devices.

Fixes #4393
Fixes #5202

---------

Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
2024-07-09 14:32:23 +02:00
Álvaro Velad Galván 9e1f4e7b8c feat(Ads): Allow the use of custom interstitials ads (#6991) 2024-07-08 14:22:55 +02:00