Media-over-QUIC is a streaming protocol built upon cutting edge protocols (QUIC, HTTP3) and browser APIs (WebTransport, WebCodecs). It's slightly faster than WebRTC, has an advanced data recovery mechanism (placed at the frame level and not at the packet level), it supports additional codecs (FLAC) and is less complicated to route.
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package defs
|
|
|
|
import (
|
|
"net"
|
|
|
|
"github.com/bluenviron/mediamtx/internal/auth"
|
|
"github.com/bluenviron/mediamtx/internal/conf"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// PathAccessRequest is a path access request.
|
|
type PathAccessRequest struct {
|
|
Name string
|
|
Query string
|
|
UserAgent string
|
|
Publish bool
|
|
SkipAuth bool
|
|
|
|
// only if skipAuth = false
|
|
Proto auth.Protocol
|
|
ID *uuid.UUID
|
|
Credentials *auth.Credentials
|
|
IP net.IP
|
|
CustomVerifyFunc func(expectedUser string, expectedPass string) bool
|
|
}
|
|
|
|
// ToAuthRequest converts a path access request into an authentication request.
|
|
func (r *PathAccessRequest) ToAuthRequest() *auth.Request {
|
|
return &auth.Request{
|
|
Action: func() conf.AuthAction {
|
|
if r.Publish {
|
|
return conf.AuthActionPublish
|
|
}
|
|
return conf.AuthActionRead
|
|
}(),
|
|
Path: r.Name,
|
|
Query: r.Query,
|
|
Protocol: r.Proto,
|
|
ID: r.ID,
|
|
UserAgent: r.UserAgent,
|
|
Credentials: r.Credentials,
|
|
IP: r.IP,
|
|
CustomVerifyFunc: r.CustomVerifyFunc,
|
|
}
|
|
}
|