Skip to content

Cues not discarded across attachSource calls leading to increased JS heap usage #4427

@vodlogic

Description

@vodlogic

We have observed JS Heap increasing at a rate of approximately 1MB every 3 minutes when a new manifest is loaded when player.attachSource(<new manifest URL>) is called every 15 seconds when subtitles are enabled. We observe this in dash.js 4.7.4 and are yet to try earlier versions of dash.js

When subtitles are disabled, JS heap increases only a couple of MB per hour when attachSource() is called every 15 seconds.

This leads us to hypothesise that cues are not being properly cleaned up when a new manifest is loaded by the player.

We can see that the number of cues continues to grow across calls to attachSource()

document.querySelector('video').textTracks[0].cues.length

The fix merged in #4305 resolved a memory leak when soak testing a stream for 24 hours without calling attachSource()

Not sure if this is related, but we also wanted to check the logic that has been implemented for the previous PR to discard outdated cues.

https://github.com/Dash-Industry-Forum/dash.js/pull/4305/files#diff-033321ac6c729cfa349f6ca06067679dc6919fe8fe1023ec6fd990c83e98ac9aR829

Should the expression be return cue.startTime <= currentTime && cue.endTime >= currentTime to determine if cue is active?

Metadata

Metadata

Assignees

Type

No type

Projects

Status

No status

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions