diff --git a/src/controller/abr-controller.ts b/src/controller/abr-controller.ts index c62234e2dff..3792904c6e5 100644 --- a/src/controller/abr-controller.ts +++ b/src/controller/abr-controller.ts @@ -286,7 +286,7 @@ class AbrController implements AbrComponentAPI { const level = levels[frag.level]; const expectedLen = stats.total || - Math.max(stats.loaded, Math.round((duration * level.maxBitrate) / 8)); + Math.max(stats.loaded, Math.round((duration * level.averageBitrate) / 8)); let timeStreaming = loadedFirstByte ? timeLoading - ttfb : timeLoading; if (timeStreaming < 1 && loadedFirstByte) { timeStreaming = Math.min(timeLoading, (stats.loaded * 8) / bwEstimate); @@ -346,7 +346,7 @@ class AbrController implements AbrComponentAPI { // If there has been no loading progress, sample TTFB this.bwEstimator.sampleTTFB(timeLoading); } - const nextLoadLevelBitrate = levels[nextLoadLevel].bitrate; + const nextLoadLevelBitrate = levels[nextLoadLevel].maxBitrate; if ( this.getBwEstimate() * this.hls.config.abrBandWidthUpFactor > nextLoadLevelBitrate diff --git a/src/controller/level-controller.ts b/src/controller/level-controller.ts index 1eb35d313a4..4596d6ac49c 100644 --- a/src/controller/level-controller.ts +++ b/src/controller/level-controller.ts @@ -307,8 +307,8 @@ export default class LevelController extends BasePlaylistController { return valueB - valueA; } } - if (a.bitrate !== b.bitrate) { - return a.bitrate - b.bitrate; + if (a.averageBitrate !== b.averageBitrate) { + return a.averageBitrate - b.averageBitrate; } return 0; });