Skip to content

Commit f6ff457

Browse files
committed
Switch levels on Key and Fragment parsing errors or escalate to fatal error
1 parent a226650 commit f6ff457

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/controller/level-controller.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,8 @@ export default class LevelController extends BasePlaylistController {
369369
data.frag?.type === PlaylistLevelType.MAIN
370370
? data.frag.level
371371
: this.currentLevelIndex;
372-
levelError = true;
372+
// Do not retry level. Escalate to fatal if switching levels fails.
373+
data.levelRetry = false;
373374
break;
374375
case ErrorDetails.LEVEL_LOAD_ERROR:
375376
case ErrorDetails.LEVEL_LOAD_TIMEOUT:
@@ -444,6 +445,9 @@ export default class LevelController extends BasePlaylistController {
444445
this.warn(`${errorDetails}: switch to ${nextLevel}`);
445446
errorEvent.levelRetry = true;
446447
this.hls.nextAutoLevel = nextLevel;
448+
} else if (errorEvent.levelRetry === false) {
449+
// No levels to switch to and no more retries
450+
errorEvent.fatal = true;
447451
}
448452
}
449453
}

0 commit comments

Comments
 (0)