package stdinpcm import ( "bytes" "context" "testing" "time" ) func TestSourceReadsPCMChunks(t *testing.T) { // Two stereo frames (S16LE): [0,0] and [32767,-32768] raw := []byte{ 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x80, } src := New("stdin-test", bytes.NewReader(raw), 44100, 2, 2) if err := src.Start(context.Background()); err != nil { t.Fatalf("start: %v", err) } defer src.Stop() select { case chunk := <-src.Chunks(): if chunk.Channels != 2 { t.Fatalf("channels=%d", chunk.Channels) } if len(chunk.Samples) != 4 { t.Fatalf("samples=%d want 4", len(chunk.Samples)) } case <-time.After(1 * time.Second): t.Fatal("timed out waiting for chunk") } }