fix track url generation

This commit is contained in:
aler9
2020-09-05 20:34:37 +02:00
parent 6d46442a79
commit 37e3a1f29f

View File

@@ -335,20 +335,26 @@ func (c *ConnClient) urlForTrack(baseUrl *url.URL, track *Track) *url.URL {
} }
// control attribute contains a relative path // control attribute contains a relative path
return &url.URL{ u := &url.URL{
Scheme: "rtsp", Scheme: "rtsp",
Host: baseUrl.Host, Host: baseUrl.Host,
User: baseUrl.User, User: baseUrl.User,
Path: func() string { Path: baseUrl.Path,
ret := baseUrl.Path
if len(ret) == 0 || ret[len(ret)-1] != '/' {
ret += "/"
}
ret += control
return ret
}(),
RawQuery: baseUrl.RawQuery, RawQuery: baseUrl.RawQuery,
} }
// insert the control attribute after the query, if present
if u.RawQuery != "" {
if !strings.HasSuffix(u.RawQuery, "/") {
u.RawQuery += "/"
}
u.RawQuery += control
} else {
if !strings.HasSuffix(u.Path, "/") {
u.Path += "/"
}
u.Path += control
}
return u
} }
func (c *ConnClient) setup(u *url.URL, track *Track, transport []string) (*Response, error) { func (c *ConnClient) setup(u *url.URL, track *Track, transport []string) (*Response, error) {