* Don't switch renditions when the pending rendition is the rendition we would switch to
* Don't switch renditions before playback starts for llhls
* Don't set seekable until all source buffers have been created
* Take into account parts and preload segments when during duration calculations
* Reset the segment loader on rendition change for live streams, still resync for vod
* Try to choose an independent first part if we have no buffered data
* Determine if we made a bad part guess for our segment download
This ultimately happens because resetEverything does not reset the gop cache. So If we seeked backwards and have a gop cache then we would throw out an entire segment as it didn't line up with our know gops.
* 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
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.
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.