Browse Source

put protocol before entities

pull/442/head
aler9 4 years ago
parent
commit
bc9cbc8605
  1. 6
      internal/hlsconverter/converter.go
  2. 2
      internal/hlsconverter/multiaccessbuffer.go
  3. 2
      internal/hlsconverter/multiaccessbuffer_test.go
  4. 2
      internal/hlsconverter/tsfile.go
  5. 26
      internal/hlsserver/server.go
  6. 8
      internal/path/path.go
  7. 4
      internal/rtmpconn/conn.go
  8. 20
      internal/rtmpserver/server.go
  9. 2
      internal/rtmpsource/source.go
  10. 10
      internal/rtspconn/conn.go
  11. 20
      internal/rtspserver/server.go
  12. 22
      internal/rtspsession/session.go
  13. 2
      internal/rtspsource/source.go
  14. 22
      main.go

6
internal/converterhls/converter.go → internal/hlsconverter/converter.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package converterhls
package hlsconverter
import (
"bytes"
@ -119,7 +119,7 @@ type PathMan interface { @@ -119,7 +119,7 @@ type PathMan interface {
OnReadPublisherSetupPlay(readpublisher.SetupPlayReq)
}
// Parent is implemented by serverhls.Server.
// Parent is implemented by hlsserver.Server.
type Parent interface {
Log(logger.Level, string, ...interface{})
OnConverterClose(*Converter)
@ -594,7 +594,7 @@ func (c *Converter) runRequestHandler(terminate chan struct{}, done chan struct{ @@ -594,7 +594,7 @@ func (c *Converter) runRequestHandler(terminate chan struct{}, done chan struct{
}
}
// OnRequest is called by serverhls.Server.
// OnRequest is called by hlsserver.Server.
func (c *Converter) OnRequest(req Request) {
c.request <- req
}

2
internal/converterhls/multiaccessbuffer.go → internal/hlsconverter/multiaccessbuffer.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package converterhls
package hlsconverter
import (
"bytes"

2
internal/converterhls/multiaccessbuffer_test.go → internal/hlsconverter/multiaccessbuffer_test.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package converterhls
package hlsconverter
import (
"io"

2
internal/converterhls/tsfile.go → internal/hlsconverter/tsfile.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package converterhls
package hlsconverter
import (
"context"

26
internal/serverhls/server.go → internal/hlsserver/server.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package serverhls
package hlsserver
import (
"context"
@ -9,7 +9,7 @@ import ( @@ -9,7 +9,7 @@ import (
"sync"
"time"
"github.com/aler9/rtsp-simple-server/internal/converterhls"
"github.com/aler9/rtsp-simple-server/internal/hlsconverter"
"github.com/aler9/rtsp-simple-server/internal/logger"
"github.com/aler9/rtsp-simple-server/internal/pathman"
"github.com/aler9/rtsp-simple-server/internal/stats"
@ -31,11 +31,11 @@ type Server struct { @@ -31,11 +31,11 @@ type Server struct {
ln net.Listener
wg sync.WaitGroup
converters map[string]*converterhls.Converter
converters map[string]*hlsconverter.Converter
// in
request chan converterhls.Request
connClose chan *converterhls.Converter
request chan hlsconverter.Request
connClose chan *hlsconverter.Converter
terminate chan struct{}
// out
@ -66,9 +66,9 @@ func New( @@ -66,9 +66,9 @@ func New(
pathMan: pathMan,
parent: parent,
ln: ln,
converters: make(map[string]*converterhls.Converter),
request: make(chan converterhls.Request),
connClose: make(chan *converterhls.Converter),
converters: make(map[string]*hlsconverter.Converter),
request: make(chan hlsconverter.Request),
connClose: make(chan *hlsconverter.Converter),
terminate: make(chan struct{}),
done: make(chan struct{}),
}
@ -103,7 +103,7 @@ outer: @@ -103,7 +103,7 @@ outer:
case req := <-s.request:
c, ok := s.converters[req.Path]
if !ok {
c = converterhls.New(
c = hlsconverter.New(
s.hlsSegmentCount,
s.hlsSegmentDuration,
s.readBufferCount,
@ -174,7 +174,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { @@ -174,7 +174,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
cres := make(chan io.Reader)
s.request <- converterhls.Request{
s.request <- hlsconverter.Request{
Path: parts[0],
Subpath: parts[1],
Req: r,
@ -201,12 +201,12 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { @@ -201,12 +201,12 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
}
}
func (s *Server) doConverterClose(c *converterhls.Converter) {
func (s *Server) doConverterClose(c *hlsconverter.Converter) {
delete(s.converters, c.PathName())
c.ParentClose()
}
// OnConverterClose is called by converterhls.Converter.
func (s *Server) OnConverterClose(c *converterhls.Converter) {
// OnConverterClose is called by hlsconverter.Converter.
func (s *Server) OnConverterClose(c *hlsconverter.Converter) {
s.connClose <- c
}

8
internal/path/path.go

@ -16,8 +16,8 @@ import ( @@ -16,8 +16,8 @@ import (
"github.com/aler9/rtsp-simple-server/internal/logger"
"github.com/aler9/rtsp-simple-server/internal/readpublisher"
"github.com/aler9/rtsp-simple-server/internal/source"
"github.com/aler9/rtsp-simple-server/internal/sourcertmp"
"github.com/aler9/rtsp-simple-server/internal/sourcertsp"
"github.com/aler9/rtsp-simple-server/internal/rtmpsource"
"github.com/aler9/rtsp-simple-server/internal/rtspsource"
"github.com/aler9/rtsp-simple-server/internal/stats"
"github.com/aler9/rtsp-simple-server/internal/streamproc"
)
@ -403,7 +403,7 @@ func (pa *Path) hasExternalSource() bool { @@ -403,7 +403,7 @@ func (pa *Path) hasExternalSource() bool {
func (pa *Path) startExternalSource() {
if strings.HasPrefix(pa.conf.Source, "rtsp://") ||
strings.HasPrefix(pa.conf.Source, "rtsps://") {
pa.source = sourcertsp.New(
pa.source = rtspsource.New(
pa.conf.Source,
pa.conf.SourceProtocolParsed,
pa.conf.SourceFingerprint,
@ -416,7 +416,7 @@ func (pa *Path) startExternalSource() { @@ -416,7 +416,7 @@ func (pa *Path) startExternalSource() {
pa)
} else if strings.HasPrefix(pa.conf.Source, "rtmp://") {
pa.source = sourcertmp.New(
pa.source = rtmpsource.New(
pa.conf.Source,
pa.readTimeout,
pa.writeTimeout,

4
internal/connrtmp/conn.go → internal/rtmpconn/conn.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package connrtmp
package rtmpconn
import (
"context"
@ -54,7 +54,7 @@ type PathMan interface { @@ -54,7 +54,7 @@ type PathMan interface {
OnReadPublisherAnnounce(readpublisher.AnnounceReq)
}
// Parent is implemented by serverrtmp.Server.
// Parent is implemented by rtmpserver.Server.
type Parent interface {
Log(logger.Level, string, ...interface{})
OnConnClose(*Conn)

20
internal/serverrtmp/server.go → internal/rtmpserver/server.go

@ -1,11 +1,11 @@ @@ -1,11 +1,11 @@
package serverrtmp
package rtmpserver
import (
"net"
"sync"
"time"
"github.com/aler9/rtsp-simple-server/internal/connrtmp"
"github.com/aler9/rtsp-simple-server/internal/rtmpconn"
"github.com/aler9/rtsp-simple-server/internal/logger"
"github.com/aler9/rtsp-simple-server/internal/pathman"
"github.com/aler9/rtsp-simple-server/internal/stats"
@ -30,10 +30,10 @@ type Server struct { @@ -30,10 +30,10 @@ type Server struct {
l net.Listener
wg sync.WaitGroup
conns map[*connrtmp.Conn]struct{}
conns map[*rtmpconn.Conn]struct{}
// in
connClose chan *connrtmp.Conn
connClose chan *rtmpconn.Conn
terminate chan struct{}
// out
@ -69,8 +69,8 @@ func New( @@ -69,8 +69,8 @@ func New(
pathMan: pathMan,
parent: parent,
l: l,
conns: make(map[*connrtmp.Conn]struct{}),
connClose: make(chan *connrtmp.Conn),
conns: make(map[*rtmpconn.Conn]struct{}),
connClose: make(chan *rtmpconn.Conn),
terminate: make(chan struct{}),
done: make(chan struct{}),
}
@ -121,7 +121,7 @@ outer: @@ -121,7 +121,7 @@ outer:
break outer
case nconn := <-connNew:
c := connrtmp.New(
c := rtmpconn.New(
s.rtspAddress,
s.readTimeout,
s.writeTimeout,
@ -181,13 +181,13 @@ outer: @@ -181,13 +181,13 @@ outer:
close(s.connClose)
}
func (s *Server) doConnClose(c *connrtmp.Conn) {
func (s *Server) doConnClose(c *rtmpconn.Conn) {
delete(s.conns, c)
c.ParentClose()
c.Close()
}
// OnConnClose is called by connrtmp.Conn.
func (s *Server) OnConnClose(c *connrtmp.Conn) {
// OnConnClose is called by rtmpconn.Conn.
func (s *Server) OnConnClose(c *rtmpconn.Conn) {
s.connClose <- c
}

2
internal/sourcertmp/source.go → internal/rtmpsource/source.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package sourcertmp
package rtmpsource
import (
"context"

10
internal/connrtsp/conn.go → internal/rtspconn/conn.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package connrtsp
package rtspconn
import (
"errors"
@ -37,7 +37,7 @@ type PathMan interface { @@ -37,7 +37,7 @@ type PathMan interface {
OnReadPublisherDescribe(readpublisher.DescribeReq)
}
// Parent is implemented by serverrtsp.Server.
// Parent is implemented by rtspserver.Server.
type Parent interface {
Log(logger.Level, string, ...interface{})
}
@ -121,17 +121,17 @@ func (c *Conn) ip() net.IP { @@ -121,17 +121,17 @@ func (c *Conn) ip() net.IP {
return c.conn.NetConn().RemoteAddr().(*net.TCPAddr).IP
}
// OnRequest is called by serverrtsp.Server.
// OnRequest is called by rtspserver.Server.
func (c *Conn) OnRequest(req *base.Request) {
c.log(logger.Debug, "[c->s] %v", req)
}
// OnResponse is called by serverrtsp.Server.
// OnResponse is called by rtspserver.Server.
func (c *Conn) OnResponse(res *base.Response) {
c.log(logger.Debug, "[s->c] %v", res)
}
// OnDescribe is called by serverrtsp.Server.
// OnDescribe is called by rtspserver.Server.
func (c *Conn) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx) (*base.Response, []byte, error) {
resc := make(chan readpublisher.DescribeRes)
c.pathMan.OnReadPublisherDescribe(readpublisher.DescribeReq{

20
internal/serverrtsp/server.go → internal/rtspserver/server.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package serverrtsp
package rtspserver
import (
"crypto/rand"
@ -11,14 +11,14 @@ import ( @@ -11,14 +11,14 @@ import (
"github.com/aler9/gortsplib"
"github.com/aler9/gortsplib/pkg/base"
"github.com/aler9/rtsp-simple-server/internal/connrtsp"
"github.com/aler9/rtsp-simple-server/internal/rtspconn"
"github.com/aler9/rtsp-simple-server/internal/logger"
"github.com/aler9/rtsp-simple-server/internal/pathman"
"github.com/aler9/rtsp-simple-server/internal/sessionrtsp"
"github.com/aler9/rtsp-simple-server/internal/rtspsession"
"github.com/aler9/rtsp-simple-server/internal/stats"
)
func newSessionVisualID(sessions map[*gortsplib.ServerSession]*sessionrtsp.Session) (string, error) {
func newSessionVisualID(sessions map[*gortsplib.ServerSession]*rtspsession.Session) (string, error) {
for {
b := make([]byte, 4)
_, err := rand.Read(b)
@ -61,8 +61,8 @@ type Server struct { @@ -61,8 +61,8 @@ type Server struct {
srv *gortsplib.Server
mutex sync.RWMutex
conns map[*gortsplib.ServerConn]*connrtsp.Conn
sessions map[*gortsplib.ServerSession]*sessionrtsp.Session
conns map[*gortsplib.ServerConn]*rtspconn.Conn
sessions map[*gortsplib.ServerSession]*rtspsession.Session
// in
terminate chan struct{}
@ -100,8 +100,8 @@ func New( @@ -100,8 +100,8 @@ func New(
stats: stats,
pathMan: pathMan,
parent: parent,
conns: make(map[*gortsplib.ServerConn]*connrtsp.Conn),
sessions: make(map[*gortsplib.ServerSession]*sessionrtsp.Session),
conns: make(map[*gortsplib.ServerConn]*rtspconn.Conn),
sessions: make(map[*gortsplib.ServerSession]*rtspsession.Session),
terminate: make(chan struct{}),
done: make(chan struct{}),
}
@ -199,7 +199,7 @@ outer: @@ -199,7 +199,7 @@ outer:
// OnConnOpen implements gortsplib.ServerHandlerOnConnOpen.
func (s *Server) OnConnOpen(ctx *gortsplib.ServerHandlerOnConnOpenCtx) {
c := connrtsp.New(
c := rtspconn.New(
s.rtspAddress,
s.readTimeout,
s.runOnConnect,
@ -250,7 +250,7 @@ func (s *Server) OnSessionOpen(ctx *gortsplib.ServerHandlerOnSessionOpenCtx) { @@ -250,7 +250,7 @@ func (s *Server) OnSessionOpen(ctx *gortsplib.ServerHandlerOnSessionOpenCtx) {
// use a new random ID
visualID, _ := newSessionVisualID(s.sessions)
se := sessionrtsp.New(
se := rtspsession.New(
s.rtspAddress,
s.protocols,
visualID,

22
internal/sessionrtsp/session.go → internal/rtspsession/session.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package sessionrtsp
package rtspsession
import (
"errors"
@ -11,7 +11,7 @@ import ( @@ -11,7 +11,7 @@ import (
"github.com/aler9/gortsplib/pkg/base"
"github.com/aler9/gortsplib/pkg/headers"
"github.com/aler9/rtsp-simple-server/internal/connrtsp"
"github.com/aler9/rtsp-simple-server/internal/rtspconn"
"github.com/aler9/rtsp-simple-server/internal/externalcmd"
"github.com/aler9/rtsp-simple-server/internal/logger"
"github.com/aler9/rtsp-simple-server/internal/readpublisher"
@ -30,7 +30,7 @@ type PathMan interface { @@ -30,7 +30,7 @@ type PathMan interface {
OnReadPublisherAnnounce(readpublisher.AnnounceReq)
}
// Parent is implemented by serverrtsp.Server.
// Parent is implemented by rtspserver.Server.
type Parent interface {
Log(logger.Level, string, ...interface{})
}
@ -119,8 +119,8 @@ func (s *Session) log(level logger.Level, format string, args ...interface{}) { @@ -119,8 +119,8 @@ func (s *Session) log(level logger.Level, format string, args ...interface{}) {
s.parent.Log(level, "[session %s] "+format, append([]interface{}{s.visualID}, args...)...)
}
// OnAnnounce is called by serverrtsp.Server.
func (s *Session) OnAnnounce(c *connrtsp.Conn, ctx *gortsplib.ServerHandlerOnAnnounceCtx) (*base.Response, error) {
// OnAnnounce is called by rtspserver.Server.
func (s *Session) OnAnnounce(c *rtspconn.Conn, ctx *gortsplib.ServerHandlerOnAnnounceCtx) (*base.Response, error) {
resc := make(chan readpublisher.AnnounceRes)
s.pathMan.OnReadPublisherAnnounce(readpublisher.AnnounceReq{
Author: s,
@ -159,8 +159,8 @@ func (s *Session) OnAnnounce(c *connrtsp.Conn, ctx *gortsplib.ServerHandlerOnAnn @@ -159,8 +159,8 @@ func (s *Session) OnAnnounce(c *connrtsp.Conn, ctx *gortsplib.ServerHandlerOnAnn
}, nil
}
// OnSetup is called by serverrtsp.Server.
func (s *Session) OnSetup(c *connrtsp.Conn, ctx *gortsplib.ServerHandlerOnSetupCtx) (*base.Response, error) {
// OnSetup is called by rtspserver.Server.
func (s *Session) OnSetup(c *rtspconn.Conn, ctx *gortsplib.ServerHandlerOnSetupCtx) (*base.Response, error) {
if ctx.Transport.Protocol == gortsplib.StreamProtocolUDP {
if _, ok := s.protocols[gortsplib.StreamProtocolUDP]; !ok {
return &base.Response{
@ -232,7 +232,7 @@ func (s *Session) OnSetup(c *connrtsp.Conn, ctx *gortsplib.ServerHandlerOnSetupC @@ -232,7 +232,7 @@ func (s *Session) OnSetup(c *connrtsp.Conn, ctx *gortsplib.ServerHandlerOnSetupC
}, nil
}
// OnPlay is called by serverrtsp.Server.
// OnPlay is called by rtspserver.Server.
func (s *Session) OnPlay(ctx *gortsplib.ServerHandlerOnPlayCtx) (*base.Response, error) {
h := make(base.Header)
@ -309,7 +309,7 @@ func (s *Session) OnPlay(ctx *gortsplib.ServerHandlerOnPlayCtx) (*base.Response, @@ -309,7 +309,7 @@ func (s *Session) OnPlay(ctx *gortsplib.ServerHandlerOnPlayCtx) (*base.Response,
}, nil
}
// OnRecord is called by serverrtsp.Server.
// OnRecord is called by rtspserver.Server.
func (s *Session) OnRecord(ctx *gortsplib.ServerHandlerOnRecordCtx) (*base.Response, error) {
if ctx.Path != s.path.Name() {
return &base.Response{
@ -355,7 +355,7 @@ func (s *Session) OnRecord(ctx *gortsplib.ServerHandlerOnRecordCtx) (*base.Respo @@ -355,7 +355,7 @@ func (s *Session) OnRecord(ctx *gortsplib.ServerHandlerOnRecordCtx) (*base.Respo
}, nil
}
// OnPause is called by serverrtsp.Server.
// OnPause is called by rtspserver.Server.
func (s *Session) OnPause(ctx *gortsplib.ServerHandlerOnPauseCtx) (*base.Response, error) {
switch s.ss.State() {
case gortsplib.ServerSessionStatePlay:
@ -391,7 +391,7 @@ func (s *Session) OnFrame(trackID int, streamType gortsplib.StreamType, payload @@ -391,7 +391,7 @@ func (s *Session) OnFrame(trackID int, streamType gortsplib.StreamType, payload
s.ss.WriteFrame(trackID, streamType, payload)
}
// OnIncomingFrame is called by serverrtsp.Server.
// OnIncomingFrame is called by rtspserver.Server.
func (s *Session) OnIncomingFrame(ctx *gortsplib.ServerHandlerOnFrameCtx) {
if s.ss.State() != gortsplib.ServerSessionStateRecord {
return

2
internal/sourcertsp/source.go → internal/rtspsource/source.go

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package sourcertsp
package rtspsource
import (
"crypto/sha256"

22
main.go

@ -16,9 +16,9 @@ import ( @@ -16,9 +16,9 @@ import (
"github.com/aler9/rtsp-simple-server/internal/pathman"
"github.com/aler9/rtsp-simple-server/internal/pprof"
"github.com/aler9/rtsp-simple-server/internal/rlimit"
"github.com/aler9/rtsp-simple-server/internal/serverhls"
"github.com/aler9/rtsp-simple-server/internal/serverrtmp"
"github.com/aler9/rtsp-simple-server/internal/serverrtsp"
"github.com/aler9/rtsp-simple-server/internal/hlsserver"
"github.com/aler9/rtsp-simple-server/internal/rtmpserver"
"github.com/aler9/rtsp-simple-server/internal/rtspserver"
"github.com/aler9/rtsp-simple-server/internal/stats"
)
@ -33,10 +33,10 @@ type program struct { @@ -33,10 +33,10 @@ type program struct {
metrics *metrics.Metrics
pprof *pprof.PPROF
pathMan *pathman.PathManager
serverRTSPPlain *serverrtsp.Server
serverRTSPTLS *serverrtsp.Server
serverRTMP *serverrtmp.Server
serverHLS *serverhls.Server
serverRTSPPlain *rtspserver.Server
serverRTSPTLS *rtspserver.Server
serverRTMP *rtmpserver.Server
serverHLS *hlsserver.Server
confWatcher *confwatcher.ConfWatcher
terminate chan struct{}
@ -206,7 +206,7 @@ func (p *program) createResources(initial bool) error { @@ -206,7 +206,7 @@ func (p *program) createResources(initial bool) error {
p.conf.EncryptionParsed == conf.EncryptionOptional) {
if p.serverRTSPPlain == nil {
_, useUDP := p.conf.ProtocolsParsed[gortsplib.StreamProtocolUDP]
p.serverRTSPPlain, err = serverrtsp.New(
p.serverRTSPPlain, err = rtspserver.New(
p.conf.RTSPAddress,
p.conf.ReadTimeout,
p.conf.WriteTimeout,
@ -235,7 +235,7 @@ func (p *program) createResources(initial bool) error { @@ -235,7 +235,7 @@ func (p *program) createResources(initial bool) error {
(p.conf.EncryptionParsed == conf.EncryptionStrict ||
p.conf.EncryptionParsed == conf.EncryptionOptional) {
if p.serverRTSPTLS == nil {
p.serverRTSPTLS, err = serverrtsp.New(
p.serverRTSPTLS, err = rtspserver.New(
p.conf.RTSPSAddress,
p.conf.ReadTimeout,
p.conf.WriteTimeout,
@ -262,7 +262,7 @@ func (p *program) createResources(initial bool) error { @@ -262,7 +262,7 @@ func (p *program) createResources(initial bool) error {
if !p.conf.RTMPDisable {
if p.serverRTMP == nil {
p.serverRTMP, err = serverrtmp.New(
p.serverRTMP, err = rtmpserver.New(
p.conf.RTMPAddress,
p.conf.ReadTimeout,
p.conf.WriteTimeout,
@ -281,7 +281,7 @@ func (p *program) createResources(initial bool) error { @@ -281,7 +281,7 @@ func (p *program) createResources(initial bool) error {
if !p.conf.HLSDisable {
if p.serverHLS == nil {
p.serverHLS, err = serverhls.New(
p.serverHLS, err = hlsserver.New(
p.conf.HLSAddress,
p.conf.HLSSegmentCount,
p.conf.HLSSegmentDuration,

Loading…
Cancel
Save