43 lines
940 B
Go
43 lines
940 B
Go
package cameradar
|
|
|
|
import (
|
|
"net/netip"
|
|
)
|
|
|
|
// AuthType represents the RTSP authentication method.
|
|
type AuthType int
|
|
|
|
// Supported authentication methods.
|
|
const (
|
|
AuthUnknown AuthType = iota
|
|
AuthNone
|
|
AuthBasic
|
|
AuthDigest
|
|
)
|
|
|
|
// Stream represents a camera's RTSP stream.
|
|
type Stream struct {
|
|
Device string `json:"device"`
|
|
Username string `json:"username"`
|
|
Password string `json:"password"`
|
|
Routes []string `json:"route"`
|
|
Address netip.Addr `json:"address" validate:"required"`
|
|
Port uint16 `json:"port" validate:"required"`
|
|
|
|
Secure bool `json:"secure"`
|
|
|
|
CredentialsFound bool `json:"credentials_found"`
|
|
RouteFound bool `json:"route_found"`
|
|
Available bool `json:"available"`
|
|
|
|
AuthenticationType AuthType `json:"authentication_type"`
|
|
}
|
|
|
|
// Route returns this stream's route if there is one.
|
|
func (s Stream) Route() string {
|
|
if len(s.Routes) > 0 {
|
|
return s.Routes[0]
|
|
}
|
|
return ""
|
|
}
|