43 lines
802 B
Go
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
|
|
}
|
|
}
|