34 lines
1.0 KiB
Go
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-v2",
|
|
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
|
|
}
|