You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Switch from xhr to fetch to support streaming segment downloads. Use events rather than global overrides and options to modify requests? Tie-in with player-level hooks
Dash Playlist loader should handle the actual MPD xml. This means that we need to separate the logic for choosing a segment into playlist loader and have segment loader call that when it needs a new segment or something. We should push logic from the segment loader to the playlist loader because we HLS and DASH can have different contraints for knowing what the next segment is. This will simplify the segment loader.
Non Breaking
We should download a segment and seek to that and then set seekable. Right now we estimate seekable and download a segment based off of that. If the segment starts before or after where current time is it causes us to stall until playback-watcher kicks in. If we download a segment and then seek to it instead, playback can start much quicker.
Use BigInt and a polyfill for 64 bit numbers in mux.js
add a flag to allow jumping all gaps regardless of size (will then flip to default in a major version)
media group updates: dedupe most of this code and add in video groups, as our mainSegmentLoader just duplicates a lot of media group handling in masterPlaylistController
this requires more research
we probably want to figure out some first steps that are not breaking
but the final piece may require a final breaking change
use navigator.connection if bandwidth is set to default and it is available. This includes listening for navigator.connctionchange events for abr switching.
rename everything that includes blacklist or other similar terms. These will then be removed as part of a breaking change.
Unify our segmentIndex/segmentNumber naming We currently use:
Do a better job determine the type of ts packet we are dealing with, rather than assuming that the first one will be pmt/pat
Parse all of the mpeg ts headers.
Look for the PREFIX_START_CODE (0x00) in the payload to determine if something is pes
parse the pes packet header and payload to determine the content type.
player-level beforeRequest and request hooks
playlist selection hooks
Base class for playlist loaders?
reset the media source and re-create on media source error.
See fix: Use segmentInfo.trackInfo to get segment information. #1162 . Should we even have currentMediaInfo_? Originally this was added to support codec type switching so anything we do will need to be tested to ensure that codec switching still works. Should we still have startingMediaInfo_ this was added so that we always have a trackInfo to look back at, should future segments fail to contain trackinfo, but we should be triggering directly in the muxer at all times. I think this could all use a rework.
Migrate addSidxSegmentsToPlaylist from mpd-parser into vhs.
Can we switch to listening to update instead of updateend on sourceBuffers? Saves use 5-10ms per append/remove. The only caveat is that updateend always fires, even on error. As long as we handle errors (which I think we do) Then we should be able to switch.
The text was updated successfully, but these errors were encountered:
If you're reporting a 🐞 bug, please make sure you include steps to reproduce it. We get a lot of issues on this repo, so please be patient and we will get back to you as soon as we can.
To help make it easier for us to investigate your issue, please follow the contributing guidelines.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Each of these breaking changes and major refactors should come with a corresponding entry in a migration guide.
Breaking
hls-
events andhls
properties fix: remove deprecation hls options, properties, and events #1229smoothQualityChange
blacklistCurrentPlaylist
segmentLoader
,playlistLoader
, and that gets sent toblacklistCurrentPlaylist
masterPlaylistController
blacklistCurrentPlaylist
can be used to exclude any playlist... but we still select a new current playlistdisabled
... omggetPlaylistById
,getPlaylistByUri
, andgetPlaylistByIndex
stop doing this. Some of the code is here: https://github.com/videojs/http-streaming/pull/1124/files#diff-78a204a1a5c631f08cbea3fee1b2eecb32158191db5e6db9c5c4c1595bd4366cR273setLiveSeekableRange
when available #855Non Breaking
TIME_FUDGE_FACTOR
fromPlaylist#getMediaInfoForTime
if possible. See feat: Add experimentalExactManifestTimings which forgoes TIME_FUDGE_FACTOR during segment choice #1165 1165navigator.connection
ifbandwidth
is set to default and it is available. This includes listening fornavigator.connction
change
events for abr switching.blacklist
or other similar terms. These will then be removed as part of a breaking change.segmentIndex
,mediaIndex
,mediaSequence
safeLiveIndex
i'm sure there are more.playlist.js
,sync-controller
, andsegment-loader
. (some of this is done in refactor: checkBuffer_/fillBuffer_/generateSegmentInfo #1097)pmt/pat
pes
pes
packet header and payload to determine the content type.currentMediaInfo_
? Originally this was added to support codec type switching so anything we do will need to be tested to ensure that codec switching still works. Should we still havestartingMediaInfo_
this was added so that we always have a trackInfo to look back at, should future segments fail to containtrackinfo
, but we should be triggering directly in the muxer at all times. I think this could all use a rework.update
instead ofupdateend
on sourceBuffers? Saves use 5-10ms per append/remove. The only caveat is thatupdateend
always fires, even on error. As long as we handle errors (which I think we do) Then we should be able to switch.The text was updated successfully, but these errors were encountered: