diff --git a/src/main_thread/tracks_store/tracks_store.ts b/src/main_thread/tracks_store/tracks_store.ts index c74a027c73..f0f33198b0 100644 --- a/src/main_thread/tracks_store/tracks_store.ts +++ b/src/main_thread/tracks_store/tracks_store.ts @@ -363,6 +363,7 @@ export default class TracksStore extends EventEmitter { period: IPeriodMetadata, adaptationRef: SharedReference, ): void { + log.debug("TS: Adding Track Reference", bufferType, period.id); let periodObj = getPeriodItem(this._storedPeriodInfo, period.id); if (periodObj === undefined) { // The Period has not yet been added. @@ -383,7 +384,7 @@ export default class TracksStore extends EventEmitter { log.error( `TS: Subject already added for ${bufferType} ` + `and Period ${period.start}`, ); - return; + periodObj[bufferType].dispatcher.dispose(); } const dispatcher = new TrackDispatcher(adaptationRef); @@ -502,6 +503,7 @@ export default class TracksStore extends EventEmitter { bufferType: "audio" | "text" | "video", period: IPeriodMetadata, ): void { + log.debug("TS: Removing Track Reference", bufferType, period.id); const periodIndex = findPeriodIndex(this._storedPeriodInfo, period); if (periodIndex === undefined) { log.warn(`TS: ${bufferType} not found for period`, period.start); @@ -593,6 +595,7 @@ export default class TracksStore extends EventEmitter { * You might want to call this API when restarting playback. */ public resetPeriodObjects(): void { + log.debug("TS: Resetting Period Objects"); for (let i = this._storedPeriodInfo.length - 1; i >= 0; i--) { const storedObj = this._storedPeriodInfo[i]; storedObj.audio.dispatcher?.dispose();