|
- package aoiprxkit
-
- import (
- "bytes"
- "testing"
- )
-
- func TestWriteAndReadPCM32Packet(t *testing.T) {
- var buf bytes.Buffer
- samples := []int32{1, -1, 10, -10}
- if err := WritePCM32Packet(&buf, 2, 48000, 2, 7, 1234, samples); err != nil {
- t.Fatalf("unexpected write error: %v", err)
- }
- hdr, err := ReadStreamHeader(&buf)
- if err != nil {
- t.Fatalf("unexpected read header error: %v", err)
- }
- if hdr.Codec != StreamCodecPCM_S32LE || hdr.Channels != 2 || hdr.SampleRateHz != 48000 || hdr.FrameSamples != 2 || hdr.Sequence != 7 || hdr.Timestamp != 1234 || hdr.PayloadBytes != 16 {
- t.Fatalf("unexpected header: %+v", hdr)
- }
- payload := make([]byte, hdr.PayloadBytes)
- if _, err := buf.Read(payload); err != nil {
- t.Fatalf("unexpected payload read error: %v", err)
- }
- got, err := DecodeS32LE(payload, 2)
- if err != nil {
- t.Fatalf("unexpected decode error: %v", err)
- }
- for i := range samples {
- if got[i] != samples[i] {
- t.Fatalf("sample %d mismatch: got=%d want=%d", i, got[i], samples[i])
- }
- }
- }
|