This repository was archived by the owner on Jan 1, 2024. It is now read-only.
Open
Conversation
…o_ to get segment track info. (#1162)
…e cleaned up (#1174) Chrome 92 introduced a limit (75) on the number of media elements that can exist in a page at a time and we were going over that limit in our tests, causing them to fail.
…ACTOR during segment choice (#1165)
Using bootstrap styles and tabs, update the demo page and bring in some stuff from the stats page. The two main things that are missing right now are the bitrate switching and the timed metadata graphs, though, I think those aren't used as much. I figured we can bring what I have so far, and we can work on the others later on. For example, I want to migrate the representations dropdown to be a bit closer to what's in the stats page instead. I kept the old index page as old-index.html and have the main page redirect there if we're on IE11, because the bootstrap version used doesn't support IE11. Hopefully, we won't be supporting IE11 for long, and we can delete this once we drop support.
…om network issues (#1176)
* Adds back in the run tests link (which is removed on netlify). * Correctly disposes of stats on player dispose. * Defaults to the new liveui * Saves the state of `player.muted()` to the test page state so that muting/unmuting the player is saved across reloads. * Moves the preloaded source dropdown to the top of the form
This commits also forces LLHLS to off for IE 11 to prevent it breaking on features that it doesn't support.
…eam' event handling (#1542)
* chore: clear previous dash media request timeout everytime we clear or update it * chore: call fast-quality-switch only when we enable playlist from quality selector * chore: add isPaused for dash playlist loader to mitigate duplicate playlist trigger for the main segment loader * chore: fix fastQualityChange_ tests * chore: add fast quality change debounce * chore: add debounce tick to the tests * chore: restart all loaders when we hit fix bad timeline change * chore: update segment loader * chore: update run-fast-quality-switch and fix bad timeline changes * fix test * chore: fix lint issues --------- Co-authored-by: Dzianis Dashkevich <ddashkevich@brightcove.com>
…hen we have video renditions alongside (#1565) * chore: filter audio-only playlists when we have playlists with video-only or muxed * chore: set use network info api to true by default * chore: simplify filter logic * chore: use infinity exclude * chore: default to true only if unset * chore: fix tests * feat: use default as true for networkInformation api
…rg (#1562) Co-authored-by: Tobias Doll <tobias.doll@dw.com>
Co-authored-by: Dzianis Dashkevich <98566601+dzianis-dashkevich@users.noreply.github.com>
* Make simple playlist selecor easier to extend Refactor from positional parameters to a single `settings` argument. This makes it clearer what each argument means in calls of the function. Additional parameters can now be added without making the argument list overly long. Key names were chosen to match those of `minRebufferMaxBandwidthSelector` to align the signatures. * Make simpleSelector test easier to understand Inline the passed bandwidth value instead of referencing the config constant since the concrete value is needed to understand why the expected playlist is chosen. Also if the config constant should ever change the test will fail for no good reason. * Consider object-fit when selecting playlist by player size So far, when `limitRenditionByPlayerDimensions` is `true`, `simpleSelector` tried to either find a rendition with a resolution that matches the size of the player exactly or, if that does not exist, a rendition with the smallest resolution that has either greater width or greater height than the player. This makes sense since by default the video will be scaled to fit inside the media element. So every resolution that exceeds player size in at least one dimension will be scaled down. Most browsers support [1] customizing this scaling behavior via the `object-fit` CSS property [2]. If it set to `cover`, the video will instead be scaled up if video and player aspect ratio do not match. The previous behavior caused renditions with low resolution to be selected for players with small width (e.g. portrait phone aspect ratio) even when videos were then scaled up to cover the whole player. We therefore detect if `object-fit` is set to `cover` and instead select the smallest rendition with a resolution that exceeds player dimensions in both width and height. [1] https://caniuse.com/?search=object-fit [2] https://developer.mozilla.org/de/docs/Web/CSS/object-fit * Add usePlayerObjectFit option Only consider `object-fit` CSS property when selecting playlists based on play size when `usePlayerObjectFit` option is `true` to make new behavior an opt-in. * chore: add object-fit option to the demo page --------- Co-authored-by: Dzianis Dashkevich <98566601+dzianis-dashkevich@users.noreply.github.com>
…ject is incomplete (#1582)
…ive streams (#1599) For live streams with negative TIME-OFFSET in EXT-X-START, the offset was incorrectly calculated from seekableEnd, which already has liveEdgeDelay subtracted. This caused playback to start further behind the live edge than intended. Per HLS spec, negative TIME-OFFSET should be relative to the end of the last Media Segment. This fix adds liveEdgeDelay back to seekableEnd before applying the offset, making VHS behavior consistent with native HLS implementations (e.g., Safari). Example: With liveEdgeDelay=18 and TIME-OFFSET=-18: - Before: startPoint = seekableEnd - 18 (36s behind actual live edge) - After: startPoint = seekableEnd (18s behind, matching Safari)
* chore: update to node 22 * update contrib-eme * pin firefox to to v 64 * use forced player dimension for failing DASH + DRM test * move flaky test asset to not run in FF
This file contains hidden or 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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
No description provided.