* Make initial variant selection based on preferred codec rather than the first variant in the multivariant playlist
* Fix `minAutoLevel` and `ttfb` usage in abandon rules check
* Fix filtering of invalid video-ranges
* Log reason for ignoring start candidates with a particular codec
* Add rendition helper and move SCORE logic into getStartCodecTier
* Add support for MediaCapabilities video configuration filtering
FIxes#5707
* Add support for MediaCapabilities audio configuration filtering
Related to #5704 and #4072
* Add __USE_MEDIA_CAPABILITIES__ build const to remove MediaCapabilities checks from light build
* MediaCapabilities: Assume a framerate of 30fps since decodingInfo will throw with Level default of 0.
* Select variant with alternate video codec on video append error
* Use complete media-parsed codec name when determining if changeType should be appended
* Add `firstAutoLevel` to API.md
* upstream/master: (63 commits)
[Security] Bump websocket-extensions from 0.1.3 to 0.1.4
Bump netlify-cli from 2.52.0 to 2.53.0
Bump typescript from 3.9.3 to 3.9.5
Move hosting of "MP3 VOD demo" to fix failing tests
Improve findFragmentByPTS and fragmentWithinToleranceTest with regards to selecting the next fragment and handling of tiny fragments Fixes#2776
Bump @babel/core from 7.10.1 to 7.10.2
Bump @babel/preset-env from 7.10.1 to 7.10.2
Bump url-toolkit from 2.1.6 to 2.2.0
Bump @babel/helper-module-imports from 7.8.3 to 7.10.1
Bump @babel/plugin-proposal-object-rest-spread from 7.9.6 to 7.10.1
Bump @babel/plugin-proposal-optional-chaining from 7.9.0 to 7.10.1
Bump @babel/register from 7.9.0 to 7.10.1
Bump netlify-cli from 2.51.0 to 2.52.0
Bump @babel/plugin-transform-object-assign from 7.8.3 to 7.10.1
Bump karma-coverage-istanbul-reporter from 3.0.2 to 3.0.3
Bump @babel/core from 7.9.6 to 7.10.1
Bump @babel/preset-env from 7.9.6 to 7.10.1
Bump @babel/plugin-proposal-class-properties from 7.8.3 to 7.10.1
Bump @babel/preset-typescript from 7.9.0 to 7.10.1
Bump @types/mocha from 5.2.7 to 7.0.2
...
# Conflicts:
# .eslintrc.js
# package-lock.json
# package.json
# src/controller/cap-level-controller.ts
# src/controller/eme-controller.ts
# src/controller/fragment-finders.ts
# src/controller/timeline-controller.ts
# src/loader/fragment.ts
# src/utils/texttrack-utils.ts
# tests/functional/auto/setup.js
# tests/functional/auto/testbench.js
# tests/test-streams.js
* Adding the ability for CapLevelController to be enabled/disabled dynamically.
* Updating API docs to include capLevelToPlayerSize as getter/setter.
* Updated documentation to further clarify capLevelToPlayerSize
* Added test to ensure stop capping called when cap level controller destroyed.
* Added test that nextLevelSwitch is called when we stop capping.
* Determine presence of video in a manifest based on number of levels instead of videoCodecFound
* Rework sourceBuffer count estimation to accurately refelct whether a playlist contains altAudio
* Refactor code to better reflect how BUFFER_CODEC events and pending tracks are related