Conversation
Single-playlist sources skipped exclusion unless exclude duration was Infinity, so maxPlaylistRetries never stopped reload attempts.
|
💖 Thanks for opening this pull request! 💖 Things that will help get your PR across the finish line:
We get a lot of pull requests on this repo, so please be patient and we will get back to you as soon as we can. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Single HLS media playlists (no master) stop retrying once
playlistErrors_exceedsmaxPlaylistRetries. Fixes #1596.maxPlaylistRetriesdid not stop playlist reloads when the source was a single HLS media playlist (no master).excludePlaylistretried the only playlist wheneverplaylistExclusionDurationwas finite, and never reached the existingplaylistErrors_ > maxPlaylistRetriescheck that indefinitely excludes a variant on a multi-rendition master.A single media playlist is still retried while
playlistErrors_is within the cap (default remainsInfinity). Once the cap is exceeded, the playlist is excluded forever and playback errors, same as the existing "exclude the only playlist only if excluded forever" path.The reporter reproduced infinite retries on a single media
.m3u8and confirmed the cap already works with a master that has multiple variants. README documents that retry attempts must exceedmaxPlaylistRetriesbefore indefinite exclusion.The change skips the single-playlist early return when
playlistErrors_exceedsmaxPlaylistRetries. The other option was to setplaylistExclusionDurationtoInfinitywhen retries are exhausted, and leave the early-return condition unchanged. Skipping the early return matches the laterplaylistErrors_check in the same function and the existing "only playlist / excluded forever" behavior. Smallest reversible change. Happy to switch to the duration-to-Infinity approach if that is preferred.Specific Changes proposed
src/playlist-controller.js: do not retry the only playlist onceplaylistErrors_exceedsmaxPlaylistRetries.test/playlist-controller.test.js: cover a media-only source (manifest/media.m3u8) withmaxPlaylistRetries: 1. First error retries, second error excludes forever and errors.Requirements Checklist