mirror of
https://github.com/aler9/rtsp-simple-server
synced 2025-09-27 03:56:15 +08:00
118 lines
2.9 KiB
Go
118 lines
2.9 KiB
Go
package defs
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/bluenviron/gortsplib/v5/pkg/description"
|
|
|
|
"github.com/bluenviron/mediamtx/internal/conf"
|
|
"github.com/bluenviron/mediamtx/internal/externalcmd"
|
|
"github.com/bluenviron/mediamtx/internal/stream"
|
|
)
|
|
|
|
// PathNoStreamAvailableError is returned when no one is publishing.
|
|
type PathNoStreamAvailableError struct {
|
|
PathName string
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e PathNoStreamAvailableError) Error() string {
|
|
return fmt.Sprintf("no stream is available on path '%s'", e.PathName)
|
|
}
|
|
|
|
// Path is a path.
|
|
type Path interface {
|
|
Name() string
|
|
SafeConf() *conf.Path
|
|
ExternalCmdEnv() externalcmd.Environment
|
|
RemovePublisher(req PathRemovePublisherReq)
|
|
RemoveReader(req PathRemoveReaderReq)
|
|
}
|
|
|
|
// PathFindPathConfRes contains the response of FindPathConf().
|
|
type PathFindPathConfRes struct {
|
|
Conf *conf.Path
|
|
Err error
|
|
}
|
|
|
|
// PathFindPathConfReq contains arguments of FindPathConf().
|
|
type PathFindPathConfReq struct {
|
|
AccessRequest PathAccessRequest
|
|
Res chan PathFindPathConfRes
|
|
}
|
|
|
|
// PathDescribeRes contains the response of Describe().
|
|
type PathDescribeRes struct {
|
|
Path Path
|
|
Stream *stream.Stream
|
|
Redirect string
|
|
Err error
|
|
}
|
|
|
|
// PathDescribeReq contains arguments of Describe().
|
|
type PathDescribeReq struct {
|
|
AccessRequest PathAccessRequest
|
|
Res chan PathDescribeRes
|
|
}
|
|
|
|
// PathAddPublisherRes contains the response of AddPublisher().
|
|
type PathAddPublisherRes struct {
|
|
Path Path
|
|
Stream *stream.Stream
|
|
Err error
|
|
}
|
|
|
|
// PathAddPublisherReq contains arguments of AddPublisher().
|
|
type PathAddPublisherReq struct {
|
|
Author Publisher
|
|
Desc *description.Session
|
|
GenerateRTPPackets bool
|
|
ConfToCompare *conf.Path
|
|
AccessRequest PathAccessRequest
|
|
Res chan PathAddPublisherRes
|
|
}
|
|
|
|
// PathRemovePublisherReq contains arguments of RemovePublisher().
|
|
type PathRemovePublisherReq struct {
|
|
Author Publisher
|
|
Res chan struct{}
|
|
}
|
|
|
|
// PathAddReaderRes contains the response of AddReader().
|
|
type PathAddReaderRes struct {
|
|
Path Path
|
|
Stream *stream.Stream
|
|
Err error
|
|
}
|
|
|
|
// PathAddReaderReq contains arguments of AddReader().
|
|
type PathAddReaderReq struct {
|
|
Author Reader
|
|
AccessRequest PathAccessRequest
|
|
Res chan PathAddReaderRes
|
|
}
|
|
|
|
// PathRemoveReaderReq contains arguments of RemoveReader().
|
|
type PathRemoveReaderReq struct {
|
|
Author Reader
|
|
Res chan struct{}
|
|
}
|
|
|
|
// PathSourceStaticSetReadyRes contains the response of SetReadu().
|
|
type PathSourceStaticSetReadyRes struct {
|
|
Stream *stream.Stream
|
|
Err error
|
|
}
|
|
|
|
// PathSourceStaticSetReadyReq contains arguments of SetReady().
|
|
type PathSourceStaticSetReadyReq struct {
|
|
Desc *description.Session
|
|
GenerateRTPPackets bool
|
|
Res chan PathSourceStaticSetReadyRes
|
|
}
|
|
|
|
// PathSourceStaticSetNotReadyReq contains arguments of SetNotReady().
|
|
type PathSourceStaticSetNotReadyReq struct {
|
|
Res chan struct{}
|
|
}
|