mirror of
https://github.com/pion/webrtc.git
synced 2025-10-05 07:06:51 +08:00

Add RTCIceRole structure with complete unittests Add RTCIceProtocol structure with unittests Add RTCIceComponent structure with unittests Add RTCIceCandidateType with complete unittests Relates to #83
48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
package webrtc
|
|
|
|
// RTCIceComponent describes if the ice transport is used for RTP
|
|
// (or RTCP multiplexing).
|
|
type RTCIceComponent int
|
|
|
|
const (
|
|
// RTCIceComponentRtp indicates that the ICE Transport is used for RTP (or
|
|
// RTCP multiplexing), as defined in
|
|
// https://tools.ietf.org/html/rfc5245#section-4.1.1.1. Protocols
|
|
// multiplexed with RTP (e.g. data channel) share its component ID. This
|
|
// represents the component-id value 1 when encoded in candidate-attribute.
|
|
RTCIceComponentRtp RTCIceComponent = iota + 1
|
|
|
|
// RTCIceComponentRtcp indicates that the ICE Transport is used for RTCP as
|
|
// defined by https://tools.ietf.org/html/rfc5245#section-4.1.1.1. This
|
|
// represents the component-id value 2 when encoded in candidate-attribute.
|
|
RTCIceComponentRtcp
|
|
)
|
|
|
|
// This is done this way because of a linter.
|
|
const (
|
|
rtcIceComponentRtpStr = "rtp"
|
|
rtcIceComponentRtcpStr = "rtcp"
|
|
)
|
|
|
|
func newRTCIceComponent(raw string) RTCIceComponent {
|
|
switch raw {
|
|
case rtcIceComponentRtpStr:
|
|
return RTCIceComponentRtp
|
|
case rtcIceComponentRtcpStr:
|
|
return RTCIceComponentRtcp
|
|
default:
|
|
return RTCIceComponent(Unknown)
|
|
}
|
|
}
|
|
|
|
func (t RTCIceComponent) String() string {
|
|
switch t {
|
|
case RTCIceComponentRtp:
|
|
return rtcIceComponentRtpStr
|
|
case RTCIceComponentRtcp:
|
|
return rtcIceComponentRtcpStr
|
|
default:
|
|
return ErrUnknownType.Error()
|
|
}
|
|
}
|