Skip to content

Commit

Permalink
fix(dash-playlist-loader): clear out timers on dispose (#472)
Browse files Browse the repository at this point in the history
  • Loading branch information
gkatsev authored Apr 16, 2019
1 parent dd55028 commit 2f1c222
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/dash-playlist-loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,8 @@ export default class DashPlaylistLoader extends EventTarget {
dispose() {
this.stopRequest();
this.loadedPlaylists_ = {};
window.clearTimeout(this.minimumUpdatePeriodTimeout_);
window.clearTimeout(this.mediaRequest_);
window.clearTimeout(this.mediaUpdateTimeout);
}

Expand Down Expand Up @@ -404,6 +406,7 @@ export default class DashPlaylistLoader extends EventTarget {
pause() {
this.stopRequest();
window.clearTimeout(this.mediaUpdateTimeout);
window.clearTimeout(this.minimumUpdatePeriodTimeout_);
if (this.state === 'HAVE_NOTHING') {
// If we pause the loader before any data has been retrieved, its as if we never
// started, so reset to an unstarted state.
Expand All @@ -413,6 +416,7 @@ export default class DashPlaylistLoader extends EventTarget {

load(isFinalRendition) {
window.clearTimeout(this.mediaUpdateTimeout);
window.clearTimeout(this.minimumUpdatePeriodTimeout_);

const media = this.media();

Expand Down Expand Up @@ -626,7 +630,7 @@ export default class DashPlaylistLoader extends EventTarget {
// would be to update the manifest at the same rate that the media playlists
// are "refreshed", i.e. every targetDuration.
if (this.master && this.master.minimumUpdatePeriod) {
window.setTimeout(() => {
this.minimumUpdatePeriodTimeout_ = window.setTimeout(() => {
this.trigger('minimumUpdatePeriod');
}, this.master.minimumUpdatePeriod);
}
Expand Down Expand Up @@ -698,7 +702,7 @@ export default class DashPlaylistLoader extends EventTarget {
// update loader's sidxMapping with parsed sidx box
this.sidxMapping_[sidxKey].sidx = sidx;

window.setTimeout(() => {
this.minimumUpdatePeriodTimeout_ = window.setTimeout(() => {
this.trigger('minimumUpdatePeriod');
}, this.master.minimumUpdatePeriod);

Expand All @@ -714,7 +718,7 @@ export default class DashPlaylistLoader extends EventTarget {
}
}

window.setTimeout(() => {
this.minimumUpdatePeriodTimeout_ = window.setTimeout(() => {
this.trigger('minimumUpdatePeriod');
}, this.master.minimumUpdatePeriod);
});
Expand Down

0 comments on commit 2f1c222

Please sign in to comment.