Skip to content

Skip Interstitial assets that error rather than falling back to primary for entire break #7263

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 26, 2025

Conversation

robwalch
Copy link
Collaborator

@robwalch robwalch commented May 21, 2025

This PR will...

  1. Skip asset indexes whose assets have errors when advancing through interstitials in the schedule
  2. Reset asset player timeline offset when an earlier asset has errors (delete loaded media playlists with applied offsets)

Why is this Pull Request needed?

  1. Fixes MediaSource reset playback with asset errors
  2. Fixes append-in-place playback with asset errors

Are there any points in the code the reviewer needs to double check?

I could have simply destroyed asset players whose timelines would be impacted by an error and schedule change, but that would result in the HLS multivariant playlist getting reloaded. Since the LevelDetails are delete instead, media playlist will need to be reloaded to generate new offsets. This may no longer be required after timestamp offsets are support #5715, but for now it is a hard requirement.

Resolves issues:

Fixes #7180

Checklist

  • changes have been done against master branch, and PR does not conflict
  • new unit / functional tests have been added (whenever applicable)
  • API or design changes are documented in API.md

@robwalch robwalch added this to the 1.6.3 milestone May 21, 2025
@robwalch robwalch force-pushed the bugfix/interstitial-asset-error-handling branch from 899e037 to 614eb6a Compare May 21, 2025 18:15
@robwalch robwalch marked this pull request as ready for review May 21, 2025 18:15
@robwalch robwalch force-pushed the bugfix/interstitial-asset-error-handling branch from 614eb6a to a514b3a Compare May 21, 2025 21:51
@robwalch robwalch force-pushed the bugfix/interstitial-asset-error-handling branch from e6e17aa to 346431b Compare May 22, 2025 18:43
@robwalch robwalch force-pushed the bugfix/interstitial-asset-error-handling branch from 346431b to b894190 Compare May 22, 2025 23:06
if (playoutLimit === 0) {
return true;
}
const assetOffset = this.assetList[assetIndex]?.startOffset || 0;
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we wanted PLAYOUT-LIMIT to ignore assets that were skipped due to an error, then this offset should be the sum of all previous assets that have not errored (!this.assetList[].error).

@robwalch robwalch merged commit 8d1ee46 into master May 26, 2025
27 of 28 checks passed
@robwalch robwalch deleted the bugfix/interstitial-asset-error-handling branch May 26, 2025 22:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging this pull request may close these issues.

When a single interstitial asset failed to load, all assets will fail
1 participant