Go-based FM stereo transmitter with RDS, Windows-first and cross-platform
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

34 строки
697B

  1. package stdinpcm
  2. import (
  3. "bytes"
  4. "context"
  5. "testing"
  6. "time"
  7. )
  8. func TestSourceReadsPCMChunks(t *testing.T) {
  9. // Two stereo frames (S16LE): [0,0] and [32767,-32768]
  10. raw := []byte{
  11. 0x00, 0x00, 0x00, 0x00,
  12. 0xff, 0x7f, 0x00, 0x80,
  13. }
  14. src := New("stdin-test", bytes.NewReader(raw), 44100, 2, 2)
  15. if err := src.Start(context.Background()); err != nil {
  16. t.Fatalf("start: %v", err)
  17. }
  18. defer src.Stop()
  19. select {
  20. case chunk := <-src.Chunks():
  21. if chunk.Channels != 2 {
  22. t.Fatalf("channels=%d", chunk.Channels)
  23. }
  24. if len(chunk.Samples) != 4 {
  25. t.Fatalf("samples=%d want 4", len(chunk.Samples))
  26. }
  27. case <-time.After(1 * time.Second):
  28. t.Fatal("timed out waiting for chunk")
  29. }
  30. }