test(player): skip mid-stream silence in BufferedStreamer basic test
TestBufferedStreamer_BasicStream flaked under -race (got 1256/1512 vs 1000 expected). The streamer injects silence frames by design when its ring buffer momentarily underruns; under the race detector the consumer outran read-ahead and received mid-stream 256-sample silence frames. The collection loop only skipped leading silence, so those frames were counted as data. Skip all zero frames, matching the test's own drain loop — real samples always start at 1.0, so any zero is injected silence, never source data. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -68,8 +68,11 @@ func TestBufferedStreamer_BasicStream(t *testing.T) {
|
||||
n, ok := bs.Stream(buf)
|
||||
|
||||
for i := range n {
|
||||
// Skip silence frames (buffer not yet filled).
|
||||
if buf[i][0] == 0 && buf[i][1] == 0 && len(collected) == 0 {
|
||||
// Skip silence frames the streamer injects whenever its
|
||||
// ring buffer momentarily underruns (not just leading
|
||||
// silence). Real samples always start at 1.0, so any zero
|
||||
// frame is injected silence, never source data.
|
||||
if buf[i][0] == 0 && buf[i][1] == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user