Rtsp: add DialWithConn

This commit is contained in:
afocus 2024-01-31 17:32:47 +08:00
parent 7a563b07e3
commit 7d6ed926f2

View File

@ -106,6 +106,21 @@ type RTSPClientOptions struct {
} }
func Dial(options RTSPClientOptions) (*RTSPClient, error) { func Dial(options RTSPClientOptions) (*RTSPClient, error) {
u, err := url.Parse(options.URL)
if err != nil {
return nil, err
}
if u.Port() == "" {
u.Host = fmt.Sprintf("%s:%s", u.Host, "554")
}
conn, err := net.DialTimeout("tcp", u.Host, options.DialTimeout)
if err != nil {
return nil, err
}
return DialWithConn(options, conn)
}
func DialWithConn(options RTSPClientOptions, conn net.Conn) (*RTSPClient, error) {
client := &RTSPClient{ client := &RTSPClient{
headers: make(map[string]string), headers: make(map[string]string),
Signals: make(chan int, 100), Signals: make(chan int, 100),
@ -124,10 +139,6 @@ func Dial(options RTSPClientOptions) (*RTSPClient, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
conn, err := net.DialTimeout("tcp", client.pURL.Host, client.options.DialTimeout)
if err != nil {
return nil, err
}
err = conn.SetDeadline(time.Now().Add(client.options.ReadWriteTimeout)) err = conn.SetDeadline(time.Now().Add(client.options.ReadWriteTimeout))
if err != nil { if err != nil {
return nil, err return nil, err