Skip to content
This repository was archived by the owner on Jan 1, 2024. It is now read-only.

Comments

Sync#11

Open
manquer wants to merge 399 commits intotalview:main-talviewfrom
videojs:main
Open

Sync#11
manquer wants to merge 399 commits intotalview:main-talviewfrom
videojs:main

Conversation

@manquer
Copy link

@manquer manquer commented Jan 1, 2024

No description provided.

brandonocasey and others added 30 commits July 12, 2021 14:03
…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.
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.
* 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.
Adam Waldron and others added 30 commits August 30, 2024 12:44
* 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>
…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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.