Browse Source

update gortsplib

pull/1003/head
aler9 3 years ago
parent
commit
9d3fd3bc37
  1. 2
      go.mod
  2. 4
      go.sum
  3. 14
      internal/conf/path.go
  4. 9
      internal/core/core_test.go
  5. 5
      internal/core/path.go
  6. 3
      internal/core/rtsp_source.go
  7. 5
      internal/core/rtsp_source_test.go

2
go.mod

@ -5,7 +5,7 @@ go 1.17
require ( require (
code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5 code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5
github.com/abema/go-mp4 v0.7.2 github.com/abema/go-mp4 v0.7.2
github.com/aler9/gortsplib v0.0.0-20220603103218-aaa44f4fae99 github.com/aler9/gortsplib v0.0.0-20220604232719-2fa3148a2751
github.com/asticode/go-astits v1.10.1-0.20220319093903-4abe66a9b757 github.com/asticode/go-astits v1.10.1-0.20220319093903-4abe66a9b757
github.com/fsnotify/fsnotify v1.4.9 github.com/fsnotify/fsnotify v1.4.9
github.com/gin-gonic/gin v1.7.2 github.com/gin-gonic/gin v1.7.2

4
go.sum

@ -6,8 +6,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafo
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
github.com/aler9/gortsplib v0.0.0-20220603103218-aaa44f4fae99 h1:k+SHMpSqH91+T/s3LODpNR/flWEZ5j9lPXx9y/awe6Q= github.com/aler9/gortsplib v0.0.0-20220604232719-2fa3148a2751 h1:t17XcHHAn4BmKQT1/re5xsGpJC48UJJtgv6PAlNXkcE=
github.com/aler9/gortsplib v0.0.0-20220603103218-aaa44f4fae99/go.mod h1:i1e4CEs42IrbidMUNTSNOKmeGPCOHVX9P3BvPxzyMtI= github.com/aler9/gortsplib v0.0.0-20220604232719-2fa3148a2751/go.mod h1:i1e4CEs42IrbidMUNTSNOKmeGPCOHVX9P3BvPxzyMtI=
github.com/aler9/rtmp v0.0.0-20210403095203-3be4a5535927 h1:95mXJ5fUCYpBRdSOnLAQAdJHHKxxxJrVCiaqDi965YQ= github.com/aler9/rtmp v0.0.0-20210403095203-3be4a5535927 h1:95mXJ5fUCYpBRdSOnLAQAdJHHKxxxJrVCiaqDi965YQ=
github.com/aler9/rtmp v0.0.0-20210403095203-3be4a5535927/go.mod h1:vzuE21rowz+lT1NGsWbreIvYulgBpCGnQyeTyFblUHc= github.com/aler9/rtmp v0.0.0-20210403095203-3be4a5535927/go.mod h1:vzuE21rowz+lT1NGsWbreIvYulgBpCGnQyeTyFblUHc=
github.com/aler9/writerseeker v0.0.0-20220601075008-6f0e685b9c82 h1:9WgSzBLo3a9ToSVV7sRTBYZ1GGOZUpq4+5H3SN0UZq4= github.com/aler9/writerseeker v0.0.0-20220601075008-6f0e685b9c82 h1:9WgSzBLo3a9ToSVV7sRTBYZ1GGOZUpq4+5H3SN0UZq4=

14
internal/conf/path.go

@ -3,12 +3,12 @@ package conf
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"net/url" gourl "net/url"
"regexp" "regexp"
"strings" "strings"
"time" "time"
"github.com/aler9/gortsplib/pkg/base" "github.com/aler9/gortsplib/pkg/url"
) )
var rePathName = regexp.MustCompile(`^[0-9a-zA-Z_\-/\.~]+$`) var rePathName = regexp.MustCompile(`^[0-9a-zA-Z_\-/\.~]+$`)
@ -105,7 +105,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error {
return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a RTSP source; use another path") return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a RTSP source; use another path")
} }
_, err := base.ParseURL(pconf.Source) _, err := url.Parse(pconf.Source)
if err != nil { if err != nil {
return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.Source) return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.Source)
} }
@ -115,7 +115,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error {
return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a RTMP source; use another path") return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a RTMP source; use another path")
} }
u, err := url.Parse(pconf.Source) u, err := gourl.Parse(pconf.Source)
if err != nil { if err != nil {
return fmt.Errorf("'%s' is not a valid RTMP URL", pconf.Source) return fmt.Errorf("'%s' is not a valid RTMP URL", pconf.Source)
} }
@ -138,7 +138,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error {
return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a HLS source; use another path") return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a HLS source; use another path")
} }
u, err := url.Parse(pconf.Source) u, err := gourl.Parse(pconf.Source)
if err != nil { if err != nil {
return fmt.Errorf("'%s' is not a valid HLS URL", pconf.Source) return fmt.Errorf("'%s' is not a valid HLS URL", pconf.Source)
} }
@ -160,7 +160,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error {
return fmt.Errorf("source redirect must be filled") return fmt.Errorf("source redirect must be filled")
} }
_, err := base.ParseURL(pconf.SourceRedirect) _, err := url.Parse(pconf.SourceRedirect)
if err != nil { if err != nil {
return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.SourceRedirect) return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.SourceRedirect)
} }
@ -190,7 +190,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error {
return fmt.Errorf("'%s': %s", pconf.Fallback, err) return fmt.Errorf("'%s': %s", pconf.Fallback, err)
} }
} else { } else {
_, err := base.ParseURL(pconf.Fallback) _, err := url.Parse(pconf.Fallback)
if err != nil { if err != nil {
return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.Fallback) return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.Fallback)
} }

