forked from shaka-project/shaka-player
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SDK-216] upgrading shaka to 3.2.10 #14
Merged
asgvard
merged 166 commits into
v3.2.x-norigin-changes
from
dmitriy/upgrading-shaka-3.2.10
Jul 26, 2022
Merged
[SDK-216] upgrading shaka to 3.2.10 #14
asgvard
merged 166 commits into
v3.2.x-norigin-changes
from
dmitriy/upgrading-shaka-3.2.10
Jul 26, 2022
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This is for fixing a case in geo-redundant streams failover: 1. ShakaPlayer identifies DASH period based on period id 2. Period ids generated by two synchronized packager could be inconsistent temporarily in some negative scenarios 3. After the scenario the packagers resync at the live edge, but the inconsistency is preserved in the manifest for the length of the DVR window 4. When ShakaPlayer receives a new mpd with inconsistent period ids (i.e. jumping between mpds from two packagers), it might result in - Wrong presentation time - Wrong buffer ahead estimation - Old segment references added into segment index 5. Consequently, playback gets stalled and requires end-user to refresh the player (i.e. VPF)
Linear streams accumulate init data over time because the init data is pushed to an array regardless of whether or not it already exists as part of the logic to combine periods. This PR dedupes the init data based on keyId to help reduce memory usage over extended playouts.
Skip the vp09 polyfill for isTypeSupported on this platform.
Previously, many events were being defined with a data dictionary that used variable-type keys (e.g. {key: value}). This worked fine in uncompiled mode, but in compiled mode it lead to those properties being obfuscated. This changes the FakeEvent constructor to take a map rather than an object, so the compiler will force the keys to be strings. Closes shaka-project#3710 Backported to v3.2.x Change-Id: I67b1a391540a5ee21f0aaf940ae054d26f4c10a4
Before, when using SegmentTemplate or SegmentList, we would tell the presentation timeline about new segments only when we saw a new period or representation. This meant that, in live streams, if new content was being added to the SegmentTemplate or SegmentList, the presentation timeline was not being kept abreast of the changes. Thus, if that stream were to then transition to VOD, the presentation timeline would suddenly start to report that the current time was beyond the end of the seek range, which caused playback to stop. Closes shaka-project#3675 Change-Id: I77ef00c5a86de9ebcb86f18f792084ed70f94e8d
First, the positioning of cues was incorrect. We need to explicitly set all the position attributes when we position elements with the "absolute" position. Second, if we position a text <span> manually, the background will fill the whole region. So to keep the background wrapping the text, we need to add another <span> for the text. Third, the background and font color should not be set on every <span> element since it won't allow parent cues to set the inherited value. So this moves the defaults to the top-level text element and allows parent cue elements to override this. It also would make app CSS easier to override. Because background color isn't inherited through CSS, the default is set in JavaScript instead. Fixes shaka-project#3521 Fixes shaka-project#3600 Closes shaka-project#3713 Backported to v3.2.x Change-Id: I45fc88dcac4a0a062e1474087f24c80d98eef619
Fixes shaka-project#3729 If the video variant stream contains information about `hdr`, then we now use that to provide a value for `transferFunction`, when constructing the [`VideoConfiguration`](https://w3c.github.io/media-capabilities/#videoconfiguration) object used to get decoding info from media capabilities API. The following applies: ```js switch (video.hdr) { case 'SDR': mediaDecodingConfig.video.transferFunction = 'srgb'; break; case 'PQ': mediaDecodingConfig.video.transferFunction = 'pq'; break; case 'HLG': mediaDecodingConfig.video.transferFunction = 'hlg'; break; } ``` Change-Id: I3c6ead081203e2c564e15823629cefc8fd61dd60
Previously, the HLS parser would notify the presentation timeline of the segments in the manifest before fitting the segments. The HLS parser will also sometimes remove segments from the end of a VOD asset if they do not fit within the playlist duration. This could sometimes cause the presentation timeline and MediaSource to have different opinions on how long the VOD asset was, which could lead to the seek bar looking like the presentation stopped before the end. Closes shaka-project#3733 Change-Id: I67fdc28a3f6eee158c9906359491fe6bb418e730
Change-Id: I1c9eb3b6a877c9139ed7eb848ce7e54d7ee7126e
…project#3758) This updates the IMA Asset Key associated with the asset, to match the key being changed upstream.
Previously, in the updateCaptions_ method in the UI text displayer, when trying to determine if a cue should be removed from the container, we checked to see if it was out of the time range. This worked in most cases, but it did have the side-effect that the displayer would not remove the old cues if they were removed manually via the remove() method. This was most visible if the user changed the text language; the currently-displayed cue of the old language would linger until it reached the point it would stop displaying normally. This changes the UI text displayer to force an update when remove() is called, if necessary. Change-Id: I84a4847b67c5fb7597342a943abe13a3cc9e826e
Issue shaka-project#3675 Backported to v3.2.x Change-Id: I77234f5aaf361a43c0571dabbce0d9aa810d2ea0
When we attach closed-caption cues to the text engine, we apply the video timestamp offset to the cues, so that they can align with the start of the stream. However, we previously forgot to apply that offset to any nested cues. This did not matter beforehand, since we previously ignored the start and end times of nested cues. However, recent changes to the UI text displayer changed that. So this fixes nested cues to apply video timestamp offset. Closes shaka-project#3782 Change-Id: I4c9140fcfa9bf94579f8d847e546ee4e2ec5eff4
…streams (shaka-project#3801) Embedded CEA-608 captions don't work on multi period live DASH DAI streams after new periods appear in the manifest because commas are appended the streams originalId string, which disrupts some stream matching code in text_engine.js The problem has been resolved by preventing makeTextStreamsForClosedCaptions() from altering the PeriodCombiner.textStreams_ array. Fixes shaka-project#3783 Change-Id: I9abce3f34bf45d506325c13cb06c550d556c2d62
) Add Playstation 5 detection to the Media Capabilities Polyfill install method. Fixes shaka-project#3582 Co-authored-by: Dan Sparacio <[email protected]> Change-Id: Ied871f73f0ad4f2d1f95f91158907179ee52ddea
…haka-project#3727) Now we parse value of descriptor for urn:mpeg:mpegB:cicp:TransferCharacteristics in AdaptationSet to indicate hdr property on shaka.extern.Stream which seems equivalent to HLS definition given in VIDEO-RANGE attribute within EXT-X-STREAM-INF. This is done by reading the supplemental / essential property in the parsing of AdaptationSet, then mutating the hdr property on shaka.extern.Stream if no hdr exists after parseRepresentation_. The alternative considered was to parse all essential / supplemental properties on any shaka.dash.DashParser.InheritanceFrame and then carrying that through to the parseRepresentaiton_ function; this can be seen here. The problem with the alternative approach was that the essential property in the adaptation set would have had to have been "let through" on the assumption that we would parse it within the parseRepresentation_ method... But this to me seemed somewhat risky to change, and also looks messy with the empty else if condition, plus was a much larger change (with more calls to XmlUtils, though not familiar with how that is implemented, so not sure if there was any penalty because of that). * Test expectation for HDR signalling via property The test sets the expectation that we should be able to extract the information of the TransferCharacteristics from the DASH AdaptationSet. This should then get converted to the nomenclature used in HLS for the VIDEO-RANGE attribute on EXT-X-STREAM-INF. * Implement signalling of HDR capability through property descriptor According to DASH-IF IOP v4.3 6.2.5.1. the transfer characteristics can be declared at the AdaptationSet level via a supplemental or essential property. In HLS the transfer characteristics are used to determine the value of the VIDEO-RANGE attribute on the EXT-X-STREAM-INF attribute, which is already used to indicate the hdr property on the shaka.extern.Stream object. Therefore for consistency we also add the same identification to the DASH parser. * Added entry in AUTHORS and CONTRIBUTORS Fixes shaka-project#3726 Change-Id: I12f0b57aeae69fd54a015fb8942d1a4dcdc1a439
This makes the output more stable and fixes a build issue in a Google-internal environment. Change-Id: Ifa3b78e43ced12419a750dbb0bbde19316338640
Change-Id: I6ac6706bacffcaa92b586dafa36cb615bfb8983b
Previously, Shaka Player only supported "forced_subtitle", which was the working name before the role was finalized. Closes shaka-project#3767
This newer launcher is based on WebDriver and seems to work better with GitHub Actions. Change-Id: I8ea0ff5cd1c975179ffe99c04a9c99601815855f
This makes the HLS parser honor more attributes for image tracks. It also makes some changes to player.getImageTracks, so that the returned track shows the size of a single thumbnail rather than the entire sheet. Closes shaka-project#3840 Change-Id: I2ae096f455864201e08a85e29f0f02a3e06eb07f
If a rounding error in the DASH parser created an extra "phantom" segment that extended just beyond the presentation duration, this was causing a playback failure. Now StreamingEngine will tolerate these small offsets and end playback at the correct time. Fixes shaka-project#3717 Change-Id: I00780a664aff4148b6b1046d8322a68da745de40
Revert "fix: Work around override of MediaCapabilities polyfill in Apple browsers (shaka-project#3668)" This reverts commit 31c0cd4. Fixes shaka-project#3843 (usage of Shaka without polyfills) Re-opens shaka-project#3530 (MediaCapabilities polyfill not working on Safari) Change-Id: Ib5aff1b38759e1a39200332f3f07d3d6bd3bd2e1
…#4269) (shaka-project#4270) I have been working with a server which is too aggressive at expiring segments at the left edge of its DVR. As a result of this, when Shaka's HLS manifest parser puts out a HEAD request on the first segment to guess its MIME type, sometimes the segment has already been removed (404). I have filed a bug against the server team and I hope they relax the expiration, but truth be told if you wait long enough, any request against the left edge of DVR will eventually fail. It seems like a simple workaround for now to simply request the middle segment rather than the first segment. Closes shaka-project#4269 Co-authored-by: Raymond Cheng <[email protected]>
Fixes issue shaka-project#4290 where `spatialAudio` flag is not being set on variant tracks. Co-authored-by: Dan Sparacio <[email protected]>
The EOS set-top box, built by Liberty Global, has WebKit embedded and should play MSE (+ EME) compatible streams. With the latest version (`4`), streams didn't play. When attaching a debugger to the box, I noticed that the srcEquals node is selected. The EOS box identifies itself as an Apple device, which is wrong. `Platform.isApple()` returns true, therefore `shouldUseSrcEquals_` (in combination with `config_.streaming.useNativeHlsOnSafari`) returns true as-well. The native playback check is not holding it from selecting srcEquals (https://github.com/shaka-project/shaka-player/blob/main/lib/player.js#L1273) as EOS supports MPEG-DASH natively (but not in combination with DRM, as far as I know). Nonetheless, MSE is preferred.
It seems that webkitDroppedFrameCount is not included in the prototype but it is included in the video element itself, that's why it fails in WebOS 3. Closes shaka-project#4313
Releases will no longer be announced on the mailing list. Instead, users can subscribe directly through GitHub.
mux.js v6.2.0 introduces changes that are useful while parsing ID3 HLS in-band metadata.
When DAI adds ad segments faster than real-time, the availability windows gets messed up, and some assertions in SegmentIndex break. This locks down the presentation start time after the initial manifest is parsed, so that the availability window is stable throughout playback. b/233075535
) Add Playstation 5 detection to the Media Capabilities Polyfill install method. Fixes shaka-project#4320
Related to shaka-project@a72a1e9 Backported to v3.2.x
Need to exclude PlayStation 4 from TextDecoder usage, because even if TextDecoder is defined, VTT cues are not properly parsed on that platform. Closes shaka-project#4321
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…haka-3.2.10 # Conflicts: # .gitignore # package.json # test/text/ui_text_displayer_unit.js
asgvard
changed the title
Dmitriy/upgrading shaka 3.2.10
[SDK-216] upgrading shaka to 3.2.10
Jul 26, 2022
enrico-bardelli
approved these changes
Jul 26, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Upgraded shaka player to use 3.2.10.
Norigin custom changes are not affected, it should be a simple merge from origin 3.2.10.
Here is comparison between this PR and origin 3.2.10 branch to make sure all our custom Norigin changes are still there:
shaka-project/shaka-player@v3.2.x...NoriginMedia:shaka-player:dmitriy/upgrading-shaka-3.2.10
We can ignore the failing tests as they are executed by the Shaka Github Actions, that was merged from the origin repo.