mirror of
https://github.com/aler9/rtsp-simple-server
synced 2025-10-14 11:53:54 +08:00
update gortsplib
This commit is contained in:
2
go.mod
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
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=
|
||||||
|
@@ -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)
|
||||||
}
|
}
|
||||||
|
@@ -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{
|
||||||
|
@@ -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,
|
||||||
|
@@ -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
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user