9
internal/core/core_test.go

@ -15,6 +15,7 @@ import (
"github.com/aler9/gortsplib" "github.com/aler9/gortsplib"
"github.com/aler9/gortsplib/pkg/base" "github.com/aler9/gortsplib/pkg/base"
"github.com/aler9/gortsplib/pkg/headers" "github.com/aler9/gortsplib/pkg/headers"
"github.com/aler9/gortsplib/pkg/url"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
@ -168,7 +169,7 @@ func TestCorePathAutoDeletion(t *testing.T) {
br := bufio.NewReader(conn) br := bufio.NewReader(conn)
if ca == "describe" { if ca == "describe" {
u, err := base.ParseURL("rtsp://localhost:8554/mypath") u, err := url.Parse("rtsp://localhost:8554/mypath")
require.NoError(t, err) require.NoError(t, err)
byts, _ := base.Request{ byts, _ := base.Request{
@ -186,7 +187,7 @@ func TestCorePathAutoDeletion(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, base.StatusNotFound, res.StatusCode) require.Equal(t, base.StatusNotFound, res.StatusCode)
} else { } else {
u, err := base.ParseURL("rtsp://localhost:8554/mypath/trackID=0") u, err := url.Parse("rtsp://localhost:8554/mypath/trackID=0")
require.NoError(t, err) require.NoError(t, err)
byts, _ := base.Request{ byts, _ := base.Request{
@ -304,7 +305,7 @@ func main() {
br := bufio.NewReader(conn) br := bufio.NewReader(conn)
if ca == "describe" || ca == "describe and setup" { if ca == "describe" || ca == "describe and setup" {
u, err := base.ParseURL("rtsp://localhost:8554/ondemand") u, err := url.Parse("rtsp://localhost:8554/ondemand")
require.NoError(t, err) require.NoError(t, err)
byts, _ := base.Request{ byts, _ := base.Request{
@ -324,7 +325,7 @@ func main() {
} }
if ca == "setup" || ca == "describe and setup" { if ca == "setup" || ca == "describe and setup" {
u, err := base.ParseURL("rtsp://localhost:8554/ondemand/trackID=0") u, err := url.Parse("rtsp://localhost:8554/ondemand/trackID=0")
require.NoError(t, err) require.NoError(t, err)
byts, _ := base.Request{ byts, _ := base.Request{

5
internal/core/path.go

@ -11,6 +11,7 @@ import (
"github.com/aler9/gortsplib" "github.com/aler9/gortsplib"
"github.com/aler9/gortsplib/pkg/base" "github.com/aler9/gortsplib/pkg/base"
"github.com/aler9/gortsplib/pkg/url"
"github.com/aler9/rtsp-simple-server/internal/conf" "github.com/aler9/rtsp-simple-server/internal/conf"
"github.com/aler9/rtsp-simple-server/internal/externalcmd" "github.com/aler9/rtsp-simple-server/internal/externalcmd"
@ -119,7 +120,7 @@ type pathDescribeRes struct {
type pathDescribeReq struct { type pathDescribeReq struct {
pathName string pathName string
url *base.URL url *url.URL
authenticate authenticateFunc authenticate authenticateFunc
res chan pathDescribeRes res chan pathDescribeRes
} }
@ -781,7 +782,7 @@ func (pa *path) handleDescribe(req pathDescribeReq) {
if pa.conf.Fallback != "" { if pa.conf.Fallback != "" {
fallbackURL := func() string { fallbackURL := func() string {
if strings.HasPrefix(pa.conf.Fallback, "/") { if strings.HasPrefix(pa.conf.Fallback, "/") {
ur := base.URL{ ur := url.URL{
Scheme: req.url.Scheme, Scheme: req.url.Scheme,
User: req.url.User, User: req.url.User,
Host: req.url.Host, Host: req.url.Host,

3
internal/core/rtsp_source.go

@ -13,6 +13,7 @@ import (
"github.com/aler9/gortsplib" "github.com/aler9/gortsplib"
"github.com/aler9/gortsplib/pkg/base" "github.com/aler9/gortsplib/pkg/base"
"github.com/aler9/gortsplib/pkg/url"
"github.com/aler9/rtsp-simple-server/internal/conf" "github.com/aler9/rtsp-simple-server/internal/conf"
"github.com/aler9/rtsp-simple-server/internal/logger" "github.com/aler9/rtsp-simple-server/internal/logger"
) )
@ -151,7 +152,7 @@ func (s *rtspSource) runInner() bool {
}, },
} }
u, err := base.ParseURL(s.ur) u, err := url.Parse(s.ur)
if err != nil { if err != nil {
s.log(logger.Info, "ERR: %s", err) s.log(logger.Info, "ERR: %s", err)
return true return true

5
internal/core/rtsp_source_test.go

@ -10,6 +10,7 @@ import (
"github.com/aler9/gortsplib/pkg/auth" "github.com/aler9/gortsplib/pkg/auth"
"github.com/aler9/gortsplib/pkg/base" "github.com/aler9/gortsplib/pkg/base"
"github.com/aler9/gortsplib/pkg/rtph264" "github.com/aler9/gortsplib/pkg/rtph264"
"github.com/aler9/gortsplib/pkg/url"
"github.com/pion/rtp" "github.com/pion/rtp"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
@ -274,7 +275,7 @@ func TestRTSPSourceDynamicH264Params(t *testing.T) {
func() { func() {
c := gortsplib.Client{} c := gortsplib.Client{}
u, err := base.ParseURL("rtsp://127.0.0.1:8554/proxied") u, err := url.Parse("rtsp://127.0.0.1:8554/proxied")
require.NoError(t, err) require.NoError(t, err)
err = c.Start(u.Scheme, u.Host) err = c.Start(u.Scheme, u.Host)
@ -303,7 +304,7 @@ func TestRTSPSourceDynamicH264Params(t *testing.T) {
func() { func() {
c := gortsplib.Client{} c := gortsplib.Client{}
u, err := base.ParseURL("rtsp://127.0.0.1:8554/proxied") u, err := url.Parse("rtsp://127.0.0.1:8554/proxied")
require.NoError(t, err) require.NoError(t, err)
err = c.Start(u.Scheme, u.Host) err = c.Start(u.Scheme, u.Host)

Loading…
Cancel
Save