Files
go2rtc/pkg/wyoming/wyoming.go
T
2025-04-22 06:37:42 +03:00

43 lines
802 B
Go

package wyoming
import (
"net"
"net/url"
"github.com/AlexxIT/go2rtc/pkg/core"
)
func Dial(rawURL string) (core.Producer, error) {
u, err := url.Parse(rawURL)
if err != nil {
return nil, err
}
conn, err := net.DialTimeout("tcp", u.Host, core.ConnDialTimeout)
if err != nil {
return nil, err
}
cc := core.Connection{
ID: core.NewID(),
FormatName: "wyoming",
Medias: []*core.Media{
{
Kind: core.KindAudio,
Codecs: []*core.Codec{
{Name: core.CodecPCML, ClockRate: 16000},
},
},
},
Transport: conn,
}
if u.Query().Get("backchannel") != "1" {
cc.Medias[0].Direction = core.DirectionRecvonly
return &Producer{cc, NewAPI(conn)}, nil
} else {
cc.Medias[0].Direction = core.DirectionSendonly
return &Backchannel{cc, NewAPI(conn)}, nil
}
}