From c9dcebed6f28a5195cc4cc3c2c4f15520d4fe454 Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Tue, 12 Aug 2025 08:53:25 +0200 Subject: [PATCH] Skip zero-length AudioSamples --- src/media-sink.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/media-sink.ts b/src/media-sink.ts index aec70e7..6c4de94 100644 --- a/src/media-sink.ts +++ b/src/media-sink.ts @@ -1248,9 +1248,15 @@ class AudioDecoderWrapper extends DecoderWrapper { super(onSample, onError); const sampleHandler = (sample: AudioSample) => { - const sampleRate = decoderConfig.sampleRate; + if (sample.numberOfFrames === 0) { + // We skip zero-data (empty) AudioSamples. These are sometimes emitted, for example, by Firefox when it + // decodes Vorbis (at the start). + sample.close(); + return; + } // Round the timestamp to the sample rate + const sampleRate = decoderConfig.sampleRate; sample.setTimestamp(Math.round(sample.timestamp * sampleRate) / sampleRate); onSample(sample);