48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
|
package webrtc
|
||
|
|
||
|
// ICEComponent describes if the ice transport is used for RTP
|
||
|
// (or RTCP multiplexing).
|
||
|
type ICEComponent int
|
||
|
|
||
|
const (
|
||
|
// ICEComponentRTP 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.
|
||
|
ICEComponentRTP ICEComponent = iota + 1
|
||
|
|
||
|
// ICEComponentRTCP 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.
|
||
|
ICEComponentRTCP
|
||
|
)
|
||
|
|
||
|
// This is done this way because of a linter.
|
||
|
const (
|
||
|
iceComponentRTPStr = "rtp"
|
||
|
iceComponentRTCPStr = "rtcp"
|
||
|
)
|
||
|
|
||
|
func newICEComponent(raw string) ICEComponent {
|
||
|
switch raw {
|
||
|
case iceComponentRTPStr:
|
||
|
return ICEComponentRTP
|
||
|
case iceComponentRTCPStr:
|
||
|
return ICEComponentRTCP
|
||
|
default:
|
||
|
return ICEComponent(Unknown)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (t ICEComponent) String() string {
|
||
|
switch t {
|
||
|
case ICEComponentRTP:
|
||
|
return iceComponentRTPStr
|
||
|
case ICEComponentRTCP:
|
||
|
return iceComponentRTCPStr
|
||
|
default:
|
||
|
return ErrUnknownType.Error()
|
||
|
}
|
||
|
}
|