This repository has no description

refactor(player): stabilize callback identities, drop redundant HLSPlayer key master

surfaceError listed useWebRTC in its useCallback deps, so it got a new identity on every transport toggle. The video event-listener effect (play/pause/playing/loadedmetadata/error) listed surfaceError in its deps, so every toggle tore down and re-added all five listeners. Read useWebRTC and onError via refs instead; surfaceError becomes stable and the effect only runs on active / onPlaying changes. HLSPlayer's stats-polling interval had the same shape: onStatsChange is created fresh on every Player render (setStats), so the interval tore down and re-created each render. Same fix: onStatsChangeRef. Drop onStatsChange from the dep array. The sona key on HLSPlayer was forcing a full remount on src change, but the HLSPlayer effect already tears down and rebuilds hls.js on src change. The remount was redundant churn. Drop sona, the resetSona effect, and the key.


+24 -19
2 changed files