Resume re-arms a pipeline whose ffmpeg pass was killed at pause, so the pre-pause bars are stale until fresh frames flow. Three changes: - resumeVisualization always sets the loading state (previously only for positions outside decoded coverage) and records the resume point; renderFrame clears it only once the position clock advances past that point — a player still re-buffering after a long pause keeps the spinner instead of serving static cached bars. - stopVisualization clears barData so cold restarts (unload, disable, episode change) show the spinner rather than stale bars, and never suppress it. - renderFrame detects a frozen position clock while playing (STALL_DETECT_MS) and surfaces it as a loading state; recovery clears it. Tests: resume-into-undecoded-audio shows loading until bars land; frozen position clock surfaces a stall and recovery clears it; disable/enable pins barData cleared on stop and the restart loading flash.
13 KiB
13 KiB