Files
VerseVDI-Data-Plane/gateway/capability.go
T

34 lines
1.0 KiB
Go

package gateway
import (
"errors"
protocol "git.sechmachine.io.vn/sechmachine/VerseVDI-Protocol/gen/go/protocol"
)
var ErrNoCapabilityOverlap = errors.New("no capability overlap")
func DefaultCapabilities() protocol.CapabilityProfile {
return protocol.CapabilityProfile{
Transport: "quic-tls13",
Framing: "datagram-v1",
Media: "encoded",
Audio: "encoded",
SourceRateControl: "server",
ClientDecode: []string{"hevc-opus", "h264-opus"},
}
}
func capabilityProfileUnset(profile protocol.CapabilityProfile) bool {
return profile.Transport == "" && profile.Framing == "" && profile.Media == "" &&
profile.Audio == "" && profile.SourceRateControl == "" && len(profile.ClientDecode) == 0
}
func IntersectCapabilities(profiles ...protocol.CapabilityProfile) (protocol.CapabilityProfile, error) {
selected, err := protocol.IntersectCapabilityProfiles(profiles...)
if err != nil {
return protocol.CapabilityProfile{}, ErrNoCapabilityOverlap
}
return selected, nil
}