Files
2026-04-04 19:36:14 +02:00

41 lines
744 B
Go

package wyoming
import (
"bytes"
"net"
"github.com/AlexxIT/go2rtc/pkg/core"
"github.com/AlexxIT/go2rtc/pkg/pcm"
)
func (s *Server) HandleSnd(conn net.Conn) {
defer conn.Close()
var snd []byte
api := NewAPI(conn)
for {
evt, err := api.ReadEvent()
if err != nil {
return
}
s.Trace("event: %s data: %s payload: %d", evt.Type, evt.Data, len(evt.Payload))
switch evt.Type {
case "audio-start":
snd = snd[:0]
case "audio-chunk":
snd = append(snd, evt.Payload...)
case "audio-stop":
prod := pcm.OpenSync(sndCodec, bytes.NewReader(snd))
if err = s.SndHandler(prod); err != nil {
s.Error("snd error: %s", err)
return
}
}
}
}
var sndCodec = &core.Codec{Name: core.CodecPCML, ClockRate: 22050}